Nacos集群是怎样工作的(通俗易懂的raft协议入门)

Nacos是阿里出品的一款分布式服务注册与发现的组件,是spring cloud alibaba微服务体系最重要的组成部分。

Nacos官方文档
Nacos源码
Raft一致性协议的一个实现

在看Nacos集群之前,我们要先推理一下集群是怎样出现的。

单体之痛

传统的单体应用简单而又深刻,我们建造一个项目,并让它运行起来,替我们完成一项工作。

但是问题来了,万一我们的服务不能用了怎么办?解决办法也很简单,我们启动多个实例就好了。一个不能用了我们换另一个用,也能够分担一些压力。

但是这个解决方案带来了更多的问题。我们有那么个实例,它们中的每一个都有可能会挂掉,我们要怎样才能知道哪些实例可用呢

现在看起来,我们需要有一个地方存放所有的健康的实例的列表,调用的时候才这个地方拿就可以了。至此,Nacos单机版出世了。

现在看起来一切都很美好,我们的服务有多个实例,每个健康的实例都会把自己的地址放在Nacos里,要用的时候从Nacos这里取就可以了。可是事情到这里就结束了吗?

Raft协议

Naocs本身也是一个单体应用,它也会在某些时候不可用。Nacos也做集群吗?可是我们同样不知道哪些Nacos的实例是可用的,这似乎是个无限循环的问题。

简单来说,我们需要一个用起来像单机一样简单又像集群一样可靠的东西来充当来保存我们的健康实例的列表。

Raft一致性协议就做到了这件事情。

下文图例来自于Raft算法动画http://thesecretlivesofdata.com/raft/

Raft的选举过程

选举过程的直观且

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值