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

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


linux:nats

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
linux:nats [2022/10/13 10:00]
admin
linux:nats [2024/07/09 09:45] (текущий)
admin
Строка 9: Строка 9:
 Все сообщения в кластере **доставляются напрямую** от отправителя получателю, без промежуточных шагов. Nats не записывает сообщения на диск\\ Все сообщения в кластере **доставляются напрямую** от отправителя получателю, без промежуточных шагов. Nats не записывает сообщения на диск\\
 Клиенты знают **всю топологию кластера**, поэтому способны сами переподключаться при потери связи\\ Клиенты знают **всю топологию кластера**, поэтому способны сами переподключаться при потери связи\\
 +Работает на порту "**4222**"\\
  
  
 **NATS & NATS Streaming**\\ **NATS & NATS Streaming**\\
-NATS реализует **базовую модель** "публикации/подписки" в то время как **Streaming** предоставляет более **расширенные варианты**. Потоковая передача по прежнему взаимодействует через клиента, работает по такой же форме (?)\\+NATS реализует **базовую модель** "публикации/подписки" в то время как **Streaming** предоставляет более **расширенные варианты**.\\ 
 +**NATS Streaming** устаревшее, работало через другой exe, актуальная реализация это **JetStream**, является надстройкой и встроено в тот же ехе, достаточно запустить с аргументом "-js"\\
  
 **Авторизация** поддерживается как по логину/паролю так и по токену. Есть настройка разрешений подписки/публикации\\ **Авторизация** поддерживается как по логину/паролю так и по токену. Есть настройка разрешений подписки/публикации\\
Строка 32: Строка 34:
 </details> </details>
  
-При активном соединении работает "Ping/Pong", параметризовано вроде\\ 
-Размер сообщения ограничен **1M**\\ 
  
 **Мониторинг** **Мониторинг**
 Для мониторинга предусмотрен аргумент запуска **"-m your_port"**, очень простая, для более расширенного варианта есть утилита **"nats-top"**\\ Для мониторинга предусмотрен аргумент запуска **"-m your_port"**, очень простая, для более расширенного варианта есть утилита **"nats-top"**\\
 +При активном соединении работает "Ping/Pong", параметризовано вроде\\
 +
 +
  
  
 ===== Конфигурация ===== ===== Конфигурация =====
-Работает на порту "**4222**"\\+Указываются порты для хоста и для кластера отдельно и оба работают, видимо и подключения отличаются\\ 
 + 
 +<details> 
 +<summary>:!: Пример конфигурации c tls и кластером </summary> 
 +<code bash> 
 +debug:   true 
 +trace:   false 
 +log_file: "c:/path/logs/name.log" 
 +http_port: 8222 # HTTP monitoring port 
 +port: 4222 
 + 
 +tls { 
 +  cert_file: "c:/path/name.crt" 
 +  key_file: "c:/path/name.key" 
 +  ca_file: "c:/path/rootCA.crt" 
 +
 + 
 +cluster { 
 +  listen: 0.0.0.0:5222 
 +  routes = [ 
 +    nats-route://ip-1:5222 
 +    nats-route://ip-2:5222 
 +  ] 
 +  tls { 
 +    cert_file: "c:/path/name.crt" 
 +    key_file:  "c:/path/name.key" 
 +    ca_file:   "c:/path/rootCA.crt" 
 +  } 
 +
 + 
 +</code> 
 +</details> 
  
 **Базовый функционал**\\ **Базовый функционал**\\
Строка 92: Строка 127:
  
 <details> <details>
-<summary>:!: Потоковая передача</summary> +<summary>:!: Потоковая передача - JetStream</summary>
-{{:linux:11.png?direct&400|}}+
  
 +Тот же конфиг, добавляем только одну группу и в параметры запуска тоже добавить- "-js --cluster_name nats-js"
 <code bash> <code bash>
-  # NATS Streaming specific configuration +(...) 
-streaming +jetstream 
-  id: stan-cluster +  store_dir="K:/PF/Nats/data/jetstream"
-  store: file +
-  dir: store +
-  nats_server_url: «<< адрес кластера NATS >>» +
-  # Необходимо только указать имя кластера и имя узла для достижения пользовательского обнаружения +
-  cluster { +
-    node_id: "stan-1" +
-    peers["stan-2", "stan-3"+
-  }+
 } }
 +(...)
 </code> </code>
 </details> </details>
 +
 +
  
  
Строка 116: Строка 146:
 Все предельно просто, есть несколько вариантов: какой то менеджер пакетов "choco", интерпретатор go, и скачать дистрибутив\\ Все предельно просто, есть несколько вариантов: какой то менеджер пакетов "choco", интерпретатор go, и скачать дистрибутив\\
 В последнем случае [[https://github.com/nats-io/nats-server/releases/tag/v2.9.3|скачиваем]], утилитой "sc" назначаем службой, параметры запуска/конфиги это уже все здесь и опционально\\ В последнем случае [[https://github.com/nats-io/nats-server/releases/tag/v2.9.3|скачиваем]], утилитой "sc" назначаем службой, параметры запуска/конфиги это уже все здесь и опционально\\
 +Используя флаги можно запускать на одном хосте несколько экземпляров, после запуска службой можно управлять аргументом "--signal"\\
  
 <code bash> <code bash>
-sc.exe create nats-server binPath= "%NATS_PATH%\nats-server.exe [nats-server flags]"+sc.exe create nats-server binPath="c:\nats\nats-server.exe --config=c:\nats\app.conf"
 sc.exe start nats-server sc.exe start nats-server
 +
 +  # REM Reload server configuration (сигналы под вопросом)
 +nats-server.exe --signal reload
 +
 +  # REM Stop the server
 +nats-server.exe --signal stop [=<service name>]
 </code> </code>
  
  
 +
 +
 +<details>
 +<summary>:!: CheatSheet </summary>
 +<code bash>
 +nats cheat
 +
 +
 +#############################################
 +Сохранение параметров в контекст
 +#############################################
 +nats context save sys --user sys --password pass
 +nats context select <name-context>
 +
 +nats --tlsca=./certs/rootCA.crt --server=162.55.230.171 stream ls
 +
 +nats --tlsca=./certs/rootCA.crt --server=162.55.230.171 stream add brain_activity_protobuf --config ./stream_configs/brain_activity_protobuf.json
 +
 +
 +#############################################
 +Системная учетка
 +#############################################
 +добавить в конфиг 
 +accounts: {
 +  $SYS: {
 +    users: [{user: sys, password: pass}]
 +  }
 +}
 +
 +затем в cli:
 +
 +nats --context sys --user sys --password pass server list
 +
 +
 +#################################
 +Удаление хоста из метаданных 
 +#################################
 +
 +nats server cluster peer-remove RztkeQup
 +
 +*******************************************************************
 +
 +Названия стримов 
 + brain.activity.protobuf (альтернатива Ice_AccountsActivity, только на protobuf) 
 + brain.control.protobuf (альтернатива Ice_MesControl2ServerApp, только на protobuf).
 +
 +nats --tlsca=./certs/rootCA.crt --server=162.55.230.171 stream add brain_activity_protobuf --config ./stream_configs/brain_activity_protobuf.json
 +
 +
 +nats --tlsca=./certs/rootCA.crt --server=162.55.230.171 --user sys --password pass stream ls
 +nats --tlsca=./certs/rootCA.crt --server=162.55.230.171 stream rm brain_activity_protobuf -f
 +
 +nats --tlsca=./certs/rootCA.crt --server=162.55.230.171 stream add brain_activity_protobuf --config ./stream_configs/brain_activity_protobuf.json
 +
 +nats --tlsca=./certs/rootCA.crt --server=162.55.230.171 stream add brain_control_protobuf --config ./stream_configs/brain_control_protobuf.json
 +
 +
 +
 +
 +nats --context sys stream ls
 +
 +nats-cli.exe --tlsca=./certs/rootCA.crt --server=168.119.10.29 stream ls
 +
 +nats-cli.exe --tlsca=./certs/rootCA.crt --server=135.181.6.30 stream ls
 +</code>
 +
 +</details>
  
  
Строка 143: Строка 247:
 <details> <details>
 <summary> </summary> <summary> </summary>
-<code bash> 
  
-</code> 
 </details> </details>
linux/nats.1665655242.txt.gz · Последнее изменение: 2022/10/13 10:00 — admin