发布 v1.1.0:加密双向同步、从机日志TTL与一键部署

This commit is contained in:
2026-03-08 02:49:17 +08:00
parent 78b9685ee1
commit 394789f567
15 changed files with 1047 additions and 411 deletions

117
部署方案.md Normal file
View File

@@ -0,0 +1,117 @@
# RedisClipSync 内网部署方案v1.1.0
本文档对应 `v1.1.0`,适用于「主机统一打包 -> 分发到多台从机 -> 从机一键安装并开机自启」场景。
## 1. 目标与范围
- 目标:降低内网批量部署成本,避免每台从机重复构建。
- 范围Linux 从机部署systemd 管理),主机负责生成发布包。
- 默认安装目录:`/opt/redis-clip-sync`
## 2. 架构与角色
- 主机MASTER生成发布包并分发。
- 从机SLAVE接收发布包改配置后执行安装脚本。
- Redis内网统一服务主从均连接此 Redis。
## 3. 前置条件
- 主机:已安装 Java 8+、Maven 3.x。
- 从机:已安装 Java 8+、systemd、sudo。
- 网络:从机可访问 Redis `host:port`
- 安全:`crypto.enabled=true`,主从 `crypto.key` 使用同一把 32-byte Base64 密钥。
## 4. 主机发布流程
在项目根目录执行:
```bash
chmod +x linux/build-slave-release.sh
./linux/build-slave-release.sh
```
执行完成后会生成:
- 目录:`dist/redis-clip-sync-slave-<version>/`
- 压缩包:`dist/redis-clip-sync-slave-<version>.tar.gz`
发布包包含:
- `bin/install-slave.sh`:安装 + 注册 systemd + enable --now
- `bin/start.sh|stop.sh|status.sh|logs.sh`:本地运维脚本
- `lib/redis-clip-sync.jar`
- `conf/config.properties`(从机模板)
- `systemd/redis-clip-sync.service.tpl`
## 5. 从机安装流程
### 5.1 解压发布包
```bash
tar -xzf redis-clip-sync-slave-<version>.tar.gz
cd redis-clip-sync-slave-<version>
```
### 5.2 修改从机配置
编辑 `conf/config.properties`,至少修改:
- `redis.host`
- `slave.listen.channel`
- `slave.id`
- `crypto.key`
- (按需)`redis.password`
### 5.3 执行安装
```bash
sudo ./bin/install-slave.sh
```
安装脚本会执行:
1. 复制程序到 `/opt/redis-clip-sync`
2. 渲染并写入 `/etc/systemd/system/redis-clip-sync.service`
3. `systemctl daemon-reload`
4. `systemctl enable --now redis-clip-sync`
## 6. 运维命令
```bash
systemctl status redis-clip-sync
systemctl restart redis-clip-sync
journalctl -u redis-clip-sync -f
```
## 7. 一键验收命令
在从机执行:
```bash
bash -c 'set -e; systemctl is-enabled redis-clip-sync >/dev/null; systemctl is-active redis-clip-sync >/dev/null; test -f /opt/redis-clip-sync/lib/redis-clip-sync.jar; test -f /opt/redis-clip-sync/conf/config.properties; echo "[PASS] redis-clip-sync deployed and running"'
```
输出 `[PASS] ...` 表示安装、开机自启、运行状态和关键文件均通过。
## 8. 回滚与卸载
如需快速回滚:
```bash
sudo systemctl disable --now redis-clip-sync
sudo rm -f /etc/systemd/system/redis-clip-sync.service
sudo systemctl daemon-reload
```
如需同时删除安装目录:
```bash
sudo rm -rf /opt/redis-clip-sync
```
## 9. 常见问题
- 服务启动失败:先看 `journalctl -u redis-clip-sync -n 200 --no-pager`
- Redis 不通:检查 `redis.host/redis.port`、防火墙、密码。
- 无法解密:确认主从 `crypto.enabled``crypto.key` 完全一致。
- TTL 不生效:确认从机角色为 `SLAVE``slave.log.ttl.seconds>0`