zoukankan      html  css  js  c++  java
  • 服务注册与发现【Eureka、Zookeeper、Consul 三个注册中心的异同点(CAP理论)】

    CAP理论简介:

    CAP理论作为分布式系统的基础理论,它描述的是一个分布式系统在以下三个特性中:

    • 一致性(Consistency)
    • 可用性(Availability)
    • 分区容错性(Partition tolerance)

    一致性(Consistency):

    在分布式系统完成某写操作后任何读操作,都应该获取到该写操作写入的那个最新的值。相当于要求分布式系统中的各节点时时刻刻保持数据的一致性。

    可用性(Availability):

    一直可以正常的做读写操作。简单而言就是客户端一直可以正常访问并得到系统的正常响应。用户角度来看就是不会出现系统操作失败或者访问超时等问题。

    分区容错性(Partition tolerance):

    指的分布式系统中的某个节点或者网络分区出现了故障的时候,整个系统仍然能对外提供满足一致性和可用性的服务。也就是说部分故障不影响整体使用。

    事实上我们在设计分布式系统是都会考虑到bug,硬件,网络等各种原因造成的故障,所以即使部分节点或者网络出现故障,我们要求整个系统还是要继续使用的

    (不继续使用,相当于只有一个分区,那么也就没有后续的一致性和可用性了)

    最多同时较好地满足两个条件(原因请参考:https://www.cnblogs.com/zhuyeshen/p/11720655.html)。

    CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性、可用性和分区容错性这三个需求,因此,根据CAP原理将NoSQL数据库分成了满足CA、CP、AP 原则 三大类:

    CA :单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。

    CP: 满足一致性,分区容错的系统,通常性能不是特别高。

    AP: 满足可用性,分区容错性的系统,通常可能对一致性要求低一些。

    针对于 Eureka、Zookeeper、Consul 三个注册中心,

    Eureka有自我保护机制,更强调的是AP,保证服务的高可用,微服务就是偶尔宕机掉线了,一时半会不会立刻删除。

    Zookeeper 和 Consul 则采用的是CP原则,他们注册的微服务是一个临时节点,只要微服务不可用,发心跳测试收不到了,就迅速剔除微服务,微服务恢复过来以后,会重新换一个serviceID。

  • 相关阅读:
    java学习 hashmap(2)
    HITcsapp大作业 程序人生
    java学习之hashmap
    java学习笔记之高精度
    java 数论之FFT/NTT及多项式运算模板
    如何下载微信公众号的视频到本地
    win10家庭版通过gpedit.msc找不到组策略的解决方案
    uni-app
    elementui el-date-picker 选择一个月范围
    CommonJS规范的require与es6规范的import的区别
  • 原文地址:https://www.cnblogs.com/y3blogs/p/13499556.html
Copyright © 2011-2022 走看看