我通过在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的属性是:
contactpoints = localhost,port = 9043
如何在第一个应用程序运行时连接到cassandra实例9043?
您正在指定localhost,但在Docker中,每个localhost都是正在运行的映像的本地主机,而不是主机。我看到你有端口绑定到主机网络,所以你需要指定机器的IP地址而不是localhost。
附:另外,为什么要用Cassandra包装应用程序?这不是Docker的工作方式 - 每个进程都应该在单独的容器中运行......
Cassandra中的每个节点都应绑定到一个单独的IP地址,即使在运行2个实例/节点的物理服务器或docker上也是如此。