Как модель Elasticseach переводится в эти шаблоны высокой доступности? - PullRequest
0 голосов
/ 03 ноября 2019

Я изучал модель доступности Elasticsearch, где вы создаете кластер с мастер-узлами и узлами данных [1], где мастер-узлы управляют кластером, а узлы данных содержат данные. Вы также можете установить для каждого индекса количество сегментов и реплик, которые распределяются через эти узлы данных.

Я также видел [2], что шаблоны высокой доступности обычно представляют собой некоторую модель аварийного переключения (Active-пассивный или Active-Active) и / или Репликация (Master-Slave или Master-Master). Но я не мог совместить эту информацию вместе. Как я могу классифицировать эту модель по этим шаблонам?

Есть также [3] другие базы данных NoSQL, такие как MongoDB, имеющие аналогичную модель высокой доступности и развертываемые как кластер с использованием StatefulSets в Kubernetes. Я хочу понять, как это работает. Есть намеки на это?

Ссылки:

[1] https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html

[2] https://www.slideshare.net/jboner/scalability-availability-stability-patterns/33-What_do_we_mean_withAvailability

[3] https://kubernetes.io/blog/2017/01/running-mongodb-on-kubernetes-with-statefulsets/

1 Ответ

1 голос
/ 03 ноября 2019

StatefulSet в Kubernetes

В распределенной системе гораздо проще обрабатывать без сохранения состояния рабочую нагрузку, поскольку она не содержит состояния и тривиально реплицироватьСервис для любого количества реплик. В Kubernetes статические рабочие нагрузки управляются ReplicaSet (развернутым из развертывания).

Большинству служб требуется какое-то состояние. StatefulSet управляет stateful рабочей нагрузкой в ​​Kubernetes и отличается от ReplicaSet тем, что модули, управляемые StatefulSet, имеют уникальную идентификацию, состоящую из порядкового номера, стабильного сетевого идентификатора и стабильного хранилища. ,

Аварийное переключение и репликация

Я также видел, что шаблоны высокой доступности обычно являются некоторой моделью переключения при отказе (Active-Passive или Active-Active) и? / или Репликация (мастер-раб или мастер-мастер). Но я не мог совместить эту информацию вместе. Как я могу классифицировать эту модель по этим шаблонам?

Это довольно устаревшие шаблоны. Теперь Консенсус algorthims является нормой для High-Availability и Fail-over , поскольку обе эти проблемы касаются репликации и лидер-выборы . Raft (2013) - один из самых популярных алгоритмов консенсуса, и я могу порекомендовать книгу Проектирование приложений с интенсивным использованием данных , если вы хотите узнать больше о проблемах с High-Доступность , Аварийное переключение , Репликация и Консенсус .

Elasticsearch, кажется, использует алгоритм консенсуса дляего кластеризация. Любой из мастер-разрешенных узлов может быть выбран как master , и рекомендуется иметь как минимум три из них (для высокой доступности)

Роль узлов

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

Узлы могут иметь несколько ролей в кластере Elasticsearch. Когда у вас небольшой кластер, ваши узлы могут иметь несколько ролей, например, master-elitable и data , но по мере роста вашего кластера до большего количества узлов рекомендуется иметь выделенные узлы дляроли.

...