我是couchbase的新手,我正在尝试在我的应用程序中实现couchbase .
我很困惑
com.couchbase.client.CouchbaseClient
和
com.couchbase.client.java.CouchbaseCluster .
我试图在CouchbaseClient和CouchbaseCluster上谷歌,但没有发现哪一个更好,优点和缺点 .
我知道我们有3种类型的Couchbase客户端,一种是vBucket-aware,一种是传统的旧客户端,它支持通过Moxi-Server进行自动集群 .
已经使用过couchbase的人可以为我提供有关这两个Java客户端的链接或详细信息 .
我在CouchbaseClient和CouchbaseCluster上做了一些功课,比如通过两者插入,更新,删除文档 . 在CouchbaseClient中,存储的文档是序列化的,您无法通过Couchbase管理控制台查看和编辑这些文档,而如果通过Couchbase群集存储的文档如StringDocument,JsonDocument,JsonArrayDocument可以通过Couchbase管理控制台查看和编辑 .
我的要求是我想使用一个自动控制(vBucket感知)的couchbase客户端,就像我向集群添加新节点一样,它会自动检测它,或者如果任何节点失败,它会自动检测它并且不会抛出任何节点例外 . 此外,如果我添加新群集,我希望它能自动检测并开始使用它 . 我不想修改所有这些东西的应用程序代码 .
1 回答
现在有两代官方Couchbase Java SDK:
第1代(目前
1.4.x
,不确定修补程序版本)是从旧的Memcached客户端派生的,Spymemcached
...它现在只是错误修正,而且它是CouchbaseClient
作为主API的那个 .第2代是重写,在Maven中分层为
core
工件和java-client
工件 . 当前版本为2.1.3
. 这是你处理CouchbaseCluster
的那个 .在旧版本中,您必须为您处理的每个存储桶实例化一个
CouchbaseClient
.在新一代中,集群和存储桶的概念是一等公民,您可以(并且应该)重用相同的
Cluster
实例来打开对不同Bucket
的引用 .Bucket
也应该重复使用(不要多次打开同一个桶) . 资源以这种方式更好地共享 .此外,新一代具有更一致的API,使用
RxJava
进行异步处理等...它具有群集感知功能,可以获得群集拓扑的更新(新节点,故障节点等) .请注意,这两代在Maven中是不同的工件(旧的是
couchbase-client
,而新的是java-client
) .如果您“添加新群集”,则无法获得此类通知,但该操作对我来说并不合理......