首页 文章

CouchbaseClient VS CouchbaseCluster - Java

提问于
浏览
0

我是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 回答

  • 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 ) .

    如果您“添加新群集”,则无法获得此类通知,但该操作对我来说并不合理......

相关问题