Spring Data Couchbase - 连接到多个节点

Spring Data Couchbase - connect to several nodes

Java Couchbase 客户端允许连接到集群中的多个节点(以防其中一个节点不可用)

在 Spring Data Couchbase 中是否可行?

我正在为 Spring

使用 Couchbase 2.1 和 XML 配置

是的,你可以这样配置spring-data。当您使用 CouchbaseFactoryBean 配置 CouchbaseClient 时,它接受以逗号分隔的主机列表。下面是配置 CouchbaseClient bean 的示例:

<couchbase:couchbase  bucket="myBucket" password="" host="host1,host2,host3"/>

这是假设您使用的是 1.4.x couchbase-client.jar 依赖项,只要您使用的是 spring-data 1.1.5,就可以了。您没有指定 spring-data 依赖项,但很可能您应该在这里做好。

在 spring data couchbase > 2.x 中执行此操作的唯一方法是:

一个包含三个服务器和三个存储桶的集群,每个存储桶都有一个用户和一个密码。

<couchbase:cluster id="cluster_info" env-ref="couchbaseEnv2" >
    <couchbase:node>server1</couchbase:node>
    <couchbase:node>server2</couchbase:node>
    <couchbase:node>server3</couchbase:node>
</couchbase:cluster>

<couchbase:env id="couchbaseEnv2" connectTimeout="20000" computationPoolSize="10" />

<couchbase:clusterInfo cluster-ref="cluster_info" id="cluster1" login="user1" password="zzzzz1"/>
<couchbase:clusterInfo cluster-ref="cluster_info" id="cluster2" login="user2" password="zzzzz2"/>
<couchbase:clusterInfo cluster-ref="cluster_info" id="cluster3" login="user3" password="zzzzz3"/>

<couchbase:bucket id="bucket1" bucketName="user1" cluster-ref="cluster_info" bucketPassword="zzzzz1"/>
<couchbase:bucket id="bucket2" bucketName="user2" cluster-ref="cluster_info" bucketPassword="zzzzz2"/>
<couchbase:bucket id="bucket3" bucketName="user3" cluster-ref="cluster_info" bucketPassword="zzzzz3"/>

<couchbase:template id="couchBaseTemplate1" bucket-ref="bucket1" clusterInfo-ref="cluster1" />
<couchbase:template id="couchBaseTemplate2" bucket-ref="bucket2" clusterInfo-ref="cluster2"  />
<couchbase:template id="couchBaseTemplate3" bucket-ref="bucket3" clusterInfo-ref="cluster3"  />