Использование протокола сплетен в управлении кластером Erlang

Я новичок в Erlang, а также распределенные вычисления. Мы небольшая команда, которая пытается создать небольшой сервер обмена сообщениями. Одна из вещей, которые мы рассматриваем, как мы управляем состоянием кластера - мы столкнулись с несколькими индивидуальными реализациями в проектах с открытым исходным кодом Erlang, такими как Riak, rabbitMq, ejabbered и Vernemq.

Похоже, что сообщество Erlang переходит на использование протокола сплетен для управления кластером - я вижу следующую публикацию на RabbitMQ ( https://groups.google.com/forum/$20protocol/rabbitmq-users/jvQQy30kLTI/hIDFw94SddQJ

Мой вопрос - есть ли другой способ управления кластером, кроме протокола сплетен? а также какова реализация erlang с открытым исходным кодом протокола сплетни. Какие соображения нужно учитывать при рассмотрении управления узлами Erlang?

Спасибо за вашу помощь.

1 ответ

Я не эксперт по распределенным вычислениям, поэтому мой ответ может быть сомнительным, но в любом случае. Все зависит от того, каково состояние вашего кластера и какие у вас требования.

Если вам нужно гарантировать непротиворечивость состояния между каждым участником кластера, вы получите какой-то механизм распределенного консенсуса, такой как zk, paxos или raft.

Если вам нужна высокая доступность, вам понадобится протокол на основе сплетен и ваше приложение будет осведомлено о возможной несогласованности данных (как это делает Riak с типами данных CRDT и векторными часами).

Если вы не знаете, что вам нужно, я бы выбрал первый вариант, так как он очень прост с точки зрения разработчика. И пошел бы на второй вариант, если бы я четко понял, что 1-й вариант больше не является вариантом;)

Другие вопросы по тегам