Docker-网络
参考文献
Docker网络
Docker网络
查看网络信息
12345678# docker network lsNETWORK ID NAME DRIVER SCOPE7731f800c2eb bridge bridge local27625663ead5 docker_default bridge local4b09ca6ec339 host host localec7e23d9e6bb mongodb_default bridge local23e5b7358579 none null local52dda41afae6 prod_default bridge local
查看某个网络的详细信息
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505 ...
Linux工具-rsync
参考文献
rsync
rsync用于在两个远程计算机之间同步文件和文件夹.它仅通过传输源和目标之间的差异来提供快速的增量文件传输.
rsync可用于镜像数据,增量备份,在系统之间复制文件,可替代scp,sftp和cp日常等使用的命令.
用法
rsync语法有三种,分别是本地到本地形式Local to Local,本地到远程Local to Remote,远程到本地Remote to Local
123Local to Local: rsync [OPTION]... [SRC]... DESTLocal to Remote: rsync [OPTION]... [SRC]... [USER@]HOST:DESTRemote to Local: rsync [OPTION]... [USER@]HOST:SRC... [DEST]
-a/--archive存档模式,等效于-rlptgoD.此选项指示rsync递归同步目录,传输特殊设备和块设备,保留符号链接,组,所有权和权限等.
-z/--compress,此选项将强制rsync在数据发送给目标计算机之前对数据进行压缩. ...
Mac M1 编译OpenJDK
参考文献
OpenJDK-编译 (mac)
OpenJDK-调试 (CLion)
优雅地在Mac OS Catalina下 编译 Open JDK 13
编译及调试OpenJDK18|Understanding the JVM
win10上构建并调试openjdk 11
MBP M1编译OpenJDK
环境说明: macOs: Sonoma 14.1.2 (23B92)
编译OpenJDK版本: jdk-23+4
使用的boot jdk版本: jdk-21.0.1+12
环境准备
123brew install FreeTypebrew install Autoconfbrew install gcc
安装XCode
安装完成后
1xcode-select -s /Applications/Xcode.app/Contents/Developer
下载OpenJDK源码
https://github.com/openjdk/jdk/releases/tag/jdk-23%2B4
此处选择的是JDK23
下载Boot JDK
https://adoptium.ne ...
SpringBoot-整合WebService
参考文献
SpringBoot整合WebService
Linux工具-nmap
参考文献
nmap
端口扫描基础
许多传统的端口扫描器只列出所有端口是开放还是关闭的, Nmap的信息粒度比它们要细得多。 它把端口分成六个状态: open(开放的),closed(关闭的),filtered(被过滤的), unfiltered(未被过滤的), open|filtered(开放或者被过滤的),或者closed|filtered(关闭或者被过滤的)。
Nmap所识别的6个端口状态
状态
说明
open(开放的)
应用程序正在该端口接收TCP 连接或者UDP报文。发现这一点常常是端口扫描 的主要目标。安全意识强的人们知道每个开放的端口 都是攻击的入口。攻击者或者入侵测试者想要发现开放的端口。 而管理员则试图关闭它们或者用防火墙保护它们以免妨碍了合法用户。 非安全扫描可能对开放的端口也感兴趣,因为它们显示了网络上那些服务可供使用
closed(关闭的)
关闭的端口对于Nmap也是可访问的(它接受Nmap的探测报文并作出响应), 但没有应用程序在其上监听。 它们可以显示该IP地址上(主机发现,或者ping扫描)的主机正在运行up 也对部分操作系统探测有 ...
Prometheus
参考文献
Prometheus
图片来源于https://prometheus.io/docs/introduction/overview/
示例
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758version: '3.1'services: prometheus: image: prom/prometheus:latest container_name: prometheus ports: - "9090:9090" volumes: - ./config/prometheus.yml:/etc/prometheus/prometheus.yml - ./config/rules.yml:/etc/prometheus.yml - prometheus_data:/prometheus command: - '--config ...
解决方案-网站优化
参考文献
传送现代格式的图片
网站优化
开启Gzip压缩
将图片格式换为 AVIF或WebP 格式的图片
与旧版 JPEG 和 PNG 相比,AVIF 和 WebP 这两种图片格式具有更优的压缩和质量特性.采用这些格式(而非 JPEG 或 PNG)对图片进行编码,可以提高图片的加载速度,并消耗更少的移动数据网络.
Chrome、Firefox 和 Opera 支持 AVIF,并且与具有相同画质设置的其他格式相比,AVIF 的大小会更小. 如需详细了解 AVIF,请参阅“提供 AVIF 图片”Codelab.
最新版本的 Chrome、Firefox、Safari、Edge 和 Opera 支持 WebP,可为网络上的图片提供更好的有损和无损压缩. 如需详细了解 WebP,请参阅新的 Web 图片格式.
Spring-SpEL
参考文献
Spring Expression Language (SpEL)
SpEL表达式总结
Spring Expression Language (SpEL)
支持的功能
功能
说明
Literal expressions
字面量表达式
Boolean and relational operators
布尔和关系运算符
Regular expressions
正则表达式
Class expressions
类表达式
Accessing properties, arrays, lists, and maps
访问属性、数组、列表和映射
Method invocation
方法调用
Assignment
赋值
Calling constructors
调用构造函数
Bean references
Bean引用
Array construction
数组构建
Inline lists
内联列表
Inline maps
内嵌Map
Ternary operator
三元运算符
Variable ...
Linux-进程
参考文献
趣谈Linux操作系统
进程
在 Linux 里,要创建一个新的进程,需要一个老的进程调用 fork 来实现,其中老的进程叫作父进程(Parent Process),新的进程叫作子进程(Child Process)
进程ID(tid)
Linux采用延迟重用的算法来进行PID的分配,往简单了来说,原则就是
位图记录进程 ID 的分配情况( 0 为可用,1 为已占用).
将上次分配的进程 ID 记录到 last_pid 中,分配进程 ID 时,从 last_pid+1 开始找起,从位图中寻找可用的 ID .
如果找到位图集合的最后一位仍不可用,则回滚到位图集合的起始位置,从头开始找.既然是位图记录进程 ID 的分配情况,那么位图的大小就必须要考虑周全.位图的大小直接决定了系统允许同时存在的进程的最大个数,这个最大个数在系统中称为 pid_max .回绕时并不是从 0 开始找起,而是从 300 开始找起.
1234# cat /proc/sys/kernel/pid_max40960# sysctl kernel.pid_maxkernel.pid_max = ...
Linux-软件安装
参考文献
趣谈Linux系统
<<鸟哥的Linux私房菜>>
软件安装
Linux 现在常用的有两大体系,一个是 CentOS 体系,一个是 Ubuntu 体系,前者使用 rpm,后者使用 deb。
CentOS 下面使用rpm -i jdk-XXX_linux-x64_bin.rpm进行安装
Ubuntu 下面使用dpkg -i jdk-XXX_linux-x64_bin.deb。其中 -i 就是 install 的意思
rpm -qa和dpkg -l就可以查看安装的软件列表,-q 就是 query,a 就是 all,-l 的意思就是 list。
要删除,可以用rpm -e和dpkg -r。-e 就是 erase,-r 就是 remove
RPM(RedHat Package Manager)
由于RPM有数据库来记录软件的相关信息,所以RPM类型的套件所拥有的档案都放置在系统预设的目录底下
路径
说明
/etc
一些设定文件放置的目录,例如/etc/crontab
/usr/bin
一些可执行档案
/usr/ ...