【问题标题】:datastax cassandra cluster on EC2 - how do nodes find each others?EC2上的datastax cassandra集群 - 节点如何找到彼此?
【发布时间】:2014-08-28 20:45:01
【问题描述】:

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

我的问题是怎么做? 实例如何知道彼此的 IP? 最初我认为它是从元数据中读取的,但我没有在那里找到信息。

【问题讨论】:

    标签: amazon-ec2 cassandra datastax


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      编辑:

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

      【讨论】:

      • 我的问题是每个节点如何发现其他节点(包括种子节点)。
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2014-04-25
        • 1970-01-01
        • 2013-02-17
        • 2016-10-15
        • 2020-08-19
        • 2012-12-12
        • 2019-07-16
        • 2015-10-17
        • 2016-10-04
        相关资源
        最近更新 更多