What's New in HiveMQ 3.1?
Written by The HiveMQ Team
Category: HiveMQ Release
Published: March 1, 2016
What’s new in HiveMQ 3.1
We are pleased to announce HiveMQ 3.1.
This feature release brings a redesigned cluster which lifts MQTT scalability to a new level and allows HiveMQ deployments to scale out horizontally in a linear fashion.
HiveMQ 3.1 supports a truly distributed cluster which is designed to scale out horizontally on any cloud IaaS provider and on your own infrastructure. The cluster architecture is designed to scale to millions of MQTT clients on different machines with minimal performance and latency impact. All cluster mechanisms are tailored specifically to MQTT with state-of-the-art distributed systems best practices.
Configuration is a piece of cake and most clusters will work out of the box without any special configuration. The new HiveMQ cluster mechanism is the most reliable, most scalable and most performant MQTT cluster for true MQTT power users with ambitious scalability plans.
Read about the cluster configuration in our documentation.
Custom Cluster Discovery Mechanisms
The new cluster brings a lot of additional advantages for developers. Advanced user can hook in their own cluster discovery mechanisms. Your favourite Application Registry or IaaS provider is not in the list of officially supported plugins? No problem, with a few lines of code you can add your own discovery mechanism for cluster nodes and you can even hook in your own webservices.
There are off-the-shelf plugins available for popular discovery methods, like AWS S3.
Cloud and Docker Friendly Configuration
HiveMQ 3.0 brought a new XML configuration file for easy configuration automation. HiveMQ 3.1 supports Environment Variables directly in the configuration file.
This makes provisioning information in virtual or containerized environments a no-brainer and provides the flexibility to add highly dynamic information to the configuration without modifying your deployment jobs.
Take a look at the documentation to see how to use it in your own deployments.
Systemd Startup Script
HiveMQ 3.1 adds a new systemd startup script for Linux deployments. Systemd is now very popular amongst administrators and major Linux distributions support systemd.
Beside already existing Debian/Ubuntu and RHEL/CentOS specific start scripts, the new systemd script adds most other popular Linux distributions to the list of supported operating systems.
Next-Gen Shared Subscriptions
HiveMQ 3.0 added the possibility to define topics globally as shared subscriptions. Shared subscriptions are essentially a way to load-balance MQTT client subscriptions, so messages on “hot topics” are distributed amongst these subscribers.
HiveMQ 3.1 supports next-gen shared subscriptions with the possibility to add dynamic shared subscriptions based on MQTT standard mechanisms and adds support for true distributed shared subscriptions in the HiveMQ cluster.
Read about the new shared subscriptions in our documentation.
Async Plugin Services
Plugin developers who are developing for MQTT broker clusters can now interact with HiveMQs Plugin Services in a true non-blocking, reactive and asynchronous way. Complex plugin logic can now be chained efficiently with these Services without sacrificing performance and scalability.
The new Async Plugin Services are designed for the use in conjunction with the new cluster and work seamlessly for distributed installations. Single Node Deployments also profit from the new reactive programming style. Of course plugins can still use the old APIs from HiveMQ 3.x.
Learn about the async callbacks here.
In order to upgrade to HiveMQ 3.1 from HiveMQ 3.0, take a look at our Upgrade Guide.