Etcd 与微服务原理大纲
这份你要建立的是:
服务为什么要拆 -> 拆完怎么治理 -> Etcd 在服务治理里到底扮演什么角色
一、总纲
这一块最核心的 5 条主线:
- 微服务的出发点
- 服务边界与治理
- 注册发现与配置中心
- Etcd 的强一致能力
- 分布式协调和 watch / lease
二、为什么需要微服务
核心出发点
不是为了“架构更高级”,而是因为单体系统在这些方面已经出现瓶颈:
- 协作
- 发布
- 扩容
- 故障隔离
- 不同业务模块运行特性差异
这块怎么结合你的项目
推广 ROI 线里,后台配置、原始事件接入、实时处理、报表分析,本来就不是一类服务; 海外业务里,识别、支付、订阅、后台、归因也天然是不同链路。
三、微服务真正难的地方
不是拆服务本身,而是拆完之后:
- 接口契约
- 调用治理
- 配置治理
- 日志与追踪
- 一致性
- 联调与回滚
没有这些,微服务只会让复杂度上升。
四、服务注册发现原理
1. 为什么需要注册发现
因为服务实例可能:
- 动态扩缩容
- 重启
- 漂移
- 地址变化
客户端不能手写死地址。
2. 注册发现系统在做什么
- 服务启动时注册自己
- 服务存活期间续租
- 服务下线时自动摘除
- 客户端感知变化
五、Etcd 原理链
1. Etcd 是什么
Etcd 是强一致性分布式 KV 存储。
2. 它为什么适合微服务治理
因为它有:
- 强一致性
- watch
- lease
- revision
3. lease 在解决什么问题
让临时注册信息有生存周期,服务不续租就自动失效。
4. watch 在解决什么问题
客户端可以感知配置或服务列表变化,而不用一直主动轮询。
5. revision 在解决什么问题
帮助系统按变更版本理解状态变化。
六、为什么 Etcd 强调一致性
因为它典型用在:
- 服务发现
- 配置
- leader 选举
- 协调元数据
这些场景一旦不一致,系统行为就会混乱。
所以 Etcd 的重点不是“超高吞吐”,而是“一致性和变更感知能力”。
七、Etcd 和 Redis 的本质区别
Redis
- 高性能
- 缓存
- 短期状态
- 幂等 / 锁 / 热点控制
Etcd
- 强一致性
- 注册发现
- 配置中心
- 分布式协调
最稳的说法
Redis 更偏性能层,Etcd 更偏协调层。
八、Etcd 和 MySQL 的区别
MySQL 是业务主数据和事务库; Etcd 是服务治理和协调元数据存储。
它们根本不是同一层。
九、Raft 你需要理解到什么程度
不需要把论文背下来,但至少要知道:
- Etcd 的一致性依赖 Raft
- 有 leader / follower
- 写操作经 leader 协调复制
- 多数派确认后提交
面试上的表达
我不一定会展开到 Raft 算法细节,但我知道 Etcd 的强一致基础来自共识协议,而不是像 Redis 那样偏单点高性能思路。
十、结合你的项目怎么讲
虽然你不一定是 Etcd 或微服务平台最深 owner,但你长期在:
- 多服务边界划分
- 契约
- 异步解耦
- 联调
- 调用治理
这些点上做过方案。 所以你讲这块时,重点放在“系统治理理解”,不要硬吹基础设施 owner 深度。
十一、最适合你的结尾表达
我对 Etcd 和微服务的理解,不是停留在注册中心几个名词,而是理解为什么服务一旦拆开,就必须有注册发现、配置治理、超时重试、链路追踪和一致性协调能力。Etcd 更像这套治理体系里的一块关键协调组件。