繁体   English   中英

EC2上的datastax cassandra集群 - 节点如何找到彼此?

[英]datastax cassandra cluster on EC2 - how do nodes find each others?

我按照Datastax指令在EC2上设置了一个集群http://www.datastax.com/documentation/cassandra/2.0/cassandra/install/installAMILaunch.html一切正常,集群已创建。

我的问题是怎么样? 实例如何相互知道IP? 最初我假设它是从元数据中读取的,但我没有在那里找到信息。

Cassandra使用“种子节点”将节点拓扑信息传播到整个群集,包括所有节点的地址。 根据DataStax文档 ,AMI设置所有种子节点。 我希望AMI修改每个节点的cassandra.yaml文件来配置这些种子节点。

编辑:

它找到种子节点,因为您在创建群集时在每个节点上的cassandra.yaml文件中配置它们,或者AMI代表您执行此操作。 当每个节点出现时,它会在其cassandra.yaml中查找种子节点列表,与它们联系,并提供他们所知道的所有节点的列表。 换句话说,所有已联系它们的节点。 当新节点加入时,存在通过集群传播,种子节点保留主列表。

我相信我有一个答案:Reflector,一个集中式数据传输服务,通过预留ID从每个服务器和组获取请求。 一段时间后,每个人都可以查询并获取其他成员的IP。

“反射器用于跟踪正在启动的DSE / C群集中的哪些IP。反射器接收内部IP地址,公共DNS,预留ID和群集名称以跟踪群集”这个数据保存到SQLite数据库。如果在5分钟不活动后发送另一个对php文件的请求,数据库将被清除并重新开始,以保​​持IP列表尽可能新,以避免冲突并保护您的隐私“。

对反射器的调用在https://github.com/riptano/ComboAMI/blob/2.5/ds2_configure.py#L445

基本上,您已为其连接打开了一些tcp端口。 7000端口用于内部节点通信。 9042用于CQL本机传输。

因此,您可以在命令行中检查这些端口。 他们都应该被打开。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM