What's New in HiveMQ 4.3?
Written by Mary Brickenstein Hofschen
Category: HiveMQ Release
Published: February 6, 2020
The HiveMQ team is pleased to announce the availability of HiveMQ 4.3.
Here are the highlights of our 4.3 release:
- Significant performance improvements for HiveMQ deployments that use QoS 1 & 2 messages and retained messages. It is possible to see 50 to 100% increased message throughput using commodity storage hardware. These improvements can reduce the infrastructure costs of operating a large-scale HiveMQ deployment. We have also improved the delivery performance of retained messages for subscriptions that contain wildcard characters and large numbers of retained messages.
- A new Retained Messages Management view has been added to the HiveMQ Control Center. HiveMQ Control Center administrators can now view all the retained messages stored with the HiveMQ broker. This new view makes it easier to debug and troubleshoot applications that use retained messages.
- Updated release of the HiveMQ Community Extension SDK includes a considerable number of new APIs to give developers more flexibility when building HiveMQ extensions. New to the SDK is support for the MQTT 5 authentication API which allows for a challenge/response sequence for authenticating MQTT clients.
HiveMQ 4.3 is a drop-in replacement for version 4.2 and supports rolling upgrades with zero downtime. To learn more, see our Upgrade Guide.
HiveMQ Performance Improvements
HiveMQ is an industry leader in implementing stable, beautifully-scalable, enterprise IoT deployments. We work hard to make sure that HiveMQ runs better, faster, and more securely than any other MQTT broker on the market.
HiveMQ 4.3 is our fastest implementation yet with significantly improved throughput for HiveMQ deployments that use QoS 1 & 2 messages and retained messages.
- New optimization solution that improves CPU usage, memory usage, and throughput efficiency for the persistence of publish messages (particularly for messages with large payloads)
- Fine-tuned replication handling for improved speed, accuracy, and logging during cluster topology changes
- Numerous minor performance improvements in areas such as retained message delivery and garbage collection that boost the overall speed and efficiency of your HiveMQ installation
Retained Message Management and Delivery Improvements
Retained Message Management: The HiveMQ 4.3 release adds brand new Retained Message views and details to the HiveMQ Control Center. This information makes it easier for administrators to debug and troubleshoot applications that use retained messages.
A HiveMQ cluster can easily process millions of retained messages. Our new HiveMQ Control Center views help you keep track of all the retained messages that are currently available on your system. Now, it is simple to efficiently sort, filter, and navigate through all of the retained messages on your HiveMQ cluster.
The new Retained Messages overview provides basic information for every retained message on your HiveMQ instance:
- Payload size
- Creation date
From the overview, you can quickly access individual Retained Message detail pages for each of your retained messages.
The detail view gives you a concise summary of key information for the selected retained message:
- General information: Topic, QoS level, and payload size
- Expiry information: Creation date, message-expiry interval, and remaining validity
- Message metadata: MQTT 5 response topic and correlation data (optional)
- Payload metadata: MQTT 5 content type and payload format indicator (optional)
- User properties: MQTT 5 user properties of the retained message (optional)
Retained Message Performance: In addition to the new overview and detail pages, HiveMQ 4.3 significantly improves the delivery performance of retained messages for subscriptions that contain wildcard characters and large numbers of retained messages.
Updated HiveMQ Community Extension SDK
HiveMQ extension developers continuously find interesting new ways to extend HiveMQ with custom business logic and appreciate the open API that the HiveMQ extension framework provides for creating custom extensions. HiveMQ 4.3 adds many enhanced services and a long list of useful new interceptors to the free, open-source, community edition of our extension SDK:
New enhanced authenticator API that allows HiveMQ extension developers to create challenge-response style authentication and re-authentication with MQTT 5 clients:
- Authentication such as SCRAM or Kerberos can now be realized
- Support for all the necessary reason codes
- Compatibility with the simple authenticator API
- Convenient event-log tracking of all successful and unsuccessful authentications
Improved extension task queue to prevent unwanted behavior when the task-queue limit is exceeded
Extension SDK iteration methods from the ClientService and SubscriptionStore now return an exception if the method is called before HiveMQ startup is complete
Reason strings and reason codes can now be set on the ClientService to tell the client why it is disconnected by the server
Improved callback handling to ensure access to HiveMQ services and builders
Interceptors for numerous MQTT packets to enable flexible integration with other systems (with an improved listing of interceptors to ensure accurate handling when multiple interceptors are implemented from a class):
- PubackInboundInterceptor: Allows you to modify the reason string, reason code, and user properties of inbound PUBACK packets
- PubackOutboundInterceptor: Allows you to modify the reason string, reason code, and user properties of outbound PUBACK packets
- PubrecInboundInterceptor: Allows you to modify the reason string, reason code, and user properties of inbound PUBREC packets
- PubrecOutboundInterceptor: Allows you to modify the reason string, reason code, and user properties of outbound PUBREC packets
- PubrelInboundInterceptor: Allows you to modify the reason string, and user properties of inbound PUBREC packets
- PubrelOutboundInterceptor: Allows you to modify the reason string, and user properties of outbound PUBREC packets
- PubcompInboundInterceptor: Allows you to modify the reason string, and user properties of inbound PUBCOMP packets
- PubcompOutboundInterceptor: Allows you to modify the reason string, and user properties of outbound PUBCOMP packets
- SubackOutboundInterceptor: Allows you to modify the reason codes, reason string, and user properties of outbound SUBACK packets
- UnsubscribeInboundInterceptor: Allows you to modify the topic filters, and user properties of inbound UNSUBSCRIBE packets
- UnsubackOutboundInterceptor: Allows you to modify the reason codes, reason string and user properties out outbound UNSUBACK packets
- DisconnectInboundInterceptor: Allows you to modify the reason code, reason string, user properties, and session expiry interval of inbound DISCONNECT packets
- DisconnectOutboundInterceptor: Allows you to modify the reason code, reason string, user properties, and server reference of outbound DISCONNECT packets
- PingReqInboundInterceptor: Allows you to intercept inbound PINGREQ packets
- PingRespOutboundInterceptor: Allows you to intercept outbound PINGRESP packets
New Features & Functionality
Here are some of the noteworthy enhancements that the HiveMQ 4.3 release introduces. These new features and functions further increase the security and operability of your HiveMQ deployment:
- Tightened security with new default authentication settings. HiveMQ version 4.3 only allows MQTT clients to connect if a security extension is present. For testing purposes, version 4.3 ships with a convenient ‘allow-all’ extension.
- TLS 1.3, the newest version of the Transport Layer Security protocol, can now be enabled in your HiveMQ configuration
- New session-takeover reason code in the DISCONNECT packet for MQTT 5 clients that clearly identifies the cause of the disconnection
- QoS 0 memory limit per client with an added metric that shows you how many clients exceeded the limit
- Improved handling of disconnect reason codes to ensure that Will messages are correctly sent for all disconnect reason codes other than a normal disconnect
- Refined extension publish service to ensure accurate send out of publishes to shared subscription groups.
Usability Enhancements for the Control Center
Administrators rely on the high-quality management tools and analytics that the HiveMQ Control Center provides to monitor and maintain their HiveMQ deployments. Quick access to key metrics and real-time data for your HiveMQ broker and the MQTT clients is vital for the successful operation of any modern MQTT production environment.
We’ve made a number of improvements to the HiveMQ Control Center to make it easier and more efficient to use:
Smooth Interactions with Control Center Data:
- HiveMQ now stores the number of messages per page that you select for the retained-message overview until you log out. You can leave the overview and return later, the settings you applied to the table remain active.
- Convenient previous and next options on the Clients and Retained Messages detail pages now apply the same sorting and filter settings that you set on the overview table. These new session-wide sorting and filter options reduce the number of clicks you need to locate exactly the information that you need in a HiveMQ snapshot.
- An attractive new snapshot-progress bar on the snapshot loading screen shows the status of the snapshot creation process when you create a snapshot.
- For easier analysis, filters that you apply to an overview automatically emphasize the values in the filtered entries that match the search criteria you entered.
Fine-tuned Access to Information:
- Two useful new control-center permissions let you decide which control-center users can access retained-message and user-property information. You can set the UserProperties permission and the RetainedMessageDetail permission in your default permissions.
Thoughtful Backup and Restore Updates:
- To protect the consistency of your backups, the backup and restore feature now prevents you from starting an export while any type of replication is in progress.
- To ensure correct handling of all client sessions in your backup and restore exports, HiveMQ now supports special characters in the file name of a backup and restore export XML file.
If you currently use a HiveMQ 4 version, we highly recommend upgrading to the new 4.3.1 version of HiveMQ.
Have a great day,
The HiveMQ Team