1,将数据存储在集群中的高可用的K-V存储
2,允许应用实时监听存储中的K-V变化
3,能够容忍单点故障 能够应对网络分区
原理:
上图5个节点的集群
2N+1 5个节点的集群大多数是N+1 3个节点 只要有3个节点能被赋值,那么这个日志就能被提交,不会被丢失
1-7日志是成功被提交的日志,8是失败的
上图由7个节点组成的raft节点 大多数为zn+1=7 n+1=4大多数为4
1,第一任村长为f节点而且成功赋值给了其它节点,接着down机了,然后马上重启,因为leader重启了,所以重新选举
a-f看谁运气好了,每个节点都有3个编码为1的日志,任一节点都可能成为leader,
2,从图可以看出f运气比较好第二次又被选为村长了
此时f得到3编码为2的3条日志但是马上又挂掉了,接着又重启收到编码为3的5条日志又挂了
此时f节点虽然日志多 但是成功提交的和其它节点是一样的多 编码为1的 2 ,3 没有成功提交
3,编码为4的日志可以看出e为编码为4的节点,而且成功复制了2条日志给其它节点,此时e又down机了
。。。。。。。。。。。。不一一分析了。。。。。有兴趣的可以继续分析。。。。
总结:
leader在down机重启后发现 已经有了新的leader 此时会拉取到新的数据发现 该数据是大多数节点认可的,就会覆盖本地的
实战任务:
*搭建单机etcd 熟悉命令行操作
*golang调用etcd的put/get/delete/lease/watch
*使用txn事务功能 实现分布式乐观锁
本文来自博客园,作者:孙龙-程序员,转载请注明原文链接:https://www.cnblogs.com/sunlong88/p/11294817.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
2018-08-03 CentOS7.x系统根目录分区扩容