SMQTTX is a high-performance & open source MQTT server that supports stand-alone, containerized, and cluster deployment. It supports multiple protocols, has low latency, high throughput, and supports millions of TCP connections.
The MQTT protocol provides a lightweight way to perform messaging using a publish/subscribe model. This makes it suitable for IoT messaging, such as low-power sensors or mobile devices such as cell phones, embedded computers, or microcontrollers.
SMQTTX is an open source mqtt message broker server that implements MQTT protocol 3.1.1 and 3.1. SMQTTX is lightweight and suitable for everything from low-power single-board computers to full servers.
SMQTTX is very friendly and supports quick configuration. It can easily complete secondary development for Java applications and has a high-performance and high-throughput mqtt service.
SMQTT is developed based on reactor-netty (spring-webflux underlying dependency). The underlying layer adopts the Reactor3 reactor model, supports stand-alone deployment, supports containerized deployment, has low latency, high throughput, supports millions of TCP connections, and supports multiple protocol interactions. It is a very excellent message middleware!
The functions that smqtt currently has are as follows:
1. Message quality level implementation (supports qos0, qos1, qos2)
2. topicFilter support
topic rating (test/test)
+Support (single layer matching)
*Support (multi-layer matching)
3. Conversation messages
Default memory storage
Support persistence (redis/db)
4. Keep the message
Default memory storage
Support persistence (redis/db)
5. Will message
Triggered when the device goes offline
6. Client authentication
Support spi injection external authentication
7. TLS encryption
Support tls encryption (mqtt port/http port)
8. The websocket protocol supports x
Using mqtt over websocket
9. http protocol interaction
Support http interface push message
Support spi extended http interface
10. SPI interface expansion support
Message management interface (session message/retained message management)
Channel management interface (client connection to the management system)
Interceptor (user-defined interception message)
11. Cluster support (gossip protocol implementation)
12. Containerization support
The latest tag of the default image: 1ssqq1lxr/smqtt
13. Persistence support (session retained messages)
14. Rule engine support
15. Support springboot starter startup
16. Management background
Please refer to the smqtt document how to start the management background
17. grafana monitoring integration
Support influxdb
Support prometheus
18. ACL permission management
Authorize access to equipment and resources
19. Authentication module
Support http
Support anonymity
Support fixed password
support sql
Management background
Monitoring page
Mqtt monitoring
Jvm monitoring
Netty monitoring