首页 > 解决方案 > 使用 AWS 的 MCS 服务时出现错误“没有节点可用于执行查询”

问题描述

一段时间后,我们得到了错误:

2020-03-30 14:09:45 +0000 [http-nio-12082-exec-10] 错误 ciicucGenericCassandraDao 2fcc2418-2a0f-401e-b51f-b57fc0b305ea - 插入租户代码数据时出错:anne2020-03-30 14: 09:45 +0000 [http-nio-12082-exec-10] 错误 ciicucGenericCassandraDao 2fcc2418-2a0f-401e-b51f-b57fc0b305ea - 插入租户代码数据时出错:annecom.datastax.oss.driver.api.core.NoNodeAvailableException:在 com.datastax.oss.driver.internal.core.util.concurrent.CompletableFutures 的 com.datastax.oss.driver.api.core.NoNodeAvailableException.copy(NoNodeAvailableException.java:40) 中没有节点可用于执行查询。 getUninterruptibly(CompletableFutures.java:149) 在 com.datastax.oss.driver.internal.core.cql.CqlRequestSyncProcessor.process(CqlRequestSyncProcessor.java:53) 在 com.datastax.oss.driver.internal.core.cql。CqlRequestSyncProcessor.process(CqlRequestSyncProcessor.java:30) 在 com.datastax.oss.driver.internal.core.session.DefaultSession.execute(DefaultSession.java:210) 在 com.datastax.oss.driver.api.core.cql。 SyncCqlSession.execute(SyncCqlSession.java:53) 在 us.cassandra.GenericCassandraDao.save(GenericCassandraDao.java:79) 在 us.cassandra.implementations.BasicCassandraStorage.lambda$save$0(BasicCassandraStorage.java:26) 在 io.github。弹性4j.circuitbreaker.CircuitBreaker.lambda$decorateSupplier$4(CircuitBreaker.java:536) at us.cassandra.implementations.CircuitBreakerStorage.wrap(CircuitBreakerStorage.java:34)在 io.github.resilience4j 的 us.cassandra.implementations.BasicCassandraStorage.lambda$save$0(BasicCassandraStorage.java:26) 的 us.cassandra.GenericCassandraDao.save(GenericCassandraDao.java:79) 执行(SyncCqlSession.java:53)。断路器.CircuitBreaker.lambda$decorateSupplier$4(CircuitBreaker.java:536) at us.cassandra.implementations.CircuitBreakerStorage.wrap(CircuitBreakerStorage.java:34)在 io.github.resilience4j 的 us.cassandra.implementations.BasicCassandraStorage.lambda$save$0(BasicCassandraStorage.java:26) 的 us.cassandra.GenericCassandraDao.save(GenericCassandraDao.java:79) 执行(SyncCqlSession.java:53)。断路器.CircuitBreaker.lambda$decorateSupplier$4(CircuitBreaker.java:536) at us.cassandra.implementations.CircuitBreakerStorage.wrap(CircuitBreakerStorage.java:34)

重启有帮助,但不是解决方案。感谢是否有人可以帮助我找到问题。

标签: amazon-web-servicescassandraconnection-poolingcql

解决方案


您可以在 cassandra 中执行 nodetool status ,您将获得数据中心的名称。

... $ ./nodetool 状态

然后,将 .withLocalDatacenter("us-east-1") 更改为 .withLocalDatacenter("your-data-center-name") 并重试。

请点击此链接 = https://docs.aws.amazon.com/mcs/latest/devguide/ManagedCassandraService.pdf


推荐阅读