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

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


linux:nats

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


NATS

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

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

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
  ]
}

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

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

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

:!: Пример конфигурации
  # 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.1665655766.txt.gz · Последнее изменение: 2022/10/13 10:09 — admin