Кластерное построение серии Microservice Consul

Микросервисы

объяснялось в предыдущемУстановка Consul, развертывание, основныеИспользование , чтобы у всех было общее понимание, этот раздел начинает фокусироваться на построении кластеров Consul.Практичный, официально рекомендуется от 3 до 5 серверов, потому что во время обработки исключений, если лидер зависает, пока более половины серверов все еще активны, consul переизберет нового лидера, чтобы гарантировать нормальную работу кластера.

Рекомендуемый технический блог: Стек технологий Node.js

Готов к работе

Для тестирования рекомендуется построить несколько виртуальных машин локально для отладки.Виртуальных машин здесь 3 режима сервера, 1 режим клиента, всего следующие 4:

  • 192.168.6.128 Режим сервера (изначально установлено значение Лидер)

  • 192.168.6.129 Режим сервера

  • 192.168.6.130 Режим сервера

  • 192.168.6.131 Режим клиента

Загрузите Consul соответствующей версии платформы и распакуйте копию в/usr/local/bin/(переменные системной среды), здесь в качестве примера используется версия 1.4.0, см. конкретную установкуЧасть 1-консул скачать и руководство по установке.

Создайте/usr/src/consulКаталог для хранения файла начальной конфигурации Consulconsul_config.json:

{
    "datacenter": "consul_cluster",
    "node_name": "consul_1",
    "server": true,
    "bootstrap_expect": 3,
    "data_dir": "/usr/src/consul/data",
    "log_level": "DEBUG",
    "enable_syslog": true,
    "enable_script_checks": true,
    "bind_addr": "192.168.6.128",
    "client_addr": "192.168.6.128",
}
  • node_name: имя узла, эквивалентное -node
  • data_dir: каталог хранения данных
  • enable_syslog: включена ли запись журналов консула в каталог syslog системы.
  • enable_script_checks: следует ли включать сценарии обнаружения мониторинга.
  • bind_addr: эквивалентно -bind
  • client_addr: эквивалентно -client

Развертывание на стороне сервера

  • Разверните первый 192.168.6.128

Примечание. Добавьте -ui при запуске первого, он инициализируется только один раз, и та же операция выполняется на двух других узлах, ноnode_name,bind_addr,client_addrДля внесения изменений каждая машина остается уникальной.

$ sudo consul agent -ui -config-file=/usr/src/consul/consul_config.json

-config-file:Загрузить файл конфигурации запуска

  • Развертывание второго 192.168.6.129

Исправлять/usr/src/consul/consul_config.json:

{
    "datacenter": "consul_cluster",
    "node_name": "consul_2",
    "server": true,
    "bootstrap_expect": 3,
    "data_dir": "/usr/src/consul/data",
    "log_level": "DEBUG",
    "enable_syslog": true,
    "enable_script_checks": true,
    "bind_addr": "192.168.6.129",
    "client_addr": "192.168.6.129",
}

выполнить команду запустить команду

$ sudo consul agent -config-file=/usr/src/consul/consul_config.json
  • Развернуть третий 192.168.6.130

Исправлять/usr/src/consul/consul_config.json:

{
    "datacenter": "consul_cluster",
    "node_name": "consul_3",
    "server": true,
    "bootstrap_expect": 3,
    "data_dir": "/usr/src/consul/data",
    "log_level": "DEBUG",
    "enable_syslog": true,
    "enable_script_checks": true,
    "bind_addr": "192.168.6.130",
    "client_addr": "192.168.6.130"
}

выполнить команду запустить команду

$ sudo consul agent -config-file=/usr/src/consul/consul_config.json

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

Примечание: прямое использованиеconsul membersСообщит об ошибке, нужно привязать ip адрес

$ consul members --http-addr 192.168.6.128:8500
Node      Address             Status  Type    Build  Protocol  DC              Segment
consul_1  192.168.6.128:8301  alive   server  1.4.0  2         consul_cluster  <all>

Создание кластера на стороне сервера

После каждого Consul Agent он относительно независим и не знает о существовании других узлов Теперь нам нужно присоединиться к кластеру и добавить созданные выше consul_2 и consul_3 в тот же кластер consul_1.

  • В consul_1 добавлен второй 192.168.6.129
$ consul join --http-addr 192.168.6.129:8500 192.168.6.128
Successfully joined cluster by contacting 1 nodes. # 成功返回的消息
  • В consul_1 добавлен третий 192.168.6.130
$ consul join --http-addr 192.168.6.130:8500 192.168.6.128

На данный момент серверный кластер создан, вы можете увидеть наших текущих членов кластера:

consul members --http-addr 192.168.6.128:8500
Node      Address             Status  Type    Build  Protocol  DC              Segment
consul_1  192.168.6.128:8301  alive   server  1.4.0  2         consul_cluster  <all>
consul_2  192.168.6.129:8301  alive   server  1.4.0  2         consul_cluster  <all>
consul_3  192.168.6.130:8301  alive   server  1.4.0  2         consul_cluster  <all>
  • Просмотр лидеров кластера через HTTP API
$ curl 192.168.6.128:8500/v1/status/leader

"192.168.6.128:8300"
  • Просмотр членов кластера через HTTP API
$ curl 192.168.6.128:8500/v1/status/peers 

["192.168.6.129:8300","192.168.6.130:8300","192.168.6.128:8300"]

Развертывание клиента

Теперь приступаем к развертыванию клиента, способ отличается от сервера

Исправлять/usr/src/consul/consul_config.json:

{
    "datacenter": "consul_cluster",
    "node_name": "consul_4",
    //"server": true, 不指定为服务端,默认走客户端
    // "bootstrap_expect": 3, 只在server模式有效
    "data_dir": "/usr/src/consul/data",
    "log_level": "DEBUG",
    "enable_syslog": true,
    "enable_script_checks": true,
    "bind_addr": "192.168.6.131",
    "client_addr": "192.168.6.131"
}

Выполните команду запуска:

Вы также можете присоединиться к уже запущенному кластеру с параметром -join

$ sudo consul agent -config-file=/usr/src/consul/consul_config.json -join=192.168.6.128

При просмотре текущих членов кластера вы можете увидеть, что существует 3 режима сервера и 1 режим клиента.

$ consul members --http-addr 192.168.6.128:8500
Node      Address             Status  Type    Build  Protocol  DC              Segment
consul_1  192.168.6.128:8301  alive   server  1.4.0  2         consul_cluster  <all>
consul_2  192.168.6.129:8301  alive   server  1.4.0  2         consul_cluster  <all>
consul_3  192.168.6.130:8301  alive   server  1.4.0  2         consul_cluster  <all>
consul_4  192.168.6.131:8301  alive   client  1.4.0  2         consul_cluster  <default>

Посмотреть в инструментах администратора

При развертывании первой машины 192.168.6.128 за агентом consul следует параметр -ui, который используется для запуска интерфейса WebUI, который представляет собой интерфейс веб-визуализации, предоставляемый самим Consul, и ввод браузера.http://192.168.6.128:8500посетить

图片描述

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

Автор: май июнь
Связь:Вухуу. ИМО OC.com/article/284…
Источник: МООК
Github: Стек технологий Node.js