【问题标题】:Setting cassandra retry Policy option in spring-data 2在 spring-data 2 中设置 cassandra 重试策略选项
【发布时间】: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 cassandra-3.0


    【解决方案1】:

    这是一个使用 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;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-09-05
      • 1970-01-01
      • 2017-10-13
      • 2016-01-26
      • 2018-06-20
      • 2018-04-13
      • 2018-04-08
      • 2019-08-15
      • 2015-09-30
      相关资源
      最近更新 更多