• CAP概述与技术选型


      在了解CAP之前我们要知道微服务架构中的注册中心,比如springcloud全家桶中的eruka或者是Dubbo中的zookeeper,那么注册中心的作用是什么呢?为什么微服务架构中要设计注册中心这么一个不可缺少的角色呢?

    • 那么注册中心的作用是什么呢?
      • 首先就是服务管理
        • 服务提供方(provider)在启动时向注册中心注册自己能提供的服务,也就是告诉注册中心自己有哪些接口可以被进行调用
        • 服务消费方  (consumer) 在启动时向注册中心提取需要的服务,也就是从注册中心中获取自己需要的接口信息
      • 心跳机制动态维护
        • provider注册的服务信息并不是注册一次之后就不管了,而是会定时的告诉注册中心自己能提供服务,在consumer来抓取服务的时候,注册中心就会将存活的服务告知consumer
        • 如果provider注册的服务在一定时间内没有向注册中心传递心跳,那么这个服务就不会提供给consumer
    • 为什么微服务架构需要注册中心呢?
      • 首先考虑如果没有注册中心,我们如何管理提供服务的地址呢?
        •  可能会采用配置文件的方式,但是微服务为了保证服务的高可用通常会通过集群部署,服务可能部署了10个?100个?那么当我们需要在微服务中对provier地址进行修改的时候,我们需要修改很多个配置文件,并且我们并不知道这些服务的地址是否能正常的进行访问
      • 使用注册中心呢?
        •  注册中心会根据心跳,负载均衡来提供给我们provider地址,consumer只需要拿取服务即可
    •     CAP定理:指的是在⼀个分布式系统中,Consistency(⼀致性)、 Availability(可⽤性)、 Partition tolerance(分区容错性),三者不可同时获得,只能三选二。
      •   C(数据一致性):所有的节点在同一时间内,数据全部一致,节点越多,数据同步耗时越久
      •         A(可用性):正常响应请求,并且在合理的时间内
      •         P(分区容错性):也就是高可用性,节点越多,那么可用性越强
    •     为何CAP只能二选一?
      • C A 满⾜的情况下,P不能满⾜的原因: 数据同步(C)需要时间,也要正常的时间内响应(A),那么机器数量就要少,所以P就不满⾜
      • CP 满⾜的情况下,A不能满⾜的原因: 数据同步(C)需要时间, 机器数量也多(P),但是同步数据需要时间,所以不能再正常时间内 响应,所以A就不满⾜
      •  AP 满⾜的情况下,C不能满⾜的原因: 机器数量也多(P),正常的时间内响应(A),那么数据就不能及时同步到其他节点,所以C不满足
    •     注册中⼼选择:

           Zookeeper:CP设计,保证了⼀致性,集群搭建的时候,某个节点失效,则会进⾏选举⾏的 leader,或者半数以上节点不可⽤,则⽆法提供服务,因此可⽤性没法满⾜

           Eureka:AP原则,⽆主从节点,⼀个节点挂了,⾃动切换其他节点可以使⽤,去中⼼化

    怕什么真理无穷 进一寸有一寸的欢喜
  • 相关阅读:
    武汉大学数学专业考研试题参考解答
    中山大学数学专业考研试题参考解答
    北京大学数学专业考研试题参考解答汇总
    一些泛函分析题目
    人生感言
    数学分析高等代数考研试题荟萃[更新至2017年12月28日]
    数学分析高等代数考研试题荟萃[更新至2017年12月15日]
    2017-2018-1 实变函数
    2017-2018-1 点集拓扑
    Latex "Error: Extra alignment tab has been changed to cr. "
  • 原文地址:https://www.cnblogs.com/ccbk/p/14829411.html
Copyright © 2020-2023  润新知