我是couchbase的新手,我正在尝试在我的应用程序中实现couchbase。
我对
感到困惑 com.couchbase.client.CouchbaseClient
AND
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客户端,就像我向群集中添加新节点一样,它会自动检测到它,或者如果任何节点失败,它会自动检测到它并执行不要抛出任何异常。此外,如果我添加新群集,我希望它能自动检测并开始使用它。我不想修改所有这些东西的应用程序代码。
答案 0 :(得分:1)
现在有两代官方Couchbase Java SDK:
1.4.x
,不确定修补程序版本)是从旧的Memcached客户端派生的,Spymemcached
...它现在只是错误修正,而且它是一个你有CouchbaseClient
作为主要API的地方。core
工件和java-client
工件。当前版本为2.1.3
。这是您处理CouchbaseCluster
。在旧版本中,您必须为您处理的每个存储桶实例化一个CouchbaseClient
。
在新一代中,集群和存储桶的概念是一等公民,您可以(并且应该)重用相同的Cluster
实例来打开对不同Bucket
的引用。 Bucket
s也应该重复使用(不要多次打开同一个桶)。资源以这种方式更好地共享。
此外,新一代具有更一致的API,使用RxJava
进行异步处理等...它具有群集感知功能,可以获得群集拓扑的更新(新节点,故障节点等) ...)。
请注意,这两代是Maven中的不同工件(旧版本为couchbase-client
,而新版本为java-client
)。
如果您要添加新的群组",那么您无法获得此类通知,但该操作对我来说并不合理......