Cassandra datastax 驱动程序无法连接到数据中心中的节点之一,但我仍然能够读取和写入数据库。数据中心在一个机架中包含两个节点。我将其中之一指定为种子节点。
Connected to cluster: Test Cluster
Datacenter: datacenter1; Host: /PVT IP1; Rack: rack1
Datacenter: datacenter1; Host: /PUBLIC IP2; Rack: rack1
2017-11-04 02:19:50 WARN com.datastax.driver.core.HostConnectionPool:184 - Error creating connection to /PVT IP1:9042
com.datastax.driver.core.exceptions.TransportException: [/PVT IP1:9042] Cannot connect
at com.datastax.driver.core.Connection$1.operationComplete(Connection.java:165)
at com.datastax.driver.core.Connection$1.operationComplete(Connection.java:148)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:507)
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:500)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:479)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:420)
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:122)
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:220)
at io.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38)
at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:120)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:399)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
at java.lang.Thread.run(Thread.java:745)
Caused by: io.netty.channel.ConnectTimeoutException: connection timed out: /PVT IP1:9042
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:218)
... 7 more
2017-11-04 02:19:50 WARN com.datastax.driver.core.Session:378 - Error creating pool to /PVT IP1:9042
com.datastax.driver.core.exceptions.ConnectionException: [/PVT IP1:9042] Pool was closed during initialization
at com.datastax.driver.core.HostConnectionPool$2.onSuccess(HostConnectionPool.java:148)
at com.datastax.driver.core.HostConnectionPool$2.onSuccess(HostConnectionPool.java:134)
at com.google.common.util.concurrent.Futures$6.run(Futures.java:1773)
at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:456)
at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:817)
at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:753)
at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:613)
at com.google.common.util.concurrent.CollectionFuture$CollectionFutureRunningState.handleAllCompleted(CollectionFuture.java:76)
at com.google.common.util.concurrent.AggregateFuture$RunningState.processCompleted(AggregateFuture.java:255)
at com.google.common.util.concurrent.AggregateFuture$RunningState.decrementCountAndMaybeComplete(AggregateFuture.java:242)
at com.google.common.util.concurrent.AggregateFuture$RunningState.access$300(AggregateFuture.java:91)
at com.google.common.util.concurrent.AggregateFuture$RunningState$1.run(AggregateFuture.java:146)
at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:456)
at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:817)
at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:753)
at com.google.common.util.concurrent.AbstractFuture.completeWithFuture(AbstractFuture.java:730)
at com.google.common.util.concurrent.AbstractFuture.setFuture(AbstractFuture.java:666)
at com.google.common.util.concurrent.Futures$AsyncCatchingFuture.doFallback(Futures.java:826)
at com.google.common.util.concurrent.Futures$AsyncCatchingFuture.doFallback(Futures.java:813)
at com.google.common.util.concurrent.Futures$AbstractCatchingFuture.run(Futures.java:789)
at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:456)
at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:817)
at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:753)
at com.google.common.util.concurrent.AbstractFuture.completeWithFuture(AbstractFuture.java:730)
at com.google.common.util.concurrent.AbstractFuture.setFuture(AbstractFuture.java:666)
at com.google.common.util.concurrent.Futures$AsyncCatchingFuture.doFallback(Futures.java:826)
at com.google.common.util.concurrent.Futures$AsyncCatchingFuture.doFallback(Futures.java:813)
at com.google.common.util.concurrent.Futures$AbstractCatchingFuture.run(Futures.java:789)
at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:456)
at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:817)
at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:753)
at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:634)
at com.google.common.util.concurrent.Futures$AbstractChainingFuture.run(Futures.java:1405)
at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:456)
at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:817)
at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:753)
at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:634)
at com.google.common.util.concurrent.SettableFuture.setException(SettableFuture.java:53)
at com.datastax.driver.core.Connection$1.operationComplete(Connection.java:165)
at com.datastax.driver.core.Connection$1.operationComplete(Connection.java:148)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:507)
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:500)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:479)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:420)
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:122)
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:220)
at io.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38)
at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:120)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:399)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
at java.lang.Thread.run(Thread.java:745)
每个节点的 docker-compose.yaml 文件如下所示:
Yaml file Node 1:
version: "3"
services:
cassandra:
image: cassandra:3.11
container_name: cassandra_node
ports:
- 7000:7000
- 9042:9042
volumes:
- /home/******/docker/cassandra/cassandra-data:/var/lib/cassandra
environment:
CASSANDRA_BROADCAST_ADDRESS: PVT IP1
CASSANDRA_SEEDS: PVT IP1
对于节点 2:
Yaml File Node 2
version: "3"
services:
cassandra:
image: cassandra:3.11
container_name: cassandra_node
ports:
- 7000:7000
- 9042:9042
volumes:
- /home/******/docker/cassandra/cassandra-data:/var/lib/cassandra
environment:
CASSANDRA_BROADCAST_ADDRESS: PVT IP2
CASSANDRA_SEEDS: PVT IP1
有人可以帮我解决这里的问题。谢谢!!
我认为这里的问题在于传递给CASSANDRA_BROADCAST_ADDRESS
and 的值CASSANDRA_SEEDS
。值中有空格字符,因此 cassandra 驱动程序可能无法解析。
我一直在使用下面的 docker-compose.yml 来创建 cassandra 集群。请试一试。
版本:'3' 网络: cassandra-cluster: 驱动程序:桥接 卷: 数据卷-dc1-n1: 数据卷-dc1-n2: 数据卷-dc2-n1: 数据卷-dc2-n2: 服务: ############################################### ########################################### DC1 节点1 # ############################################### ######################################### DC1_N1: container_name: DC1_N1 image : cassandra:latest 命令: bash -c 'if [ -z "$$(ls -A /var/lib/cassandra/)" ] ; 然后睡眠0; fi && /docker-entrypoint.sh cassandra -f' 卷: -数据-体积- DC1-N1:在/ var / lib中/卡桑德拉 环境: - CASSANDRA_CLUSTER_NAME = cassandra_cluster - CASSANDRA_SEEDS = DC1_N1,DC1_N2,DC2_N1,DC2_N2 - CASSANDRA_ENDPOINT_SNITCH = GossipingPropertyFileSnitch - CASSANDRA_DC = DC1 - CASSANDRA_RACK = RACK1 #露出用于卡桑德拉簇端口 暴露: - 7000 - 7001 - 7199 - 9042 - 9160 端口: - "9042:9042" # Cassandra ulimt 推荐设置 ulimits: memlock: -1 nproc:32768 环境: nofile:100000 个 网络: -cassandra-cluster 重启:除非停止 ################################## ############################################### ########## DC1 节点 2 ################################### ############################################### ######## DC1_N2: container_name: DC1_N2 image: cassandra:latest command: bash -c 'if [ -z "$$(ls -A /var/lib/cassandra/)" ] ; 然后睡眠0; fi && /docker-entrypoint.sh cassandra -f' 卷: - data-volume-dc2-n2:/var/lib/cassandra - CASSANDRA_CLUSTER_NAME = cassandra_cluster - CASSANDRA_SEEDS = DC1_N1,DC1_N2,DC2_N1,DC2_N2 - CASSANDRA_ENDPOINT_SNITCH = GossipingPropertyFileSnitch - CASSANDRA_DC = DC1 - CASSANDRA_RACK =的Rack2 #露出用于卡桑德拉集群端口 暴露: - 7000 - 7001 - 7199 - 9042 - 9160 #卡桑德拉ulimt推荐设置 ulimits: MEMLOCK: - 1 nproc:32768 nofile:100000 个 网络: -cassandra-cluster 重启:除非停止 ############################################### ########################################### DC2 节点 1 # ############################################### ######################################### DC2_N1: container_name: DC2_N1 image : cassandra:latest 命令: bash -c 'if [ -z "$$(ls -A /var/lib/cassandra/)" ] ; 然后睡眠0; fi && /docker-entrypoint.sh cassandra -f' 卷: - data-volume-dc2-n1:/var/lib/cassandra 环境: - CASSANDRA_CLUSTER_NAME=cassandra_cluster - CASSANDRA_SEEDS=DC1_N1,DC1_N2,DC2_N1,DC2_N2 - CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch - CASSANDRA_DC=DC2 - CASSANDRA_RACK = RACK1 #暴露于卡桑德拉集群端口 暴露: - 7000 - 7001 - 7199 - 9042 - 9160 #卡桑德拉ulimt建议设置 ulimits: MEMLOCK:-1 NPROC:32768 NOFILE:100000 网: -卡桑德拉集群 重启:除非-停止
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句