思考-spring cloud与zookeeper的区别

spring cloud : 微服务框架

  • 服务的注册中心
  • 服务的注册于发现
  • 服务的下线
  • 服务的心跳检测/续约

zookeeper : 分布式协调服务

  • 服务的注册
  • 服务的发布与订阅
  • 服务的同一配置管理
  • 服务的集群管理
  • 分布式锁
  • 负载均衡

eureka与zookeeper的区别

eureka与zookeeper 都可以进行服务注册与发现
不同点在于: eureka 实现的CAP里面中的AP(可用性与分区容错性-可靠性), zookeeper 保证了CP(一致性与分区容错性-可靠性),这个一致性体现在在网络断开的时候,那个server的状态都是一样的。
eureka保证可用性,主要体现在网络断开的时候,那么断开的服务器无法进行心跳,但是eureka注册中心有一个机制,就是自我保护机制,他会保留所有的服务列表,包括失联的服务器,以便实现他可以进行服务调用。

CA为什么不能共存?

当网络断开,服务器s1和服务器s2, s1 在写入, 为了保证一致性,那么s2 就不能写入, 这时s2就不可用了,
如果保证可用,那么s2可写入,就无法保证一致性了。

预留疑问:

  1. 分布式锁如何实现, 实现方式有那几种?
    为什么需要分布式锁, 如何体现?
    先了解的分布式锁有: redis, zookeeper,
  1. 负载均衡的实现方式?
    nginx 与 feign , zookeeper 自己编写

你可能感兴趣的:(思考-spring cloud与zookeeper的区别)