Я ознакомился с документацией последней версии (выпущенной 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) я должен выбрать для своей реализации и почему?
Я хотел бы увидеть хорошее объяснение, так как я не смог найти прямого сравнения этих двух реализаций.
Заранее спасибо!
client
или язык клиента на самом деле не имеет значения. Если у него есть хороший API, написание клиента — вопрос времени. Что меня беспокоит, так этоpros
иcons
каждой реализации по сравнению с другой. - person Imesha Sudasingha   schedule 05.10.2016