zookeeper

一、zookeeper介绍

1.zooKeeper 是一个开源的分布式协调服务。

分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能

2.zookeeper工作机制

  2.1 zookeeper = 文件系统 + 通知机制

  2.2 观察者模式

3.zookeeper

 3.1集群角色

  Leader:主

  Follower:从

  Observer:观察者

 3.2.特点

  1)  一个leader,多个跟随者组成的集群

  2)  半数存活

  3)全局数据一致

  4)更新请求顺序进行

  5)原子性

  6)实时性

4.数据结构 树

5.应用场景

  1)统一命名

  2)统一配置管理

  3)统一集群管理

  4)服务器动态上下线

5)软负载均衡

三、zookeeper内部原理

1.选举机制:半数存活,集群可用。leader、follower

2.监听器原理:connect、listener。心跳

 

3.写数据流程

参考:Zookeeper 原理(选举机制)

四、zookeeper实战

 1.服务器动态上下线案例分析

 2.eureka、zookepeer、nacos三者的关系

1)协议:

eureka内部是AP协议,即它可以保证服务的高可用,但是对于一致性的要求不高

zookepper内部是CP协议,即它可以保证服务的数据一致性,但是对于服务的可用性要求不高

nacos内部是AP/CP协议,默认AP协议,如果对一致性的要求比较高可以切换为CP协议

2)雪崩保护:

eureka是存在雪崩保护机制的,服务注册列表会缓存在调用方的本地

zookepper没有雪崩保护机制

nacos的雪崩保护机制和eureka的原理相同,将服务的注册列表保存在调用方的本地

3)容器化部署:

eureka和zookepper暂时不支持k8s

nacos在这方面是支持的

 

posted @ 2019-08-13 17:23  遇见神龙  阅读(170)  评论(0编辑  收藏  举报