解决什么问题:把 etcd 从“听过”变成“写得出来”

不少写 Go 的同学对 etcd 的印象停留在“一个类似 Redis 的键值存储”,真到要做微服务注册发现、做分布式锁或者选主时,却不知道从哪下手。这门课不搞大而全的源码剖析,只盯着一件事:怎么用 Go 把 etcd 接进真实业务。它解决的核心场景是服务注册与发现——也就是让一个服务启动时把自己写进 etcd、关闭时干净退出、心跳靠租约保活、调用方靠前缀查到可用节点。这套东西在内部中台、网关、定时任务调度里反复出现,学懂了能直接拿来拼自己的微服务骨架。

适合什么基础,建议先看哪几块

它要求你能独立写简单的 Go 程序、看得懂 goroutine 和 channel,Docker 只要会敲启停命令即可,不需要懂内核协议。纯前端转后端、或者只写过单体脚本的读者,建议先补 Go 基础语法再看。资料包的顺序是按场景串的,别跳着看:先把“etcd 热身”那几讲过一遍,重点是用 docker 起单机和三节点集群、用 etcdctl 做增删改查、搞清楚 lease 到期和 keepalive 的区别;接着直接进“服务注册与发现”这一段,这是整门课的主干,从把一条服务信息写进去,到加租约、到进程退出时反注册,五讲是一条完整的链路,看完就能复刻一份最小可用版本。

学完能独立做什么,资料怎么配合练习

学完之后,你应该能独立写出两个小东西:一是带租约保活的服务注册端,进程被 kill 时能自动从 etcd 摘掉;二是消费端,用前缀 watch 实时感知节点上下线。这两块拼起来,就是一个不依赖重量级框架的轻量服务发现雏形。练习时别只看视频,照着把代码敲一遍:先 docker 起集群,再用 Go 客户端连;每讲听完,改一个参数——比如把租约时间从十秒改成一秒,观察节点多久消失;再手动 kill 掉注册进程,看消费端的 watch 事件是不是如期触发。把这几个边界试过,比背十遍 API 都管用,也是这门课最值钱的地方。


(早期课程)本课程主要是快速入门etcd ,为其他实战课程打下基础。课程中会使用golang进行代码演示,主要是服务注册与发现、分布式知识点等案例。看本课程需要

课程目录

*   第一章:etcd热身 cplist.push('第一章:etcd热身');/

  *   第1讲:开张课、课程内容、环境搭建(基于docker)

  *   第2讲:etcdctl、v3、模拟信息的增删改查

  *   第3讲:使用docker模拟etcd集群的创建

  *   第4讲:使用Go初步调用etcd

  *   第5讲:租约命令的使用和基本操作

*   场景一:服务注册与发现 cplist.push('场景一:服务注册与发现');/

  *   第6讲:服务注册(1):注册服务信息到etcd中

  *   第7讲:服务注册(2):注册与启动服务的初步优雅性

  *   第8讲:服务注册(3):服务关闭时反注册服务

  *   第9讲:服务注册(4):设置租约

  *   第10讲:服务注册(5):定期续租的基本姿势

  *   第11讲:服务发现(1)读取服务数据(上)

  *   第12讲:服务发现(2)读取服务数据(下)

  *   第13讲:服务发现(3)根据服务名获取地址、优雅调用机制(上)

  *   第14讲:服务发现(3):根据服务名获取地址、优雅调用机制(下)

  *   第15讲:服务发现(4)同时注册多个服务进ETCD

  *   第16讲:服务发现(5):获取服务、结合随机算法