batchWorker_1 | [DEBUG] 2017-10-30 12:42:10.035 [cluster1-nio-worker-0] Connection - Connection[/172.17.0.3:9042-1, inFlight=0, closed=false] Error connecting to /172.17.0.3:9042 (connection timed out: /172.17.0.3:9042)
batchWorker_1 | [DEBUG] 2017-10-30 12:42:10.037 [cluster1-nio-worker-0] STATES - Defuncting Connection[/172.17.0.3:9042-1, inFlight=0, closed=false] because: [/172.17.0.3:9042] Cannot connect
batchWorker_1 | [DEBUG] 2017-10-30 12:42:10.038 [cluster1-nio-worker-0] STATES - [/172.17.0.3:9042] preventing new connections for the next 1000 ms
batchWorker_1 | [DEBUG] 2017-10-30 12:42:10.038 [cluster1-nio-worker-0] STATES - [/172.17.0.3:9042] Connection[/172.17.0.3:9042-1, inFlight=0, closed=false] failed, remaining = 0
batchWorker_1 | [DEBUG] 2017-10-30 12:42:10.039 [cluster1-nio-worker-0] Connection - Connection[/172.17.0.3:9042-1, inFlight=0, closed=true] closing connection
batchWorker_1 | [DEBUG] 2017-10-30 12:42:10.042 [main] ControlConnection - [Control connection] error on /172.17.0.3:9042 connection, no more host to try
batchWorker_1 | com.datastax.driver.core.exceptions.TransportException: [/172.17.0.3:9042] Cannot connect
batchWorker_1 | at com.datastax.driver.core.Connection$1.operationComplete(Connection.java:165) ~[batch_worker_server.jar:0.01]
batchWorker_1 | at com.datastax.driver.core.Connection$1.operationComplete(Connection.java:148) ~[batch_worker_server.jar:0.01]
...
我正在运行我的应用程序和一个cassandra容器,试图建立从应用程序容器到cassandra容器的连接。
问题是,它无法从应用程序容器中解析cassandra容器IP。不知道为什么。
我还启用了start_rpc
并公开了所有与cassandra相关的端口。仍然没有运气。
答案 0 :(得分:2)
在cassandra配置中更改
的IP地址rpc_address (默认:localhost)客户端的监听地址 连接(Thrift RPC服务和本机传输)。 有效值:
unset:使用配置的主机名解析地址 节点的配置。如果未设置,主机名将解析为 使用/ etc / hostname,/ etc / hosts或DNS的此节点的IP地址。
0.0.0.0:侦听所有已配置的接口。您必须将broadcast_rpc_address设置为0.0.0.0以外的值。
IP地址
- 主机名
醇>RPC_ADDRESS = 0.0.0.0
这是 docker-compose.yml 文件
version: '2'
services:
cassandra:
container_name: cassandra
image: cassandra:3.9
volumes:
- /path/of/host/for/cassandra/:/var/lib/cassandra/
ports:
- 7000:7000
- 7001:7001
- 7199:7199
- 9042:9042
- 9160:9160
environment:
- CASSANDRA_CLUSTER_NAME='cassandra-cluster'
- CASSANDRA_NUM_TOKENS=256
- CASSANDRA_RPC_ADDRESS=0.0.0.0
restart: always
答案 1 :(得分:1)
您可以将Docker网络创建为described in documentation,并连接Cassandra&你的应用程序在同一个网络上。
您还需要检查Cassandra正在侦听的接口 - 是单接口还是全部接口?