1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/baetyl-baetyl-broker

Клонировать/Скачать
README.md 8.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 15.03.2025 22:28 0d2bd1d

baetyl-broker

Статус сборки Отчет Go Report Card Codecov Лицензия

Краткое описание

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 и других

  • Поддержка уровня качества обслуживания (QoS) 0 и 1 для публикации и подписки сообщений
  • Поддержка функций Retain, Will, Clean Session
  • Поддержка тем с шаблонами, содержащими знаки + и #
  • Поддержка проверки ClientID и Payload согласно соглашению
  • Поддержка аутентификации и авторизации, включая двустороннюю проверку сертификатов TLS на уровне транспорта и контроль доступа ACL на уровне приложения
  • Недоступность поддержки публикации и подписки тем с префиксом $
  • Отсутствие поддержки функции Keep Alive для клиентов и уровней QoS 2 для публикации и подписки## КонфигурацияПолная конфигурационная файловая система Baetyl-Broker представлена ниже, а также даны объяснения для каждого поля конфигурации:
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ч # интервал истечения срока действия сообщений; сообщения, созданные раньше этого интервала, будут удалены при следующей очистке
        интервал_очистки:  # интервал очистки сообщений; в фоновом режиме регулярно выполняется очистка просроченных сообщений согласно этому интервалу
        таймаут_записи: 100мс # таймаут записи пакета; запись выполняется по этому интервалу; если кэш заполнен за этот интервал времени, это также вызывает операцию записи
        таймаут_удаления: 500мс # таймаут удаления подтвержденных сообщений; удаление подтвержденных сообщений выполняется по этому интервалу; если кэш подтвержденных сообщений заполнен за этот интервал времени, это также вызывает операцию удаления
    системные_темы: ["$link", "$baidu"] # системные темы
   уровень: info # уровень логгераКонкретный текст для перевода не предоставлен. Чтобы выполнить задачу по правке и переводу, пожалуйста, предоставьте конкретный текст документа на основе указанных выше правил.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/baetyl-baetyl-broker.git
git@api.gitlife.ru:oschina-mirror/baetyl-baetyl-broker.git
oschina-mirror
baetyl-baetyl-broker
baetyl-baetyl-broker
master