精选文章
Gitleaks 工具调研报告
从 Cloudflare 11.18 全局崩溃事件深度剖析:分布式系统中的容错哲学与配置管理实践
Vibe Coding 实战指南:与 AI 共创、保持流畅、持续成长
HTTP 协议:从基础到高级通信模式
HTTP(HyperText Transfer Protocol)是 Web 的基础协议,浏览器与服务器之间的每一次交互都依赖它。本文从基础模型出发,逐步覆盖状态管理、安全加密、协议演进,以及 SSE 和 WebSocket 等高级通信模式。
HTTP 基础
通信模型
HTTP 采用客户端-服务器(C/S)模型,通信过程是一问一答:
- 客户端(浏览器)发起请求(Request)
- 服务器处理后返回响应(Response)
- 连接断开(HTTP/1.1 默认 keep-alive 可复用连接)
HTTP 是无状态协议——服务器不会记住之前的请求。每次请求都是独立的,服务器不知道"这个用户是谁"。
Kubernetes集群安装
安装
我们只是搭建一个 mini 的类似于真实的 kubernetes 环境,用来自己学习,我们也可以选择安装 minikube
安装前的准备工作
-
修改 hostname,因为 kubernetes 使用 hostname 来区分集群
sudo vim /etc/hostname -
使用 docker 作为容器运行时,kubernetes 支持多种容器运行时,使用 docker 比较方便。
cat <<EOF | sudo tee /etc/docker/daemon.json { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2" } EOF sudo systemctl enable docker sudo systemctl daemon-reload sudo systemctl restart docker -
修改 iptables 的配置,启用"br_netfilter"
Zabbix 入门
安装

这里选用了如上的配置
1. 安装 Zabbix repository
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-1+ubuntu20.04_all.deb
sudo dpkg -i zabbix-release_6.0-1+ubuntu20.04_all.deb
sudo apt update2. 安装 Zabbix server,Web 前端,agent
apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent3. 创建初始数据库
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'password';
grant all privileges on zabbix.* to zabbix@localhost;4. 导入初始架构和数据
zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix5. 配置数据库
编辑配置文件 /etc/zabbix/zabbix_server.conf
正则表达式入门
元字符
特殊单字符
. 任意字符,不包括换行

\d 任意的数字

\D 任意的非数字

\w 任意的字母、数字、下划线

\W 非字母、数字、下划线

\s 空白符号

\S 非空白符号

空白符号
-
\r回车 -
\n换行 -
\f换页 -
\t制表符 -
\v垂直制表符 -
\s任意空白符\s能匹配上各种空白符号,也可以匹配上空格。换行有专门的表示方式,在正则中,空格就是用普通的字符英文的空格来表示。
Keeplived 高可用
Keepalived 高可用
keepalived
- 解决单点故障
- 故障自动转移
- 实现高可用机制
- 基于 VRRP 协议,虚拟路由冗余协议,解决内网单机故障的协议,构建多个路由的 Master、backup,虚拟 IP 地址。
keepalived 双机主备

安装
去官网(https://www.keepalived.org/)下载源代码编译安装。
Docker 入门:从安装到实战的完整指南
Docker 是目前最主流的容器化工具,它将应用及其依赖打包成一个轻量级、可移植的容器,解决"在我机器上能跑"的经典问题。相比传统虚拟机,Docker 容器共享宿主机内核,启动速度从分钟级降到秒级,资源占用也大幅降低。
核心概念
在使用 Docker 之前,需要理解三个核心概念:
| 概念 | 说明 | 类比 |
|---|---|---|
| 镜像(Image) | 只读的应用模板,包含代码、运行时、依赖 | Java 的 .class 文件 |
| 容器(Container) | 镜像的运行实例,可读写 | JVM 中运行的进程 |
| 仓库(Registry) | 存储和分发镜像的服务 | Maven Central |
它们的关系:从仓库拉取镜像,用镜像创建容器运行。
Javascript 宏任务和微任务
宏任务
由宿主发起的任务称为宏观任务。
例如setTimeout函数创建的就是宏任务,当前的脚本执行也是宏任务。
setTimeout(() => {
console.log("Hello");
}, 100);微任务
由 JavaScript 引擎发起的任务称为微任务。
微任务的主要来源是Promise。
在 JavaScript 的事件循环中,当期宏任务执行完或者如果调用栈为空的时候,会检查微任务队列,如果队列不为空,会执行微任务队列中的任务。
Vim 实用技巧速查
Vim 的学习曲线陡峭,但一旦掌握常用技巧,编辑效率会远超普通编辑器。本文整理日常高频使用的 Vim 操作,按场景分类方便速查。
模式与基础操作
Vim 有四种主要模式:
| 模式 | 进入方式 | 用途 |
|---|---|---|
| Normal | Esc |
移动光标、删除、复制等操作 |
| Insert | i / a / o |
输入文本 |
| Visual | v / V / Ctrl+v |
选择文本 |
| Command | : |
执行命令(保存、替换等) |
常用移动
| 按键 | 作用 |
|---|---|
h j k l |
左下上右 |
w / b |
下一个/上一个单词开头 |
0 / $ |
行首/行尾 |
gg / G |
文件开头/末尾 |
Ctrl+d / Ctrl+u |
向下/向上翻半页 |
% |
跳转到匹配的括号 |
f{char} |
跳转到当前行下一个 {char} |
; |
重复上次 f 查找 |
常用编辑
| 按键 | 作用 |
|---|---|
dd |
删除当前行 |
D |
删除到行尾 |
dw |
删除一个单词 |
yy |
复制当前行 |
yw |
复制一个单词 |
p |
粘贴 |
u |
撤销 |
Ctrl+r |
重做 |
. |
重复上次操作 |
文本对象
Vim 的文本对象让操作更精确,格式为 操作 + 范围 + 对象:
