服务和负载均衡的实现(zookeeper)

Zookeeper

 

1Zookeeper是什么?

Zookeeper是一个大型分布式系统的可靠地协调系统,提供的功能包括配置维护,名字服务,分布式同步,组服务等。Zeepkeeper是可以通过集群复制的,集群间通过自动广播协议来保持数据的一致性。该协议包括leader electionatomic broadcas阶段。集群中将选出一个leader,其他的机器则称为follower,所有的写操作都被传送给leader,并通过broadcas将所有的更新告诉follower。当leader崩溃或者失去大量follower时,需要重新选举出一个leader,让所有的服务器都恢复正常的状态。当leader被选举出来,且大多数服务器完成了和leader的状态同步后,leader election的过程就完成了。接下来atomic broadcas同步leaderfollower之间的信息,保证leaderfollower具有相同的系统状态。

 

2、使用Zookeeper的好处?

Zookeeper的核心类似于一个文件系统,提供一些简单的操作和一些附加的抽象,如znode的排序于watch机制,并且集群的部署方式使其具有较高的可靠性。Zookeeper的协作过程简化了松散耦合系统之间的交互,即使参与者彼此不知道对方的存在,也能够互相发现并且完成交互。

 

3、zookeeper简单使用。

Zookeeper包含

创建一个node节,

删除一个node节点,

设置和获取节点内容,

添加子节点,

判断节点是否存在,

以及当节点的状态发生变化时,可以通过watcher机制实现,让客户端得到相应的通知(类似于观察者模式)。

 

4、路由和负载均衡的实现。

zookeeper中,一但服务器与zookeeper集群断开连接,znode节点已经不存在,此时通过注册相应的watcher机制,服务消费者能够第一时间获取服务提供者信息的变更。利用znode的特点和watcher机制将其作为动态注册和获取服务信息的配置中心,统一管理服务名称和其对应的服务器列表,能够实时的感知到后端服务器的状态,从而保持服务配置信息能够一致以及进行简单的扩容。

Zookeeper类似于一棵节点树,当服务提供者启动时,将服务器的名称、地址以节点的信息添加到配置中心,而服务消费中通过服务器名称以及配置中心来获得需要调用的服务节点下的服务地址,再利用负载均衡算法选取其中的某一台服务器进行调用。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值