nacos的一致性协议介绍
特性zookeepernacos一致性协议CPCP+AP健康检查Keep AliveTCP / HTTP / MySql / Client beat负载均衡无权重 / selector / metadata多数据中心不支持支持跨注册中心同步不支持支持雪崩保护无有访问协议TCPHTTP / DNSK8s集成不支持支持dubbo集成–支持一致性协议在介绍一致性协议前先了解一下CAP理论Cons...
·
特性 | zookeeper | nacos |
---|---|---|
一致性协议 | CP | CP+AP |
健康检查 | Keep Alive | TCP / HTTP / MySql / Client beat |
负载均衡 | 无 | 权重 / selector / metadata |
多数据中心 | 不支持 | 支持 |
跨注册中心同步 | 不支持 | 支持 |
雪崩保护 | 无 | 有 |
访问协议 | TCP | HTTP / DNS |
K8s集成 | 不支持 | 支持 |
dubbo集成 | – | 支持 |
一致性协议
在介绍一致性协议前先了解一下CAP理论
- Consistency 一致性,在分布式系统中的所有数据备份,在同一时刻是否同样的值;
- Availability 可用性,只要收到用户的请求,服务器就必须给出回应;
- Partition tolerance 分区容错性,以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择
分布式系统必须具有分区容错性,一致性与可用性只能选择其一,如果选择一致性,必须在某节点写入时,数据同步到其他节点完成后才可以响应下一个请求,这段时间内服务是不可用的;反之选择可用性,则一致性无法保证,这就是CAP理论
作为注册中心,P要保证,C和A需要权衡;常见的一致性协议有paxos、raft,他们都是强一致性协议(CP),然而今天要介绍的nacos的distro协议时弱一致协议(AP),即最终一致性协议。注册中心到底该是AP还是CP,推荐阅读阿里中间件的博客《阿里巴巴为什么不用 ZooKeeper 做服务发现?
》
为啥要保持一致性?
因为Nacos 是一个需要存储数据的中间件,因此就需要在 Nacos 内部实现数据存储。单机下其实问题不大,简单的内嵌关系型数据库即可;但是集群模式下,就需要考虑如何保障各个节点之间的数据一致性以及数据同步,而要解决这个问题,就不得不引入共识算法,通过算法来保障各个节点之间的数据的一致性。
更多推荐
已为社区贡献3条内容
所有评论(0)