VerneMQ is a high-performance, distributed MQTT message broker. It scales horizontally and vertically on commodity hardware to support a high number of concurrent publishers and consumers while maintaining low latency and fault tolerance. VerneMQ is the reliable message hub for your IoT platform or smart products. VerneMQ is an Apache2 licensed distributed MQTT broker, developed in Erlang.
MQTT used to stand for MQ Telemetry Transport, but it no longer is an acronym. It is an extremely simple and lightweight publish/subscribe messaging protocol, that was invented at IBM and Arcom (now Eurotech) to connect restricted devices in low bandwidth, high-latency or unreliable networks.
VerneMQ implements the MQTT 3.1, 3.1.1 and 5.0 specifications. Currently the following features are implemented and delivered as part of VerneMQ:
- QoS 0, QoS 1, QoS 2
- Basic Authentication and Authorization
- Bridge Support
- $SYS Tree for monitoring and reporting
- TLS (SSL) Encryption
- Websockets Support
- Cluster Support
- Logging (Console, Files, Syslog)
- Reporting to Graphite
- Extensible Plugin architecture
- Multiple Sessions per ClientId
- Session Balancing
- Shared subscriptions
- Message load regulation
- Message load shedding (for system protection)
- Offline Message Storage (based on LevelDB)
- Queue can handle messages FIFO or LIFO style.
- MongoDB auth & integration
- Redis auth & integration
- MySQL auth & integration
- PostgreSQL auth & integration
- Memcached integration
- HTTP integration
- HTTP Webhooks
- PROXY Protocol v2
- Administration HTTP API (BETA)
- Real-time MQTT session tracing
- Full multitenancy
- Cluster status web page
The following features are also applies to MQTT 5.0 clients:
- Enhanced authentication schemes (AUTH)
- Message expiration
- Last Will and Testament delay
- Shared subscriptions
- Request/response flow
- Topic aliases
- Flow control
- Subscription flags (Retain as Published, No Local, Retain Handling)
- Subscriber identifiers
- All property types are supported: user properties, reason strings, content types etc.
How does VerneMQ compare to HiveMQ and MessageSight?
Both are high-performance, closed source brokers running on the Java VM. Both brokers are clusterable but lack proper documentation of their failure modes during the presence of network failures.
How does VerneMQ compare to RabbitMQ and EMQ?
All three brokers are implemented using Erlang and therefore benefit from the similar Erlang runtime characteristics. However, VerneMQ was build from the ground up to tolerate network failures and provides fine-grained control over the availability and consistency behaviour. Moreover, the underlying distributed data storage features automatic conflict resolution and recovers automatically from netsplits.
Are customizations required to run VerneMQ?
No! VerneMQ comes with built-in plugins for simple file-based authentication and authorization. However, if your use case requires e.g. a database lookup for verifying client credentials a custom plugin might be needed. VerneMQ was built to be simple and easy to extend.
Source : https://vernemq.com/
Thanks for reading. If you like this post. probably you might like my next ones, so please support me by subscribing my blog.
You may like also: