在群集主机地址

时间:2015-12-14 14:35:36

标签: couchbase spring-data-couchbase

我的数据人员给了我http://127.0.0.1:8091/pools网址以连接到我们的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网址时,我收到了无效的密码异常。

我认为第一个网址是用的,但不是我用的方式。

我可能会在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 个答案:

答案 0 :(得分:1)

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

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

您应该只使用"127.0.0.1"进行尝试。您还可以指定存储桶名称和/或密码(请咨询管理员)。 Spring Data Couchbase使用的默认值为"default"""(空密码),但您可以覆盖getBucketName()getBucketPassword()的{​​{1}}和AbsctractCouchbaseConfiguration方法改变了。

PS:Spring Data Couchbase文档可用here