Zookeeper知识点
一、zookeeper是什么?能做什么?
zookeeper是一个开源的,是用于维护配置信息,命名,提供分布式同步和提供组服务的集中式服务。可以基于zookeeper实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、master选举、分布式锁和分布式队列等功能
二、zookeeper的系统架构是怎么样的?
zookeeper分为服务端(server)和客户端(client),客户端可以连接到整个zookeeper服务的任意服务器上(除非leaderservers参数被显式设置,leader不允许接受客户端连接),客户端使用并维护一个TCP连接,通过这个连接发送请求、接受响应,获取观察的时间以及发送信息
三、zookeeper集群中server有三种角色
leader:负责投票的发起与决议,更新系统状态,写数据
follower:用于接收客户端请求兵用来返回结果,在选主过程中参加投票
observer:可以接受客户端连接,将写请求转发给leader节点,但不参与投票过程,之同步leader状态,主要存在目的就是为了提高读取效率
将server分为三种,是为了避免太多的从节点参与过半写的过程,导致影响性能,这样zookeeper只要使用一个几台机器的小集群就可以实现高性能了,如果要横向扩展的话,只需要增加observer节点即可
四、zookeeper初始化是如何进行leader选举的?</