Baetyl-Broker разработан с использованием языка программирования Go. Это одиночное приложение для подписки и публикации сообщений, использующее протокол MQTT 3.1.1. Оно обеспечивает надежную доставку сообщений в условиях низкой пропускной способности сети и недостоверной связи. В качестве компонента middleware для передачи сообщений в рамках архитектуры Baetyl, он предоставляет всем службам возможность взаимодействовать через сообщения.
Существуют четыре метода подключения: TCP, SSL (TCP + SSL), WS (WebSocket) и WSS (WebSocket + SSL). Поддерживаемые функции MQTT включают:- Поддержка команд Connect
, Disconnect
, Subscribe
, Publish
, Unsubscribe
, Ping
и других
Retain
, Will
, Clean Session
+
и #
$
listeners: # [Обязательное] Адрес слушателя, например:
- address: tcp://0.0.0.0:1883 # TCP соединение
- address: ssl://0.0.0.0:1884 # SSL соединение, SSL соединение должно быть настроено с сертификатами
ca: example/var/lib/baetyl/testcert/ca.crt # Путь к сертификату CA сервера
key: example/var/lib/baetyl/testcert/server.key # Путь к приватному ключу сервера
cert: example/var/lib/baetyl/testcert/server.crt # Путь к публичному ключу сервера
anonymous: true # Если anonymous равно true, сервер не будет выполнять проверку ACL для этого порта
- address: ws://0.0.0.0:8883/mqtt # WS соединение
- address: wss://0.0.0.0:8884/mqtt # WSS соединение, WSS соединение должно быть настроено с сертификатами
ca: example/var/lib/baetyl/testcert/ca.crt # Путь к сертификату CA сервера
key: example/var/lib/baetyl/testcert/server.key # Путь к приватному ключу сервера
cert: example/var/lib/baetyl/testcert/server.crt # Путь к публичному ключу сервера
anonymous: false # Если anonymous равно true, сервер не будет выполнять проверку ACL для этого порта
principals: # Управление правами доступа ACL, поддерживаются учетные записи с паролями и сертификатами
- username: test # Имя пользователя
password: hahaha # Пароль
permissions: # Управление правами доступа
- action: pub # Право на публикацию
permit: ["test"] # Разрешенные темы, поддерживаются шаблоны
- action: sub # Право на подписку
permit: ["test"] # Разрешенные темы, поддерживаются шаблонами
``` - username: client # If the password is missing, the username represents the common name of the client in the certificate used for ACL verification when connecting via a certificate
permissions: # Managing access permissions
- action: pub # Permission to publish
permit: ["#"] # Allowed topics, supports templates
- action: sub # Permission to subscribe
permit: ["#"] # Allowed topics, supports templates
session: # Client session connection settings
max_clients: 0 # Maximum number of client connections on the server; if the value is 0 or negative, no limit applies
max_message_payload_size: 32768 # Maximum message size that can be transmitted, default is 32768 bytes (32K); maximum value is 268,435,455 bytes (approximately 256MB) - 1
max_inflight_qos0_messages: 100 # Flight window size for QoS0 messages
max_inflight_qos1_messages: 20 # Flight window size for QoS1 messages
resend_interval: 20s # Interval for resending messages; if the client does not respond with an acknowledgment (ACK) within the specified time interval, the message will be resent until the client responds with an ACK or the session closes
persistence: # Configuration for storing messages
store: # Database plugin configuration
driver: boltdb # Database plugin, defaults to boltdb
source: var/lib/baetyl/broker.db # Path to storage file
queue: # Storage
размер_пакета: 10 # размер кэша каналов сообщений
срок_истечения: 24ч # интервал истечения срока действия сообщений; сообщения, созданные раньше этого интервала, будут удалены при следующей очистке
интервал_очистки: 1ч # интервал очистки сообщений; в фоновом режиме регулярно выполняется очистка просроченных сообщений согласно этому интервалу
таймаут_записи: 100мс # таймаут записи пакета; запись выполняется по этому интервалу; если кэш заполнен за этот интервал времени, это также вызывает операцию записи
таймаут_удаления: 500мс # таймаут удаления подтвержденных сообщений; удаление подтвержденных сообщений выполняется по этому интервалу; если кэш подтвержденных сообщений заполнен за этот интервал времени, это также вызывает операцию удаления
системные_темы: ["$link", "$baidu"] # системные темы
уровень: info # уровень логгераКонкретный текст для перевода не предоставлен. Чтобы выполнить задачу по правке и переводу, пожалуйста, предоставьте конкретный текст документа на основе указанных выше правил.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )