【发布时间】:2020-07-24 03:56:33
【问题描述】:
不推荐使用 spring Data 2 为 Cassandra 设置重试策略。
示例 Spring 1.5 spring.data.cassandra.retry-policy=com.datastax.driver.core.policies.FallthroughRetryPolicy
如何使用 spring data 2 在应用程序属性中设置重试策略
【问题讨论】:
不推荐使用 spring Data 2 为 Cassandra 设置重试策略。
示例 Spring 1.5 spring.data.cassandra.retry-policy=com.datastax.driver.core.policies.FallthroughRetryPolicy
如何使用 spring data 2 在应用程序属性中设置重试策略
【问题讨论】:
这是一个使用 CassandraConfig 类的工作示例:
@Configuration
public class CassandraConfig extends AbstractCassandraConfiguration {
@Value("${spring.data.cassandra.keyspacename}")
private String keyspaceName;
@Value("${spring.data.cassandra.contactpoints}")
private String contactPoints;
@Override
protected String getKeyspaceName() {
return keyspaceName;
}
@Bean
@Override
public CassandraClusterFactoryBean cluster() {
CassandraClusterFactoryBean bean = new CassandraClusterFactoryBean();
bean.setContactPoints(getContactPoints());
bean.setKeyspaceCreations(getKeyspaceCreations());
bean.setStartupScripts(getStartupScripts());
bean.setJmxReportingEnabled(getMetricsEnabled());
bean.setRetryPolicy(FallthroughRetryPolicy.INSTANCE);
return bean;
}
@Bean
@Override
public CassandraSessionFactoryBean session() {
CassandraSessionFactoryBean session = new CassandraSessionFactoryBean();
session.setCluster(cluster().getObject());
session.setConverter(cassandraConverter());
session.setKeyspaceName(getKeyspaceName());
session.setSchemaAction(getSchemaAction());
session.setStartupScripts(getStartupScripts());
session.setShutdownScripts(getShutdownScripts());
return session;
}
@Override
protected String getContactPoints() {
return contactPoints;
}
@Override
protected List<CreateKeyspaceSpecification> getKeyspaceCreations() {
final CreateKeyspaceSpecification myKeyspaceSpecification = CreateKeyspaceSpecification.createKeyspace(keyspaceName)
.ifNotExists()
.with(KeyspaceOption.DURABLE_WRITES, true)
.withSimpleReplication();
return Arrays.asList(myKeyspaceSpecification);
}
@Override
public SchemaAction getSchemaAction() {
return SchemaAction.CREATE_IF_NOT_EXISTS;
}
@Override
public String[] getEntityBasePackages() {
return new String[] { "com.example.model"};
}
@Override
protected boolean getMetricsEnabled() {
return false;
}
}
【讨论】: