Подробное сравнение куратора apache и etcd3

Я ознакомился с документацией последней версии (выпущенной 30 июня 2016 г.) etcd3, который имеет много улучшений по сравнению с etcd2. Это включает,

  • мультиплексированные потоковые часы через одно TCP-соединение
  • добавочные моментальные снимки, чтобы избежать снижения производительности при создании моментальных снимков.
  • вызовы grpc для повышения производительности клиента
  • аренда мультиплексированной потоковой передачи для уменьшения использования сети.

Когда дело доходит до куратора Apache, написанного поверх apache zookeeper, его преимущества заключаются в том, что он является надежным, зрелым проектом, и многие активные клиенты используют его в производственной среде.

Zookeeper использует отдельное соединение tcp для каждого наблюдения и использует отдельное соединение tcp для каждой аренды. Кроме того, служба наблюдения zookeeper уведомляет только об одном событии на запрос наблюдения, и нам нужно поместить еще один запрос наблюдения, если мы хотим постоянно наблюдать за определенным узлом. Поскольку etcd3 использует потоки с мультиплексированием, он не перегружает сеть излишними TCP-соединениями.

Кроме того, etcd3 и zookeeper используют два разных алгоритма консенсуса, ZAB и raft, где raft менее сложен.

Я хочу реализовать distributed locks, (use) watches and need to write a mechanism to share commands throughout the cluster using the watch api. Эта реализация будет подключена к ESB, написанному на java.

Теперь у меня вопрос: какой из них (curator/etcd3) я должен выбрать для своей реализации и почему?

Я хотел бы увидеть хорошее объяснение, так как я не смог найти прямого сравнения этих двух реализаций.

Заранее спасибо!


person Imesha Sudasingha    schedule 04.10.2016    source источник
comment
Простой уточняющий вопрос: на каком языке будет работать ваш клиент. Я не верю, что пока есть хороший Java-клиент для etcd или consul. И наоборот, я не думаю, что есть хороший клиент Go для ZooKeeper.   -  person Randgalt    schedule 04.10.2016
comment
Нет, client или язык клиента на самом деле не имеет значения. Если у него есть хороший API, написание клиента — вопрос времени. Что меня беспокоит, так это pros и cons каждой реализации по сравнению с другой.   -  person Imesha Sudasingha    schedule 05.10.2016
comment
Если у него хороший API — большое если. Даже с хорошим API обычно существуют идиомы/рецепты и т. д., которые могут усложнить или упростить написание успешных приложений. Подумайте о базе данных без хорошего драйвера.   -  person Randgalt    schedule 06.10.2016


Ответы (1)


Так как я не смог найти хороший ответ, я поискал по обеим схемам и написал Apache Zookeeper против etcd3. Надеюсь, это поможет другим, у кого также есть мой вопрос.

person Imesha Sudasingha    schedule 12.07.2017