观察者"/>
说说zookeeper的观察者
想写这么一个文章呢,是源于某天,有人问我,你知道zookeeper的观察者吗?作为一个大数据攻城狮,那肯定是知道的呀。于是灵魂三问来了,那你知道为什么要有zookeeper的观察者吗,你知道观察者的作用吗,你知道观察者和leader、flower的区别是什么吗?Enmm…于是得到了一声冷笑,看来基础知识是忘了,恶补一下吧。
暗戳戳的翻了之前的学习笔记之后,现在来理直气壮的回答一下这三个问题吧。
为什么要有观察者?
众所周知,ZooKeeper 是一个分布式的应用程序协调服务,是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。Zookeeper 是一个由多个 server 组成的集群,一个 leader,多个 follower。
虽然通过让客户端直接连接到集群的投票成员,ZooKeeper也表现得非常好,但是这种架构使得很难扩展到有大量的客户端情况。问题是,随着我们添加更多投票成员,写入性能也会随着下降。这是因为写操作需要集群中至少一半的节点投票达成一致,因此随着更多投票者的加入,投票的成本会显著增加。
为了减少写成本,并进一步完善集群的可扩展性,于是引入了observer,即观察者。
观察者的作用
上一个问题说了,观察者的作用是为了减少集群的写成本,那具体是怎么减少写成本的呢:
观察者不参与投票,它只监听投票的结果。除了这个简单的区别,观察者精确的和flower一样运行 - 客户端可能链接他们并发送读取和写入请求。观察者像flower一样转发这些请求到leader,而他们只是简单
更多推荐
说说zookeeper的观察者
发布评论