2015-07-01 41 views
0

我是新來的couchbase,我試圖在我的應用程序中實現couchbase。CouchbaseClient VS CouchbaseCluster - Java

我很困惑與

com.couchbase.client.CouchbaseClient

com.couchbase.client.java.CouchbaseCluster

我試圖谷歌CouchbaseClient與CouchbaseCluster,但沒有發現哪一個更好&優點和缺點。

我知道我們有3種類型的Couchbase客戶端,一種是vBucket感知的,一種是傳統的老客戶端,它支持通過Moxi-Server進行自動集羣。

已經使用過couchbase的人可以給我提供關於這兩個Java-Client的一些鏈接或詳細信息。

我已經在CouchbaseClient和CouchbaseCluster上做了一些功課,例如通過兩者插入,更新和刪除文檔。 在CouchbaseClient中存儲的文檔是序列化的,並且您無法通過Couchbase管理控制檯查看和編輯這些文檔,而如果像通過Couchbase集羣存儲的StringDocument,JsonDocument,JsonArrayDocument這樣的文檔可以通過Couchbase管理控制檯查看並編輯。

我的要求是我想使用一個AutoConfiurable(vBucket感知)的couchbase客戶端,就像我向羣集添加新節點,它會自動檢測它,或者如果有任何節點失敗,它會自動檢測它並且不會拋出任何異常。此外,如果我添加新羣集,我希望它自動檢測並開始使用它。我不想修改所有這些東西的應用程序代碼。

回答

1

現在有官方的Java Couchbase的軟件開發工具包兩代

  • 1代(目前1.4.x,不知道的補丁版本)是從舊的Memcached客戶端,Spymemcached衍生...現在是錯誤修正只有,並且它是您將CouchbaseClient作爲主要API的那個。
  • 第2代是一個重寫,在Maven中分爲core工件和java-client工件。當前版本是2.1.3。這是你處理CouchbaseCluster的地方。

在舊版本中,您必須爲您處理的每個存儲桶實例化一個CouchbaseClient

在新一代中,集羣和存儲桶的概念是一等公民,您可以(也應該)重複使用相同的Cluster實例來打開對不同Bucket s的引用。 Bucket也應該重用(不要多次打開同一個存儲桶)。這種方式使資源更好地互相配合。

此外,新一代具有更一致的API,使用RxJava進行異步處理等等。它具有羣集感知能力並將獲取羣集拓撲(新節點,失敗節點等)的更新。 )。

請注意,這兩代是Maven中的不同文物(舊版本是couchbase-client,而新版本是java-client)。

有沒有辦法,你可以得到這樣的通知,如果你「添加新集羣」,但操作並沒有真正意義的我...

+0

感謝西蒙,是的,我瞭解這兩種不同的版本,或幾代Couchbase Java的SDK。 是的,他們都有自己的優勢。因此,假設你想保存一個簡單的POJO到couchbase,你應該使用Couchbase客戶端,因爲它直接以序列化的形式存儲你的對象,並且會以非破壞的形式給你,在CouchbaseCluster中你必須將你的POJO映射到文檔,然後存儲它,反之亦然。但正如你所說,新一代集羣和存儲桶是一流的公民,它給你更多的控制力和處理集羣和存儲桶的能力。 – user2531799