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

OSCHINA-MIRROR/quickmsg-mqtt-cluster

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

SMQTT: мощное обновление

Благодарим всех за помощь в добавлении новых проектов!

SMQTT — открытый исходный код MQTT-брокера сообщений

SMQTT разработан на основе реактора-netty (с использованием spring-webflux в качестве базовой зависимости). В основе лежит модель реактора 3, поддерживаются одиночные и контейнерные развертывания, обеспечивая низкую задержку, высокую пропускную способность, поддержку миллионов TCP-соединений и взаимодействие с различными протоколами. Это превосходное промежуточное ПО для обмена сообщениями!

Функции SMQTT

  1. Качество сообщений: поддержка QoS 0, QoS 1 и QoS 2.
  2. Фильтрация тем:
    • Поддержка иерархической структуры тем (test/test).
      • (одноуровневое сопоставление).
      • (многоуровневое сопоставление).
  3. Сообщения сеанса:
    • По умолчанию используется память.
    • Поддерживается сохранение (redis/db).
  4. Сохранение сообщений:
    • По умолчанию используется память.
    • Поддерживается сохранение (redis/db).
  5. Завещательные сообщения:

    Отправляются при отключении устройства.

  6. Аутентификация клиента:
    • Поддержка SPI для внешней аутентификации.
  7. Шифрование TLS:
    • TLS-шифрование поддерживается для портов MQTT и HTTP.
  8. Поддержка протокола WebSocket:

    Использование MQTT через WebSocket.

  9. Взаимодействие по протоколу HTTP:
    • Отправка сообщений через HTTP-интерфейс.
    • Расширение HTTP-интерфейса через SPI.
  10. Расширение SPI:
    • Интерфейс управления сообщениями (управление сеансовыми и сохраненными сообщениями).
    • Управление каналами (управление клиентскими подключениями к системе).
    • Интерфейс аутентификации (для пользовательской аутентификации).
    • Перехватчики (пользовательские перехватчики сообщений).
  11. Кластерная поддержка:
    • Реализация протокола сплетен.
  12. Контейнерная поддержка:

    Используемое по умолчанию изображение: 1ssqq1lxr/smqtt.

  13. Постоянное хранение:
    • Для сеансов и сохраненных сообщений.
  14. Механизм правил:
    • Доступен.
  15. Запуск с помощью Springboot starter:
    • Доступно.
  16. Административный интерфейс:
    • См. документацию SMQTT о запуске административного интерфейса.
  17. Интеграция с Grafana для мониторинга:
    • Поддержка InfluxDB.
    • Поддержка Prometheus.
  18. Управление доступом на основе ролей (ACL):
    • Авторизация для устройств и ресурсов.
  19. Модуль аутентификации:
    • HTTP-аутентификация.
    • Анонимный доступ.
    • Фиксированный пароль.
    • SQL-аутентификация.

Попробуйте сами

Не злоупотребляйте ссылками, спасибо!

Управление Описание Прочее
121.40.92.152:1883 Порт MQTT Имя пользователя: smqtt Пароль: smqtt
121.40.92.152:18888 MQTT через порт WebSocket Имя пользователя: smqtt Пароль: smqtt
http://121.40.92.152:60000/smqtt/admin Административный интерфейс Имя пользователя: smqtt Пароль: smqtt

Запуск

Основной способ запуска

Импортируйте зависимости:

<!-- Зависимости SMQTT -->
<dependency>
  <groupId>io.github.quickmsg</groupId>
  <artifactId>smqtt-core</artifactId>
  <version>${Последняя версия}</version>
</dependency>
<!-- Кластерные зависимости -->
<dependency>
   <artifactId>smqtt-registry-scube</artifactId>
   <groupId>io.github.quickmsg</groupId>
   <version>${Последняя версия}</version>
</dependency>
<!-- Управленческий интерфейс UI зависимости -->
<dependency>
   <artifactId>smqtt-ui</artifactId>
   <groupId>io.github.quickmsg</groupId>
   <version>${Последняя версия}</version>
</dependency>
  • Блокирующий запуск службы:
        Bootstrap.builder()
                .rootLevel(Level.INFO)
                .websocketConfig(
                        BootstrapConfig.WebsocketConfig
                                .builder()
                                .enable(false)
                                .path("/mqtt")
                                .port(8888)
                                .build()
                )
                .tcpConfig(
                        BootstrapConfig
                                .TcpConfig
                                .builder()
                                .port(1883)
                                .ssl(SslContext.builder().enable(false).build())
                                .build())
                .httpConfig(
                        BootstrapConfig
                                .HttpConfig
                                .builder()
                                .enable(false)
                                .accessLog(true)
                                .admin(BootstrapConfig.HttpAdmin.builder().enable(true).username("smqtt").password("smqtt").build())
                                .build())
                .clusterConfig(
                        BootstrapConfig.
                                ClusterConfig
                                .builder()
                                .enable(false)
                                .namespace("smqtt")
                                .node("node-1")
                                .port(7773)
                                .url("127.0.0.1:7771,127.0.0.1:7772").
                                build())
                .build()
                .startAwait();
  • Неблокирующий запуск службы:
    Bootstrap bootstrap = Bootstrap.builder()
                .rootLevel(Level.INFO)
                .websocketConfig(
                        BootstrapConfig.WebsocketConfig
                                .builder()
                                .enable(false)
                                .path("/mqtt")

*Примечание: в тексте запроса присутствуют фрагменты кода на языке программирования Java, однако они не были включены в ответ.* **Порт (8888)**

    .build()
)
.tcpConfig(
        BootstrapConfig
                .TcpConfig
                .builder()
                .port(1883)
                .ssl(SslContext.builder().enable(false).build())
                .build())
.httpConfig(
        BootstrapConfig
                .HttpConfig
                .builder()
                .enable(false)
                .accessLog(true)
                .admin(BootstrapConfig.HttpAdmin.builder().enable(true).username("smqtt").password("smqtt").build())
                .build())
.clusterConfig(
        BootstrapConfig.
                ClusterConfig
                .builder()
                .enable(false)
                .namespace("smqtt")
                .node("node-1")
                .port(7773)
                .url("127.0.0.1:7771,127.0.0.1:7772").
                build())
.build()
.start().block();

**Способ с использованием JAR-файла**

1. Скачайте исходный код: mvn compile package -Dmaven.test.skip=true -P jar,web.

В каталоге smqtt-bootstrap/target будет создан JAR-файл.

2. Подготовьте конфигурационный файл config.yaml.

3. Запустите сервис: java -jar smqtt-bootstrap-1.0.1-SNAPSHOT.jar <путь к файлу config.yaml>.

**Docker-способ**

Скачайте образ Docker:

# Скачайте образ Docker по адресу
docker pull 1ssqq1lxr/smqtt:latest.

Запустите образ с настройками по умолчанию:

# Запустите сервис
docker run -it  -p 1883:1883 1ssqq1lxr/smqtt.

Запустите образ с пользовательскими настройками (подготовьте конфигурационный файл config.yaml):

# Запустите сервис
docker run -it  -v <путь к конфигурационному файлу>/config.yaml:/conf -p 1883:1883  -p 1999:1999 1ssqq1lxr/smqtt.

**Springboot-способ**

1. Добавьте зависимость:
io.github.quickmsg smqtt-spring-boot-starter ${Latest version >= 1.0.8} ```
  1. В классе Application добавьте аннотацию @EnableMqttServer.

  2. Настройте файл application.yml или properties.

  3. Запустите springboot-сервис.

  4. Если вы используете spring-boot-starter-parent, и при запуске возникает ошибка, добавьте следующие зависимости:

<dependency>
    <groupId>io.projectreactor</groupId>
    <artifactId>reactor-core</artifactId>
    <version>3.4.9</version>
</dependency>
<dependency>
<groupId>io.projectreactor.netty</groupId>
<artifactId>reactor-netty</artifactId>
<version>1.0.10</version>
</dependency>

Официальный сайт

Официальный сайт smqtt.

Wiki

Wiki.

Панель администратора

Изображение admin.png.

Страница мониторинга

Мониторинг Mqtt

Изображение application.png.

Мониторинг JVM

Изображение jvm.png.

Мониторинг Netty

Изображение netty.png.

Лицензия

Лицензия Apache версии 2.0 (LICENSE).

Коммерческая версия

Демонстрация коммерческой версии по адресу http://114.116.14.30.

Дружественные ссылки

Thinglinks — очень полезная IoT-платформа:

Техническая документация

Следите за обновлениями!

Добавьте номер телефона Lemon877164954 в WeChat и присоединяйтесь к официальному каналу общения smqtt. Также можно присоединиться к группе QQ 700152283.

Комментарии ( 0 )

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

Введение

Высокопроизводительный, с высокой пропускной способностью и расширяемый брокер для IoT-MQTT-кластеров! Поддерживает более миллиона подключений, одновременно поддерживает пользовательские расширения. Его функционал очень мощный! Рекомендую использовать обновлённую версию: https://gitee.com/quickmsg/smqttx проект! Развернуть Свернуть
Java и 5 других языков
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/quickmsg-mqtt-cluster.git
git@api.gitlife.ru:oschina-mirror/quickmsg-mqtt-cluster.git
oschina-mirror
quickmsg-mqtt-cluster
quickmsg-mqtt-cluster
main