IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> ZooKeeper、Eureka、Consul、Nacos的选型对比 -> 正文阅读

[大数据]ZooKeeper、Eureka、Consul、Nacos的选型对比

ZooKeeper、Eureka、Consul、Nacos的选型对比


1|2四种常用注册中心

zookeeper

zookeeper的基础知识以及基本的架构原理,互联网Java工程师面试突击第三季,里面是有讲过zk的一些架构原理,如果大家不了解的话,可以去看一下

【leader+follower的架构】

【服务主要是2个动作,一个是服务发现,一个是服务发现,别人要读取服务相关的一些信息】

【服务注册就是向ZK Leader写入数据。ZK集群是基于ZAB协议,ZAB协议跟raft协议有点类似,但是不太一样,ZK自己搞的分布式算法。基于ZAB协议进行数据一致性的同步】

【服务发现就是一个读取数据的过程,可以找Leader读,也可以找Follower读】

【服务注册只能找Leader,但是服务发现可以找Follower,因为会同步】

zookeeper的原理,leader+follower,leader写,同步到follower,follower可以读,保证顺序一致性,就是基本尽量保证到数据一致的,主动推送,典型的CP【有个同步过程,不是强一致性的,有可能Leader和Follower不一样(很短时间内)】,leader崩溃的时候,为了保证数据一致性,尽量不要读到不一致的数据,此时要重新选举leader以及做数据同步,此时集群会短暂的不可用,CP

CP和AP的选择

服务注册中心选型对比的时候,其他的分布式系统选型的时候,CP,AP

P简单来说就是任何分布式系统一般都会满足,他就是分区容错性;CP,C,一致性,尽可能的去保证你读取到的数据是一致的,牺牲掉一个A,可用性,一旦leader崩溃,【崩溃的时候可能不同的Follower数据是不一致的】zk可能会有一个短时间内,几十s有可能,集群不可用,此时需要重新选举一个leader,然后再做数据同步,保证数据一致性之后再开放让你来读取

【CP就是Leader崩溃后牺牲可用性,牺牲A】

consistency,availability【C和A】


eureka

【eureka是AP】

eureka的原理,peer-to-peer【每个节点的角色是一样的,都可以写数据】,大家都能写也都能读,每个节点都要同步给其他节点,但是是异步复制的,所以随时读任何一个节点,可能读到的数据都不一样,任何一个节点宕机,其他节点正常工作,可用性超高,但是数据一致性不行,AP


Consul

Consul也是基于raft算法的CP模型


Nacos

Nacos也是基于raft算法的CP模型,同时也支持配置成类似eureka的AP


1|3选用

其实CP或者AP也都行,CP就是偶尔可能短时间不可用,AP就是可能数据不一致,两个都有问题,但是在生产环境下,无论CP还是AP其实都用的很多


1|4演变

其实说白了,zk作为注册中心是早期dubbo时代的标配;后续spring cloud进入国内市场,大家就都用eureka了,但是spring cloud也推荐了consul,所以consul也有不少人在用,zk、eureka、consul,其实都有人用

但是未来还是建议大家用nacos,因为nacos的功能最为完善,包括了雪崩保护、自动注销实例、监听支持、多数据中心、跨注册中心同步、spring cloud集成、dubbo集成、k8s集成,这些都支持,其他的几个技术基本都支持部分罢了

【建议选用raft算法的CP。AP可能会引发混乱】

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:34:18  更:2022-03-08 22:37:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:34:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码