当前位置: 首页 > news >正文

Spring Cloud全解析:服务注册中心的多维度产品对比与优选指南

注册中心不同产品的对比

产品使用语言CAP数据一致性多数据中心Watch支持KV存储服务健康检查对外暴露接口Spring Cloud集成
EurekajavaAPLong Polling可配置支持HTTP已集成
zookeeperjavaCPZAB(Paxos)支持支持心跳客户端已集成
consulgoCPRaft支持(Gossip)Long Polling支持服务状态、内存、磁盘等HTTP/DNS已集成
  • Eureka集群模式,集群内的每个机器地位是相等的,不存在主从,每个服务可以向任意一个Eureka实例进行服务注册与发现,集群中的每一个Eureka实例接收到写请求之后都会自动同步给其他所有的Eureka实例
    • Eureka是对等模式,可能数据还没同步完,然后就宕机了,此时还是可以从其他机器拉取注册信息,只是不保证是最新的注册信息,该过程服务可以向其他没有宕机的节点进行注册,为了保证A而舍弃了C
  • Zookeeper 是有Leader+Follower两种角色,只有Leader负责写,也就是服务注册,然后把数据同步给所有的Follower,进行读操作时,也就是服务发现
    • 由于Zookeeper是只有Leader是进行写操作的,如果leader挂了,需要重新选举新的leader,此时集群是不可用的,为了保证C而舍弃了A

CAP原则

  • 一致性C(Consistency) 在分布式系统中的所有数据备份,所有节点的数据一致,都是最新的数据
  • 可用性A(Availability) 在集群中任何一个节点挂了,其他节点可以继续对外提供服务
  • 分区容错性P(Partition tolerance) 在分布式系统中每台主机称为一个分区,系统如果不能在时限内达成数据一致性或者无法及时响应客户端请求,都意味着出现了分区的情况,此时就需要在C和A之间做出选择,即为容错性

CP:如果需要一致性,就会影响到可用性,一旦系统出现故障,就需要等待一段时间进行修复,在修复期间无法对外提供服务,数据同步会消耗时间,导致可用性降低

AP:如果需要可用性,只要有一个服务在,就能正常接受请求,只能放弃强一致性,采用最终一致性

CA:如果想要满足一致性和可用性,那么分区容错性就难保证了,只能是单点

https://zhhll.icu/2021/框架/微服务/springcloud/注册中心/2.注册中心不同产品的对比/

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 网站如何实现HTTPS访问
  • 【Github】Github 上commit后 contribution 绿格子不显示 | Github绿格子 | Github贡献度不显示
  • ref函数
  • 英文文献翻译方法哪个好?高效率的翻译方法分享
  • Python中导入不同文件夹中的函数
  • 我们的前端开发逆天了!1 小时搞定了新网站,还跟我说 “不要钱”
  • Java 单元测试
  • 大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用
  • 麒麟V10系统统一认证子系统国际化
  • 大厂linux面试题攻略四之Linux网络服务(二)
  • usb驱动描述符数据结构
  • <数据集>工程机械识别数据集<目标检测>
  • extern关键字在C语言中的作用
  • 【python】三种方式实现将2个3×5数组拼接形成6×5数组
  • 了解消息中间件TongLINK/Q
  • 【笔记】你不知道的JS读书笔记——Promise
  • Cookie 在前端中的实践
  • css选择器
  • Flex布局到底解决了什么问题
  • go语言学习初探(一)
  • HashMap ConcurrentHashMap
  • isset在php5.6-和php7.0+的一些差异
  • Iterator 和 for...of 循环
  • PAT A1017 优先队列
  • Python 反序列化安全问题(二)
  • React as a UI Runtime(五、列表)
  • 阿里云应用高可用服务公测发布
  • 百度地图API标注+时间轴组件
  • 程序员该如何有效的找工作?
  • 第2章 网络文档
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 经典排序算法及其 Java 实现
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 微信开放平台全网发布【失败】的几点排查方法
  • 一个JAVA程序员成长之路分享
  • Prometheus VS InfluxDB
  • ​Spring Boot 分片上传文件
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • # Apache SeaTunnel 究竟是什么?
  • # Maven错误Error executing Maven
  • #QT(串口助手-界面)
  • (007)XHTML文档之标题——h1~h6
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (Java)【深基9.例1】选举学生会
  • (SpringBoot)第二章:Spring创建和使用
  • (二)丶RabbitMQ的六大核心
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (三)终结任务
  • (十三)Flink SQL
  • (图)IntelliTrace Tools 跟踪云端程序