产品经理学大数据——大数据软件框架:Hadoop框架(4)之Zookeeper(分布式协作服务)

Zookeeper是一个集中式服务,主要负责分布式服务调度,它用来完成配置管理、名字服务、提供分布式锁以及集群管理等工作。

  • 配置管理

应用程序中经常有一些配置,比如数据库连接等。一般我们都是使用配置文件的方式,在代码中引入这些配置文件。这种方式是适合只有一台服务器的时候。当我们有很多服务器时,就需要寻找一种集中管理配置的方法,而不是在每个服务器上存放配置文件。我们在这个集中的地方修改了配置,所有需要配置的服务都能读取配置。一般我们用一个集群来提供这个配置服务以提升可靠性。

Zookeeper保证了配置在集群中的一致性,它使用Zab这种一致性协议来提供一致性。现在有很多开源项目使用Zookeper来维护配置,比如在HBase中,客户端就是链接一个Zookeeper,获取必要的HBase集群的配置信息,然后才可以进一步操作。在开源的消息队列Kafka中,也是用Zookeeper来维护broker的信息。

  • 名字服务

DNS把域名对应到IP地址,从而为我们提供了名字服务。在应用系统中我们有时也会需要这类的名字服务,特别是在服务特别多的时候。我们只需要访问一个共同的地方,它提供统一的入口。

  • 分布式锁

Zookeeper是一个分布式协调服务。我们利用Zookeeper来协调多个分布式进程之间的活动。在一个分布式环境中,为了提高可靠性,集群中的每台服务器上都部署着同样的服务。我们使用分布式锁,在某个时刻只让一个服务去干活,当这个服务出问题时就将锁释放,并立即切换到另外的服务上。比如HBase的Master就是采用这种机制。在Zookeeper中是通过选举leader完成的分布式锁。

  • 集群管理

在分布式的集群中,经常会由于各种原因,比如硬件故障、软件故障、网络故障,有新的节点加入进来,也有老的节点退出集群。这个时候,集群中其他机器需要感知到这种变化,然后格努这种变化作出对应的决策。比如:一个分布式的SOA架构中,服务是一个集群提供的,当消费者访问某个服务时,就需要确定哪些节点可以提供该服务。Kafka的队列就采用了Zookeeper作为消费者的上下线管理。

  • 总结

Zookeeper就是一种可靠的、可扩展的、分布式的、可配置的协调机制,用来统一分布式系统的状态。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值