Инструменты пользователя

Инструменты сайта


linux:nats

Это старая версия документа!


NATS

Общие сведения

Брокер сообщений. Состоит сервера, клиентской библиотеки и есть еще коннектор
Для подключения нового узла в кластер, достаточно ему указать адрес любого другого узла этого кластера, он получит всю топологию и определит живые/мертвые узлы.
Сообщения группируются по темам и каждый узел знает какие узлы имеют живых подписчиков и на какие темы.
Все сообщения в кластере доставляются напрямую от отправителя получателю, без промежуточных шагов. Nats не записывает сообщения на диск
Клиенты знают всю топологию кластера, поэтому способны сами переподключаться при потери связи

NATS & NATS Streaming
NATS реализует базовую модель «публикации/подписки» в то время как Streaming предоставляет более расширенные варианты. Потоковая передача по прежнему взаимодействует через клиента, работает по такой же форме (?)

Авторизация поддерживается как по логину/паролю так и по токену. Есть настройка разрешений подписки/публикации

Для настройки кластера нужно добавить параметры в файл конфигурации каждого хоста, к каждому можно настроить метод аутентификации

:!: Образец конфигурации
cluster {
  host: '0.0.0.0'
  port: 7248
 
  routes = [
    nats-route://192.168.59.103:7244
    nats-route://192.168.59.103:7246
  ]
}

При активном соединении работает «Ping/Pong», параметризовано вроде
Размер сообщения ограничен 1M

Мониторинг Для мониторинга предусмотрен аргумент запуска «-m your_port», очень простая, для более расширенного варианта есть утилита «nats-top»

Конфигурация

Работает на порту «4222«

Базовый функционал
Обеспечивает высокую эффективность (но согласованность не гарантируется)
Полезно для данных не критичных к своевременности и согласованности

:!: Пример конфигурации
  # Client port
port: 4222
 
  # HTTP monitoring port
monitor_port: 4223
 
  # Пользователь
authorization {
  users = [
         {пользователь: << имя пользователя1>>, пароль: << пароль1>>}
  ]
  timeout:  1
}
 
  # This is for clustering multiple servers together.
cluster {
     # Интерфейс кластера
  port: 4224
 
     # Аутентификация кластерной ссылки
  authorization {
         пользователь: << имя пользователя2>>
         пароль: << пароль2>>
    timeout: 0.75
  }
 
     # Информация о кластере
  routes = [
    nats-route:// << имя пользователя 2 >>: << пароль 2 >> @ nats-1: 4224
    nats-route:// << имя пользователя 2 >>: << пароль 2 >> @ nats-2: 4224
  ]
}

Потоковая передача
Обеспечивает гарантию согласованности. Методы типа ACK и «гарантия минимум одного прохода» помогают в этом
Вроде как можно развернуть на основе обычного кластера, из примера выше
Исполняемый файл уже содержит в себе данный функционал, для запуска используется аргумент »-js»

:!: Потоковая передача

  # NATS Streaming specific configuration
streaming {
  id: stan-cluster
  store: file
  dir: store
  nats_server_url: «<< адрес кластера NATS >>»
  # Необходимо только указать имя кластера и имя узла для достижения пользовательского обнаружения
  cluster {
    node_id: "stan-1"
    peers: ["stan-2", "stan-3"]
  }
}

Установка

Windows

Все предельно просто, есть несколько вариантов: какой то менеджер пакетов «choco», интерпретатор go, и скачать дистрибутив
В последнем случае скачиваем, утилитой «sc» назначаем службой, параметры запуска/конфиги это уже все здесь и опционально
Используя флаги можно запускать на одном хосте несколько экземпляров, после запуска службой можно управлять аргументом «–signal»

sc.exe create nats-server binPath= "%NATS_PATH%\nats-server.exe [nats-server flags]"
sc.exe start nats-server
 
  # REM Reload server configuration
nats-server.exe --signal reload
 
  # REM Stop the server
nats-server.exe --signal stop
 
nats-server.exe --signal stop=<service name>
 
 
 
linux/nats.1665655425.txt.gz · Последнее изменение: 2022/10/13 10:03 — admin