在集群主机地址上配置 Spring Data Couchbase
Configure Spring Data Couchbase on a cluster host address
我的数据人员给了我 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 时,我得到了一个无效密码异常。
我估计第一个 url 是要使用的,但不是我想要的方式。
可能有一个方法我应该在 AbstractCouchbaseConfiguration class 中覆盖,但查看源代码并没有真正启发我。
这是 Couchbase 配置 class。
@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());
}
}
您的数据库管理员给您 127.0.0.1
作为连接地址这一事实看起来很奇怪,但如果集群的一个节点 运行 与客户端代码位于同一位置,则确实可能有效。 ..
这种基于 url 的语法是用于 1.4.x
代 SDK 的语法,2.x
中的配置确实有点不同(反映了 Couchbase SDK 的演变在 1.4.x 和 2.x 之间):您只需要在列表中向 bootstrap 提供每个节点的主机名或 IP。
您应该只尝试 "127.0.0.1"
。您也可能需要指定存储桶名称 and/or 密码(询问您的管理员)。 Spring Data Couchbase 使用的每个默认值是 "default"
和 ""
(空密码),但您可以覆盖 getBucketName()
和 getBucketPassword()
方法18=] 来改变它。
PS:Spring Data Couchbase
文档可用 here
我的数据人员给了我 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 时,我得到了一个无效密码异常。
我估计第一个 url 是要使用的,但不是我想要的方式。
可能有一个方法我应该在 AbstractCouchbaseConfiguration class 中覆盖,但查看源代码并没有真正启发我。
这是 Couchbase 配置 class。
@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());
}
}
您的数据库管理员给您 127.0.0.1
作为连接地址这一事实看起来很奇怪,但如果集群的一个节点 运行 与客户端代码位于同一位置,则确实可能有效。 ..
这种基于 url 的语法是用于 1.4.x
代 SDK 的语法,2.x
中的配置确实有点不同(反映了 Couchbase SDK 的演变在 1.4.x 和 2.x 之间):您只需要在列表中向 bootstrap 提供每个节点的主机名或 IP。
您应该只尝试 "127.0.0.1"
。您也可能需要指定存储桶名称 and/or 密码(询问您的管理员)。 Spring Data Couchbase 使用的每个默认值是 "default"
和 ""
(空密码),但您可以覆盖 getBucketName()
和 getBucketPassword()
方法18=] 来改变它。
PS:Spring Data Couchbase
文档可用 here