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
的引用秒。 Bucket
s 也应该重复使用(不要多次打开同一个桶)。这样可以更好地共享资源。
此外,新一代具有更连贯的 APIs,使用 RxJava
进行异步处理等......它是集群感知的,并将获得集群拓扑的更新(新节点、故障节点等...)。
请注意,这两代是 Maven 中的不同工件(旧的是 couchbase-client
,而新的是 java-client
)。
如果你"add new cluster",你不可能得到这样的通知,但那个操作对我来说真的没有意义......
我正在尝试在我的应用程序中实现 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
的引用秒。 Bucket
s 也应该重复使用(不要多次打开同一个桶)。这样可以更好地共享资源。
此外,新一代具有更连贯的 APIs,使用 RxJava
进行异步处理等......它是集群感知的,并将获得集群拓扑的更新(新节点、故障节点等...)。
请注意,这两代是 Maven 中的不同工件(旧的是 couchbase-client
,而新的是 java-client
)。
如果你"add new cluster",你不可能得到这样的通知,但那个操作对我来说真的没有意义......