CAP理论

  • Consistency(一致性):

    • 如果在A节点设置key为value1,A节点发生故障,切换另一个节点B查询应该查到key不一定为value1
    • 应该不返回数据,避免数据不一致。恢复后,再提供准确数据
  • Availability(可用性):

    • 在多个分布式节点上,部分节点间通信中断,在业务容许的响应时间内,能够正常提供服务,则服务具有较高的可用性
  • Partition tolerance(分区容错性):

    • 分布式系统中,节点间因网络、机器等原因出现通信中断问题,则称分布式系统出现了分区
    • 此时即使出现了分区故障,系统还能正常运行,各服务节点还能对外提供服务
  • CP 系统:

    • 要求数据的一致性,节点一旦出现故障,数据一致前,客户端请求都拒绝,直到节点能够提供一致的数据
    • 通常金融系统会要求数据强一致性
    • Zookeeper(Zookeeper + Doubbo)、Consul、Nacos
  • AP系统:

    • 要求服务的可用性,节点即使出现故障,服务依旧能对外提供服务,但是可能提供的数据不一致
    • 在一个完整的系统中,也要根据使用场景,来选择AP或CP,看是更注重一致性还是更关心可用性
    • Nacos、Eureka

Nacos

  • 临时实例和永久实例:

    • 临时实例保存在服务端缓存中,不会持久化到磁盘
    • 服务实例出现下线之后,这个服务实例会从服务注册表中移除
    • 永久实例不仅存在服务注册表中,也会持久化到磁盘
    • 当实例出现下线,会将实例状态设置为不健康,不会从服务表中移除
    • 默认实例是临时实例,永久实例可以注册MySQL、Redis
最后修改:2024 年 03 月 11 日
如果觉得我的文章对你有用,请随意赞赏