Учебники

Консул — Введение

Consul — это инструмент на основе Hashicorp для поиска и настройки различных сервисов в вашей инфраструктуре. Он основан и построен на Голанге. Одной из основных причин создания Consul была поддержка сервисов, присутствующих в распределенных системах. Некоторые важные функции, которые предоставляет Консул, заключаются в следующем.

  • Обнаружение служб — используя DNS или HTTP, приложения могут легко найти службы, от которых зависят.

  • Состояние проверки работоспособности — может предоставить любое количество проверок работоспособности. Он используется компонентами обнаружения служб для маршрутизации трафика от нездоровых хостов.

  • Хранилище ключей / значений — может использовать иерархическое хранилище ключей / значений Consul для любого числа целей, включая динамическую настройку, маркировку функций, координацию, выбор лидера и т. Д.

  • Развертывание нескольких центров обработки данных — Консул поддерживает несколько центров обработки данных. Он используется для создания дополнительных слоев абстракции для расширения до нескольких регионов.

  • Веб-интерфейс — Консул предоставляет своим пользователям прекрасный веб-интерфейс, с помощью которого можно легко использовать и управлять всеми функциями в консуле.

Обнаружение служб — используя DNS или HTTP, приложения могут легко найти службы, от которых зависят.

Состояние проверки работоспособности — может предоставить любое количество проверок работоспособности. Он используется компонентами обнаружения служб для маршрутизации трафика от нездоровых хостов.

Хранилище ключей / значений — может использовать иерархическое хранилище ключей / значений Consul для любого числа целей, включая динамическую настройку, маркировку функций, координацию, выбор лидера и т. Д.

Развертывание нескольких центров обработки данных — Консул поддерживает несколько центров обработки данных. Он используется для создания дополнительных слоев абстракции для расширения до нескольких регионов.

Веб-интерфейс — Консул предоставляет своим пользователям прекрасный веб-интерфейс, с помощью которого можно легко использовать и управлять всеми функциями в консуле.

Сервис Discovery

Обнаружение услуг — одна из важнейших функций Консула. Он определяется как обнаружение различных служб и сетевых протоколов, с помощью которых обнаруживается услуга. Использование службы обнаружения является благом для распределенных систем. Это одна из основных проблем, с которыми сталкиваются современные крупные отрасли промышленности с развитием распределенных систем в своей среде.

Сравнение с Etcd и Zookeeper

Когда мы рассмотрим другие инструменты обнаружения служб в этой области, у нас есть два популярных варианта. Некоторые крупные игроки в индустрии программного обеспечения использовали его в прошлом. Это инструменты Etcd и Zookeeper .

Давайте рассмотрим следующую таблицу для сравнения различных аспектов каждого инструмента. Мы также поймем, что каждый из них использует внутри.

свойства консул Etcd Работник зоопарка
Пользовательский интерфейс Имеется в наличии
RPC Имеется в наличии Имеется в наличии
Проверка здоровья HTTP API HTTP API TCP
Значение ключа 3 режима согласованности Хорошая последовательность Сильная последовательность
Система токенов Имеется в наличии
язык Golang Golang Джава

Консул — Члены и Агенты

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

Консул агент является основным процессом Консул. Агент хранит информацию о членстве, регистрирует службы, запускает проверки, отвечает на запросы и т. Д. Любой агент может работать в одном из двух режимов: клиент или сервер . Эти два режима могут использоваться в соответствии с их ролью, определенной при использовании консула. Консул помогает, предоставляя нам информацию, которая указана ниже.

  • Имя узла — это имя хоста машины.

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

  • Сервер — указывает, работает ли агент в режиме сервера или клиента. Узлы сервера участвуют в согласованном кворуме, сохраняя состояние кластера и обрабатывая запросы.

  • Client Addr — это адрес, используемый агентом для клиентских интерфейсов. Он включает в себя порты для интерфейсов HTTP, DNS и RPC.

  • Cluster Addr — это адрес и набор портов, используемых для связи между агентами Consul в кластере. Этот адрес должен быть доступен всем остальным узлам.

Имя узла — это имя хоста машины.

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

Сервер — указывает, работает ли агент в режиме сервера или клиента. Узлы сервера участвуют в согласованном кворуме, сохраняя состояние кластера и обрабатывая запросы.

Client Addr — это адрес, используемый агентом для клиентских интерфейсов. Он включает в себя порты для интерфейсов HTTP, DNS и RPC.

Cluster Addr — это адрес и набор портов, используемых для связи между агентами Consul в кластере. Этот адрес должен быть доступен всем остальным узлам.

В следующей главе мы разберем архитектуру Консула.