Etcd 与微服务原理大纲

这份你要建立的是:

服务为什么要拆 -> 拆完怎么治理 -> Etcd 在服务治理里到底扮演什么角色

一、总纲

这一块最核心的 5 条主线:

  1. 微服务的出发点
  2. 服务边界与治理
  3. 注册发现与配置中心
  4. Etcd 的强一致能力
  5. 分布式协调和 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 更像这套治理体系里的一块关键协调组件。