ZooKeeper

作者: 陈菲TW | 来源:发表于2020-05-07 14:42 被阅读0次

如果面试官让你给他讲讲 ZooKeeper 是个什么东西,你能回答到什么地步呢?好吧,这篇文章就是为了准备面试用的。

一、什么是ZooKeeper?

ZooKeeper 是一个开源的分布式协调服务。ZooKeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。原语: 操作系统或计算机网络用语范畴。是由若干条指令组成的,用于完成一定功能的一个过程。具有不可分割性·即原语的执行必须是连续的,在执行过程中不允许被中断。

Zookeeper 一个最常用的使用场景就是用于担任服务生产者和服务消费者的注册中心。 服务生产者将自己提供的服务注册到Zookeeper中心,服务的消费者在进行服务调用的时候先到Zookeeper中查找服务,获取到服务生产者的详细信息之后,再去调用服务生产者的内容与数据。如下图所示,在 Dubbo架构中 Zookeeper 就担任了注册中心这一角色。Dubbo 官方推荐使用 ZooKeeper注册中心。

二、最佳实践

1)最好是使用集群版的 ZooKeeper 而不是单机版的。官网给出的架构图就描述的是一个集群版的 ZooKeeper 。通常 3 台服务器就可以构成一个 ZooKeeper 集群了。

2)最好使用奇数台服务器构成 ZooKeeper 集群

我们知道在Zookeeper中 Leader 选举算法采用了Zab协议。Zab核心思想是当多数 Server 写成功,则任务数据写成功。也就是说只要半数以上节点存活,ZooKeeper 就能正常服务。

①如果有3个Server,则最多允许1个Server 挂掉。

②如果有4个Server,则同样最多允许1个Server挂掉。

既然3个或者4个Server,同样最多允许1个Server挂掉,那么它们的可靠性是一样的,所以选择奇数个ZooKeeper Server即可,这里选择3个Server。

相关文章

网友评论

      本文标题:ZooKeeper

      本文链接:https://www.haomeiwen.com/subject/vncaghtx.html