技术圈首页
程序员
解决方案
聚合短信
APP下载
登录
注册
首页
文章详情
如何使用Golang利用ectd实现一个分布式锁?
Go语言进阶学习
|
273
2021-09-11 06:58
0
0
0
我们都知道最近几年,随着 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 人
」有效。
0
赞
0
收藏
×
添加附言
附加内容, 使用此功能的话, 会给所有参加过讨论的人发送提醒.
回复数量:
0
暂无评论~~
请注意单词拼写,以及中英文排版,
参考此页
支持 Markdown 格式,
**粗体**
、~~删除线~~、
`单行代码`
, 更多语法请见这里
Markdown 语法
支持表情,见
Emoji cheat sheet
@name 会链接到用户页面,并会通知他
上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jp(e)g, png, gif
Ctrl+Enter
下载APP
Go语言进阶学习
213
文章
0
获赞
关注TA
NEW
相关文章推荐
使用Golang利用ectd实现一个分布式锁
字节跳动的Go语言开发体系
发现了众多 Go 好书
2021 总结与公众号文章回顾
使用 Loki、Kubernetes 和 Golang 在生产环境中进行负载测试
基于 Golang 的云原生日志采集服务设计与实践
基于 Golang 的云原生日志采集服务设计与实践
实战 | Golang二次开发明星项目