我设置了两个数据中心(dc1,dc2),每个中心有3个节点。一致性级别为本地\u仲裁,串行一致性级别为本地\u串行。本地数据中心是dc1。当本地数据中心中只有一个节点处于活动状态时,micro服务不会自动故障切换到dc2,而是不断抱怨“没有足够的副本可用于在一致性本地\u仲裁处进行查询(需要2个,但只有1个处于活动状态)”。任何建议都将不胜感激。
maven依赖项:
org.springframework.boot:spring-boot:jar:2.3.7.RELEASE
org.springframework.boot:spring-boot-starter-data-cassandra:jar:2.3.7.RELEASE
org.springframework.data:spring-data-cassandra:jar:3.0.6.RELEASE
com.datastax.oss:java-driver-core:4.10.0
亚马尔:
spring:
data:
cassandra:
consistency-level: local_quorum
serial-consistency-level: LOCAL_SERIAL
local-datacenter: DC1
other configs: ...
代码:
public class CassandraConfig {
@Bean
public CqlSessionBuilderCustomizer sessionBuilderConfigurer() {
return cqlSessionBuilder ->
cqlSessionBuilder
.withAuthCredentials("username", "pwd");
}
@Bean
public DriverConfigLoaderBuilderCustomizer driverConfigLoaderBuilderCustomizer() {
return loaderBuilder -> loaderBuilder
.withDuration(DefaultDriverOption.REQUEST_TIMEOUT, Duration.ofMillis(10000))
.withBoolean(DefaultDriverOption.LOAD_BALANCING_DC_FAILOVER_ALLOW_FOR_LOCAL_CONSISTENCY_LEVELS, true)
.withInt(DefaultDriverOption.LOAD_BALANCING_DC_FAILOVER_MAX_NODES_PER_REMOTE_DC, 3);
}
}
暂无答案!
目前还没有任何答案,快来回答吧!