0

我通过将其部署在 docker 上创建了 2 个 cassandra 实例。一个在 9042 端口上,另一个在 9043 上。

我有 2 个应用程序,一个要连接到 9042,另一个要连接到 9043。 第一个应用程序连接到 9042 并且运行成功。

我为 db 提供的属性是:contactpoints = localhost, port = 9042

将由第二个数据库实例启动的第二个应用程序,即 9043 正在抛出错误:

om.datastax.driver.core.Cluster - 您在联系点中列出了 localhost/0:0:0:0:0:0:0:1:9042,但在控制主机的 system.peers 中没有找到它启动

我为 db 提供的属性是:

接触点 = 本地主机,端口 = 9043

第一个应用程序运行时如何连接到 cassandra intsance 9043?

4

2 回答 2

0

Cassandra 中的每个节点都应该绑定到一个单独的 IP 地址,即使在运行 2 个实例/节点的物理服务器或 docker 上也是如此。

于 2019-02-21T19:53:06.353 回答
0

您正在指定 localhost,但在 Docker 内部,每个 localhost 都是正在运行的映像本地的,而不是主机的本地。如我所见,您有端口绑定到主机网络,因此您需要指定机器的 IP 地址而不是 localhost。

PS 另外,你为什么要用 Cassandra 打包应用程序?这不是 Docker 的工作方式——每个进程都应该在单独的容器中运行......

于 2019-02-21T18:14:21.673 回答