【问题标题】:Cassandra Multi Node Cluster - Scan nameCassandra 多节点集群 - 扫描名称
【发布时间】:2016-11-27 08:08:51
【问题描述】:

我是 cassandra 数据库的新手,我已经配置了多节点 cassandra,配置为每台机器一个节点
我想从客户端应用程序中使用一个名称(如 Oracle RAC 中的扫描名称)访问 cassandra db,是否可以以这种方式进行,
我们的开发人员已经习惯了 Oracle RAC 扫描名称,他们期望在多节点 cassandra 中也有类似的东西

目前我可以使用我分配的单独 IP 访问单个节点

谁能帮帮我

【问题讨论】:

  • 嗨,AFAIK cassandra 中没有这样的功能。集群中的每个节点都需要在配置 yaml 中设置一个或多个种子节点。这可以是 DNS 名称或 IP。更多信息 - wiki.apache.org/cassandra/GettingStarted,在 配置多节点集群部分
  • 客户端应用程序也可以使用这些种子节点。我不确定您打算使用的驱动程序。 Java 驱动程序能够使用任何节点查找集群拓扑。见 - docs.datastax.com/en/drivers/java/2.1/com/datastax/driver/core/…
  • 您好,谢谢您的回复,如果是这样的话,Java 开发人员应该列出所有可用的节点 IP,在他们的连接中?是这样吗.. 如果有 3 个节点,那么应该在连接字符串中指定 3 个 IP?
  • 这三个都可以(IP 或域名)。理想情况下,在基于云的环境中,您将在不同的机架或区域中拥有节点,并且每个区域或机架中的一个节点将被设置为种子节点。 @Johnny M 描述的解决方案更优雅,但我不确定 cassandra 驱动程序是否能够使用它来查找拓扑。

标签: cassandra datastax cassandra-2.0 datastax-enterprise spark-cassandra-connector


【解决方案1】:

我认为您的描述是服务发现。你应该看看 Consul (https://www.consul.io/) 来定义你的应用程序连接到 Cassandra 的联系点。

基本上,您可以使用 Consul 管理单个 DNS 条目 (https://www.consul.io/docs/agent/dns.html) 供您的应用程序使用,而无需硬编码 IP 等。

【讨论】:

    猜你喜欢
    • 2020-04-12
    • 2016-08-14
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 2017-05-20
    • 2017-06-03
    • 2021-04-23
    相关资源
    最近更新 更多