我对Erlang和分布式计算都是新手。我们是一个小团队,正在尝试建立一个小型的消息服务器。我们正在研究的一件事是如何管理集群状态-我们在Erlang开源项目中遇到了很少的自定义实现,比如Riak,rabbitMq,ejabbered和Vernemq。
似乎Erlang社区正在转向使用gossip协议进行集群管理--我在RabbitMQ ( https://groups.google.com/forum/#!searchin/rabbitmq-users/gossip$20protocol/rabbitmq-users/jvQQy30kLTI/hIDFw94SddQJ )上看到了最近的一篇文章
我的问题是,除了八卦协议之外,还有其他方式进行集群管理吗?还有什么是gossip协议的开源erlang实现。在考虑erlang节点管理时需要考虑哪些因素?
谢谢你的帮助。
发布于 2015-08-27 01:38:00
我也不是分布式计算专家,所以我的回答可能有问题,但不管怎样。一切都取决于你的集群状态和你有什么要求。
如果你必须保证每个集群参与者之间状态的一致性,你最终会得到某种分布式共识机制,比如zk,paxos或raft。
如果您需要高可用性,您将需要一些基于八卦的协议,并让您的应用程序意识到可能的数据不一致(就像Riak对其CRDT数据类型和矢量时钟所做的那样)。
如果你不知道你需要什么,我会选择第一个选项,因为从开发人员的角度来看,这非常容易。如果我清楚地知道第一个选项不再是一个选项,我会转到第二个选项;)
https://stackoverflow.com/questions/32217384
复制相似问题