我是
的新人 Apache ZooKeeper
:ZooKeeper是一个集中服务,用于维护配置信息,命名,提供分布式同步和提供组服务。
Apache Mesos
:Apache Mesos是一个集群管理器,可以简化在共享服务器池上运行应用程序的复杂性。
Apache Helix
:Apache Helix是一个通用的集群管理框架,用于自动管理托管在节点集群上的分区,复制和分布式资源。
Erlang Langauge
:Erlang是一种编程语言,用于构建具有高可用性要求的大规模可扩展软实时系统。
我觉得Helix
和Mesos
对Clustering
管理系统都很有用。它们与ZooKeeper
的关系如何?如果有人给我一个真实世界的例子,它会更好用。
我很想知道[BOINC][1]
如何向客户分发任务?他们使用上述任何技术吗? (忘了Erlang)。
我只需要简要介绍一下:)
答案 0 :(得分:1)
Erlang由爱立信开发,旨在用于电话系统。按照设计,它运行成百上千,数千甚至十万个小进程来处理任务,方法是在它们之间发送信息,而不是共享内存或状态。这启用了各种有趣的功能,这些功能对于高可用性分布式系统非常有用,例如:
一些实际使用Erlang的具体示例如下:
作为Mesos的用户,我可能会说我有ServiceX。这是一个位于位置Y的可执行包。ServiceX的每个实例都需要4 GB的RAM和2个内核。我需要将8个实例连接到负载均衡器。您可以在配置中指定它,并根据该配置进行部署。 Mesos会发现具有足够的内存和CPU容量的硬件可以处理该服务的每个实例,并在每个位置启动该服务。
它还可以处理有关编排的许多其他更复杂的主题,但这可能有点深入:)
Zookeepers最常见的用例是服务发现和配置管理。从根本上,您可以想到它,就像嵌套的键值存储一样,其中服务可以查看预定义的路径以查看其他服务当前所在的位置。
一个简单的例子是我有一个使用共享数据库集群的Web服务。我知道该数据库群集的简单名称,并且知道它的配置在zookeeper中的位置。我可以在zookeeper中查找(或反复轮询)该路径,以检查活动数据库主机的地址。另一方面,如果我停止旋转数据库节点并将其替换为新节点,则zookeeper中的配置将使用新地址进行更新,并且任何持续查看该节点的内容都将检测到此更改并更改其连接位置
Zookeeper的一个更复杂的用例是Kafka的使用方式(或我上次使用Kafka时的使用方式)。卡夫卡有溪流,溪流有很多碎片。每个流的每个使用者在读取并处理到流中的特定点之后,都使用Zookeeper在每个分片中保存检查点。这样,如果使用者崩溃或重新启动,它就会知道在流中提取的位置。
答案 1 :(得分:0)
我不了解Meos和Earlang语言。但是this文章可能会帮助您使用Helix和Zookeeper。
本文告诉我们:
Zookeeper负责将所有部分粘合在一起,其中Helix是注册所有集群详细信息(集群本身,节点,资源)的集群管理组件。
本文与在JBPM中使用helix和zookeeper进行集群有关。但是,您将基本了解helix和zookeeper的用途。
在我在线阅读的大多数文章中,似乎Zookeeper和helix一起使用了。
答案 2 :(得分:-1)
Apache Zookeeper可以安装在单台计算机上,也可以安装在群集上。 它可用于跟踪日志。它可以在分布式平台上提供各种服务。
Storm和Kafka依赖Zookeeper。
Storm使用Zookeeper存储所有状态,以便它可以从任何(分布式)组件服务的中断中恢复。
Kafka队列消费者可以使用Zookeeper存储有关队列消耗内容的信息。