如何使用Golang利用ectd实现一个分布式锁?

我们都知道最近几年,随着 K8s 成为容器编排领域霸主,etcd 也越来越火,GitHub star 已超过 34.2K。当然这也与它的应用场景广泛密不可分,从服务发现到分布式锁,从配置存储到分布式协调,可以说,etcd 已成为云原生和分布式系统的存储基石。
 
作为当下最热门的云原生存储之一,etcd 在腾讯、阿里、Google、AWS、美团、字节跳动、拼多多、Shopee 等公司都有大量应用,覆盖的业务不仅有 K8s 相关的容器产品,更有视频、推荐、安全、游戏、存储、集群调度等核心业务。
 
但哪怕是 K8s 老兵,也很难保证不在 etcd 上翻车:

无论是从内存泄露到数据不一致,还是从节点crash到性能慢,再到死锁、OOM等稳定性问题等,甚至听说还有人通过混沌工程发现并修复了多个数据不一致Bug,其中一个Bug已经存在近3年之久,而且很严重,重启就可能会触发数据不一致。
 
上面这类棘手问题,在学习和使用 etcd、k8s 的过程中,只是冰山一角。快速解决的办法,还是要对症下药,这里分享给你一张 etcd 典型问题图谱,你可以对照自己的经历仔细查阅。
 

这张图出自腾讯云资深工程师唐聪,他是腾讯云 etcd 负责人、2020 年 etcd 社区全球 Top3 活跃贡献者,之前在社区没少看到他提交的代码。
 
后来我才知道,这几年他一直在和 Redis、etcd 打交道,解决过很多大规模业务增长中的存储稳定性、可扩展性等问题,积累了丰富的大规模集群实战、治理经验。参与 etcd 开源项目的贡献经历,也让他对 etcd 和分布式服务有了更深入的理解。
 
所以,他能从开发者的视角出发,为你分析问题、梳理最佳实践、解读特性设计方案、阐述社区未来演进方向等等。
 
在专栏中,他深入解析了 etcd 核心原理 ,系统梳理其高效学习路径,帮你掌握实践中各类复杂 etcd 问题的解决方案,和在 Kubernetes、服务发现等应用场景的最佳实践,构建高可靠的 etcd 集群运维体系。
 
唐聪说,这个专栏是他自己多年经验的交付,能解决你在学习、使用 etcd 过程中的很多问题。所以,跟着他学,你一定能用最低的学习成本,掌握 etcd 核心原理与最佳实践,让 etcd 真正为你所用,在工作中少踩坑、少交学费,多升职、多涨薪。
 

扫码免费试读

秒杀+专属口令 「studyetcd」 立省 ¥60
半价 到手 ¥69,即将 涨价至 ¥129
 
前面已经提到,唐聪是腾讯云资深工程师,也是 2020 年 etcd 社区全球 Top3 的活跃贡献者,修复了 etcd 数据不一致、内存泄露、死锁、panic 等众多问题,提升了 etcd 在大规模数据场景下的启动、读性能等。
 
他 2014 年本科毕业加入腾讯,不到一年时间,就主导完成了一个亿级用户的业务核心存储平滑迁移任务。之后两年,又构建了大规模排行榜和 Redis 集群平台服务,支撑了公司内部多个重要业务,在这个过程中,他积累了大量 NoSQL 数据库知识与经验。
 
2017 年,唐聪开始接触 Docker 和 Kubernetes,并通过 Kubernetes 解决大规模 Redis 集群的治理问题,提升服务的可用性、降低运维成本。而后他转岗到腾讯云,负责 Kubernetes 集群存储 etcd 治理工作。
 
现在他是腾讯云 etcd 负责人,主导构建的腾讯云原生 etcd 平台,成功解决了集群大规模增长过程中各类 etcd 稳定性问题,支撑了万级 Kubernetes 和 etcd 集群。目前,etcd 作为腾讯众多产品的基础设施,服务用户已达数亿。
 
他把专栏分为两大模块,基础篇和实践篇。
 
基础篇可以帮你建立对 etcd 的整体认知,搞懂读写请求、各个核心特性背后的原理。此外,基础篇的学习也是一个中小型分布式存储系统从 0 到 1 实现的案例解读,你不仅会收获 etcd,还有分布式存储系统构建的理论知识,为下一步进阶打好基础。
 
 
在实践篇中,唐聪为你解读了 etcd 实际使用过程中可能会出现的各种典型问题,和各类复杂 etcd 问题的解决方案
 
此外,他还分享了 etcd 在Kubernetes、Apache APISIX、分布式锁等场景中的应用,为你梳理最佳实践,让你在业务中更好地使用 etcd,进而对 Kubernetes、Apache APISIX 等原理有更深层次的理解。
 
更多实践篇内容,可以参考下面的思维导图:
 
另外,我觉得这个课最宝贵的一点,是他利用拆解法,为你制定了大、中、小三级目标,让你每节课都有收获,通过每个小目标的实现,最终达成个人能力的提升,彻底掌握 etcd。
 
连专栏里的留言质量都很高,不仅会解答大家的问题,读者也会互相讨论切磋,光看评论区都能学到不少,口碑自然不错,截了一些供你参考:
 
下面是课程目录:
 

老规矩,给大家申请了粉丝专属优

专栏即将  涨价至¥129
秒杀+口令 「studyetcd」
到手半价¥69,相当于 半价入手
口令仅 「前 50 人」 有效!
 

  扫码免费试读
 
我们在工作中常常“让专业的人做专业的事”,同理,学习某项技能,跟着专攻它的人,进步才会最快。聪哥在 etcd 领域的建树数一数二,所以他整理出来的方法和经验,绝对值得一看。
 
点击「阅读原文
结算使用口令「 studyetcd
立省 ¥60,半价秒杀,仅限「前 50 人」有效。

本文分享自微信公众号 - Go语言进阶学习(gh_dced3d6523fb)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章