CouchbaseClient VS CouchbaseCluster

CouchbaseClient VS CouchbaseCluster

我正在尝试在我的应用程序中实现 couchbase。

我对

感到困惑

com.couchbase.client.CouchbaseClient

com.couchbase.client.java.CouchbaseCluster.

我尝试 google CouchbaseClient 与 CouchbaseCluster,但没有发现哪个更好以及优缺点。

我知道我们有 3 种类型的 Couchbase 客户端,一种是 vBucket-aware,一种是传统的旧客户端,支持通过 Moxi-Server 自动集群。

有没有用过couchbase的朋友可以给我一些link或者这两个Java-Client的详细信息。

我在 CouchbaseClient 和 CouchbaseCluster 上做了一些功课,比如通过两者插入、更新、删除文档。 在 CouchbaseClient 中,存储的文档是序列化的,您无法通过 Couchbase 管理控制台查看和编辑这些文档,而如果通过 Couchbase 集群存储的 StringDocument、JsonDocument、JsonArrayDocument 等文档可以通过 Couchbase 管理控制台查看和编辑。

我的要求是我想使用可自动配置(vBucket 感知)的 couchbase 客户端,就像我将新节点添加到集群时,它会自动检测它,或者如果任何节点失败,它会自动检测它并且不会抛出任何异常。此外,如果我添加新集群,我希望它能够自动检测并开始使用它。我不想为所有这些修改应用程序代码。

现在有两代官方Couchbase Java SDKs:

  • 第 1 代(目前 1.4.x,不确定补丁版本)源自一个旧的 Memcached 客户端,Spymemcached...它现在只是错误修复,它是你的那个有 CouchbaseClient 作为主要 API.
  • 第 2 代是重写,在 Maven 中分层为 core 工件和 java-client 工件。当前版本为 2.1.3。这是您处理 CouchbaseCluster.
  • 的地方

在旧版本中,您必须为处理的每个桶实例化一个 CouchbaseClient

在新一代中,集群和桶的概念首先是 class 公民,您可以(并且应该)重用相同的 Cluster 实例以打开对不同 Bucket 的引用秒。 Buckets 也应该重复使用(不要多次打开同一个桶)。这样可以更好地共享资源。

此外,新一代具有更连贯的 APIs,使用 RxJava 进行异步处理等......它是集群感知的,并将获得集群拓扑的更新(新节点、故障节点等...)。

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

如果你"add new cluster",你不可能得到这样的通知,但那个操作对我来说真的没有意义......