2015-07-01 1 views
0

Я новичок в couchbase, и я пытаюсь реализовать couchbase в своем приложении.CouchbaseClient VS CouchbaseCluster - Java

Я путать с

com.couchbase.client.CouchbaseClient

И

com.couchbase.client.java.CouchbaseCluster.

Я пытался использовать Google CouchbaseClient против CouchbaseCluster, но не нашел, какой из них лучше & Плюсы и минусы.

Я знаю, что у нас есть 3 типа клиентов Couchbase, один из которых является vBucket, один из них традиционный старый клиент, который поддерживает автоматическую кластеризацию через Moxi-Server.

Может кто-нибудь, кто уже использовал couchbase, предоставит мне ссылку или подробную информацию об этих двух Java-клиентах.

Я сделал домашнюю работу на CouchbaseClient и CouchbaseCluster, как вставка, обновление, удаление документов через оба. В CouchbaseClient хранящиеся документы являются Serialized, и вы не можете просматривать и редактировать эти документы через консоль администратора Couchbase, тогда как если документы, такие как StringDocument, JsonDocument, JsonArrayDocument, хранящиеся в кластере Couchbase, могут быть просмотрены и доступны для редактирования через консоль администратора Couchbase.

Мои требования: Я хочу использовать клиент couchbase, который является AutoConfiurable (vBucket-aware), как если бы я добавлял новые узлы в кластер, он автоматически обнаружит его или если какой-либо узел не удастся, он автоматически обнаружит его и не вызывает никаких исключений. Кроме того, если я добавлю новый кластер, я бы хотел его автоматически обнаружить и начать использовать. Я не хочу изменять код приложения для всех этих вещей.

ответ

1

Существует уже два поколения официального Couchbase Java SDKs:

  • поколение 1 (в настоящее время 1.4.x, не уверена в версии патча) происходят от старого Memcached клиента, Spymemcached ... это теперь исправлена ​​ошибки только, и это тот, где у вас есть CouchbaseClient в качестве основного API.
  • поколение 2 - это переписывание, нанесенное на артефакт core и артефакт java-client в Maven. Текущая версия: 2.1.3. Это тот, где вы имеете дело с CouchbaseCluster.

В старой версии вам необходимо создать экземпляр CouchbaseClient для каждого ведра, с которым вы имеете дело.

В новом поколении понятия кластера и ведра являются гражданами первого сорта, и вы можете (и должны) повторно использовать один и тот же экземпляр Cluster, чтобы открыть ссылки на разные Bucket. Необходимо также повторно использовать Bucket s (не открывайте одно и то же ведро несколько раз). Таким образом, ресурсы лучше согласованы.

Кроме того, новое поколение обладает более согласованными API-интерфейсами, использует RxJava для асинхронной обработки и т. Д. Оно обладает поддержкой кластеров и будет получать обновления топологии кластера (новые узлы, сбои узлов и т. Д.).).

Обратите внимание, что эти два поколения являются отличительными артефактами в Maven (старый - couchbase-client, а новый - java-client).

Там нет никакого способа, вы можете получить такое уведомление, если вы «добавить новый кластер», но эта операция не имеет смысла для меня ...

+0

Спасибо Simon, Да, я читал об этих двух различных версиях или поколений SDK Couchbase Java. Да, оба они имеют свои преимущества. Предположим, что если вы хотите сохранить простой POJO на couchbase, вы должны пойти с клиентом Couchbase, поскольку он непосредственно хранит ваш объект в сериализованной форме и предоставит вам десериализованную форму, где, как и в CouchbaseCluster, вам нужно сопоставить POJO с документами, а затем хранить его и наоборот. Но, как вы сказали, кластер нового поколения и ведро являются гражданами первого класса, и это дает вам больше контроля и власти над работой с кластерами и ведром. – user2531799

 Смежные вопросы

  • Нет связанных вопросов^_^