本节书摘来自华章计算机《Storm企业级应用:实战、运维和调优》一书中的第2章,第2.5节,作者:马延辉 陈书美 雷葆华著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.5 本章小结
在Storm中使用ZooKeeper主要用于完成Storm集群各节点的分布式协调工作,一是存储客户端提供的Topology任务信息,Nimbus负责将任务分配信息写入ZooKeeper,Supervisor从ZooKeeper上读取任务分配信息;二是存储Supervisor和Worker的心跳(包括它们的状态),使得Nimbus可以监控整个集群的状态,从而重启一些挂掉的Worker;三是存储整个集群的所有状态信息和配置信息。由于ZooKeeper在Storm集群中的重要性,本章详细介绍了ZooKeeper的安装。
Storm使用ZeroMQ传送消息,这就消除了中间的排队过程,使得消息能够直接在任务自身之间流动。在消息的背后,是一种用于序列化和反序列化Storm的原语类型的自动化且高效的机制。Storm使用ZooKeeper协调集群时,由于ZooKeeper并不用于传递消息,所以Storm给ZooKeeper带来的压力相当低。大多数情况下,单个节点的ZooKeeper集群足够胜任,不过为了确保故障恢复或者部署大规模Storm集群,可能需要更大规模节点的ZooKeeper集群。