CouchbaseClient VS CouchbaseCluster - Java

时间:2015-07-01 12:12:05

标签: java couchdb couchbase membase

我是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客户端,就像我向群集中添加新节点一样,它会自动检测到它,或者如果任何节点失败,它会自动检测到它并执行不要抛出任何异常。此外,如果我添加新群集,我希望它能自动检测并开始使用它。我不想修改所有这些东西的应用程序代码。

1 个答案:

答案 0 :(得分: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 s也应该重复使用(不要多次打开同一个桶)。资源以这种方式更好地共享。

此外,新一代具有更一致的API,使用RxJava进行异步处理等...它具有群集感知功能,可以获得群集拓扑的更新(新节点,故障节点等) ...)。

请注意,这两代是Maven中的不同工件(旧版本为couchbase-client,而新版本为java-client)。

如果您要添加新的群组",那么您无法获得此类通知,但该操作对我来说并不合理......