首页 文章

在群集主机地址上配置Spring Data Couchbase

提问于
浏览
1

我的数据人员给了我 http://127.0.0.1:8091/pools url连接到我们的Couchbase服务器,我被告知 pools 后缀是集群中所有节点的地址 .

我正在使用Spring 4.2.0.RELEASE和spring-data-couchbase 2.0.0.M1对抗Couchbase 2.5.1企业版(build-1083)

现在,如果我将上面的url原样添加到getBootstrapHosts列表中:

@Override
  protected List<String> getBootstrapHosts() {
    return Collections.singletonList(couchbaseProperties.getHost());
  }

我在 8091/pools 值上得到了数字格式异常 .

但是当使用 http://127.0.0.1:8091 url时,我收到了无效的密码异常 .

我估计第一个网址是用的,但不是我用的方式 .

可能我应该在AbstractCouchbaseConfiguration类中覆盖一个方法,但查看源代码并没有真正启发我 .

这是Couchbase配置类 .

@Configuration
@EnableCouchbaseRepositories(basePackages = { "com.thalasoft.data.couchbase.repository" })
@ComponentScan(nameGenerator = PackageBeanNameGenerator.class, basePackages = { "com.thalasoft.data.couchbase.config" })
@EnableTransactionManagement
public class CouchbaseConfiguration extends AbstractCouchbaseConfiguration {

  private static Logger logger = LoggerFactory.getLogger(CouchbaseConfiguration.class);

  @Autowired
  private CouchbaseProperties couchbaseProperties;

  @Override
  protected List<String> getBootstrapHosts() {
    return Collections.singletonList(couchbaseProperties.getHost());
  }

  @Override
  protected String getBucketName() {
    return couchbaseProperties.getBucketName();
  }

  @Override
  protected String getBucketPassword() {
    return couchbaseProperties.getBucketPassword();
  }

  @Bean
  public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
     return new PropertySourcesPlaceholderConfigurer();
  }

  @Bean
  public LocalValidatorFactoryBean validator() {
    return new LocalValidatorFactoryBean();
  }

  @Bean
  public ValidatingCouchbaseEventListener validationEventListener() {
    return new ValidatingCouchbaseEventListener(validator());
  }

}

1 回答

  • 1

    您的数据库管理员为您提供连接的地址 127.0.0.1 这一事实看起来很奇怪,但如果群集的一个节点与客户端代码共同运行,则确实有效...

    这个基于url的语法是用于生成SDK的 1.4.x 的语法,并且 2.x 中的配置确实有点不同(反映了Couchbase SDK在1.4.x和2.x之间的演变):您只需要提供主机名或者每个节点的ip以在列表中引导 .

    你应该尝试使用 "127.0.0.1" . 您还可以指定存储桶名称和/或密码(请咨询管理员) . Spring Data Couchbase为每个使用的默认值是 "default""" (空密码),但是您可以从 AbsctractCouchbaseConfiguration 覆盖 getBucketName()getBucketPassword() 方法来更改它 .

    PS: Spring Data Couchbase 文档可用here

相关问题