update at 2025-09-17 17:40:48
This commit is contained in:
42
process.md
42
process.md
@@ -34,3 +34,45 @@ flowchart TD
|
|||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
|
||||||
|
❓ 蓝系统weight 0,绿系统100%,但蓝系统的kafka还在消费,topic被蓝系统消费掉了,会不会产生问题?
|
||||||
|
没有问题。如果蓝绿规划为同一消费者组,并且消费是密等的,被谁消费掉无所谓。
|
||||||
|
|
||||||
|
💡 最佳实践:
|
||||||
|
1. 蓝绿切换时,不仅切换 HTTP 流量,还要 优雅下线旧版本 Kafka 消费器
|
||||||
|
2. 消费逻辑保持幂等,避免蓝绿切换引发重复处理
|
||||||
|
|
||||||
|
redis: 共享 Redis + 蓝绿系统写入隔离
|
||||||
|
|
||||||
|
mysql:
|
||||||
|
```mermaid
|
||||||
|
flowchart TD
|
||||||
|
subgraph Client Side
|
||||||
|
A[HTTP 请求] -->|流量 0%| B[蓝系统 (旧版本)]
|
||||||
|
A -->|流量 100%| C[绿系统 (新版本)]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph MySQL Cluster
|
||||||
|
D[(MySQL 主库/集群)]
|
||||||
|
end
|
||||||
|
|
||||||
|
%% 蓝系统行为
|
||||||
|
B -->|完成旧事务提交| D
|
||||||
|
B -->|使用旧 schema 字段| D
|
||||||
|
|
||||||
|
%% 绿系统行为
|
||||||
|
C -->|新请求写入| D
|
||||||
|
C -->|使用新 schema 字段| D
|
||||||
|
|
||||||
|
%% 注释
|
||||||
|
classDef info fill:#f9f,stroke:#333,stroke-width:1px;
|
||||||
|
B:::info
|
||||||
|
C:::info
|
||||||
|
D:::info
|
||||||
|
|
||||||
|
%% 说明
|
||||||
|
subgraph Notes
|
||||||
|
N1[蓝系统流量为 0,但仍完成旧事务,确保数据一致性]
|
||||||
|
N2[蓝绿系统共用 MySQL,Schema 需向后兼容]
|
||||||
|
N3[写操作幂等,避免重复或冲突]
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user