【发布时间】: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