What’s New in HiveMQ 4.28?

What’s New in HiveMQ 4.28?

author HiveMQ Team

Written by HiveMQ Team

Category: HiveMQ Release

Published: April 29, 2024

The HiveMQ team is proud to announce the release of HiveMQ Enterprise MQTT Platform 4.28. This release focuses on performance improvements and increased observability for the HiveMQ platform.

HiveMQ 4.28 replaces HiveMQ 4.9 as the latest LTS (Long Term Service) release of the HiveMQ Platform. For more information, see the HiveMQ 4.9 to 4.28 Upgrade Guide.

Highlights

  • Detailed Health API information for HiveMQ extensions.
  • Java 21 Support in the HiveMQ Platform

Expanded Health API View for HiveMQ Extensions

HiveMQ 4.14, introduced a Health API with Readiness and Liveness REST API resources for every node in a HiveMQ cluster. These information endpoints let you pinpoint the exact state of each HiveMQ node and derive the overall cluster state quickly and accurately. Health checks make it easier for site reliability engineers to ensure the robustness of the HiveMQ deployments they manage and respond to issues automatically.

The HiveMQ 4.28 release adds informative subcomponents that give you important status and health information for every installed HiveMQ extension in your cluster. The new extension components provide reliable checks of the extension status and enable automated checks of vital integration points for your use cases and IoT architectures.

How it works

Enhanced Health API subcomponents offer detailed information on the status and health of each installed HiveMQ extension. The status tells you whether the extension is currently “UP”, “DEGRADED”, or “DOWN”. Beyond the basic status information, the Health API shows you when the extension started, lists license information, and offers an extension-specific configuration summary.

The following JSON block shows the status of a HiveMQ Enterprise Extension for Kafka. The top-level details give general information about the extension such as the start time, version, and priorities. The internals subcomponent provides key information about the license, entry point, and services while the application subcomponent gives an extension-specific summary of configuration information.

Example HiveMQ Enterprise Extension for Kafka Health API entry:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
{
  "status": "UP",
  "details": {
    "author": "HiveMQ",
    "enabled": true,
    "name": "HiveMQ Enterprise Extension for Kafka",
    "priority": 1000,
    "start-priority": 1000,
    "startedAt": 1714053789530,
    "version": "4.28.0"
  },
  "components": {
    "application": {
      "status": "UP",
      "components": {
        "configuration": {
          "status": "UP",
          "details": {
            "kafka-to-mqtt-mappings-count": 0,
            "kafka-to-mqtt-transformers-count": 0,
            "mqtt-to-kafka-mappings-count": 1,
            "mqtt-to-kafka-transformers-count": 0,
            "reloaded-at": 1714053790016
          }
        }
      }
    },
    "internals": {
      "status": "UP",
      "components": {
        "entrypoint": {
          "status": "UP",
          "details": {
            "started-at": 1714053789530
          }
        },
        "license": {
          "status": "UP",
          "details": {
            "is-enterprise": true,
            "is-trial": true,
            "is-trial-expired": false
          }
        },
        "services": {
          "status": "UP"
        }
      }
    }
  }
}

Each component of the Health API can be retrieved via a URL. For example, the status of the Kafka extension can be retrieved via http://localhost:8889/api/v1/health/extensions/hivemq-kafka-extension.

How it helps

The expanded HiveMQ HealthAPI provides a holistic view of system health by checking the status of components and services such as extensions. Our new composite HiveMQ HealthAPI is far more powerful than a simple heartbeat check that reports whether the application is running. Now, you can check the status and health of each installed platform extension in depth to ensure that potential issues across different parts of the system are identified and addressed. For more information, see HiveMQ Health API.

Java 21 Compatibility in the HiveMQ Platform

Starting with HiveMQ 4.28, Java 21 support is available across the HiveMQ Platform and all official HiveMQ container images. The HiveMQ system requirements remain Java 11 or higher; however, we now recommend using Java 21. Java 21 delivers significant performance, stability, and security updates, various bugfixes, and dozens of new features and enhancements.

How it helps

Oracle has announced long-term support for Java 21 at least until January 2032 and OpenJDK 21 will be a long-term support (LTS) release from most vendors. These extended support periods give organizations greater flexibility to keep applications in production longer, with minimal maintenance, and less migration pressure.

More Noteworthy Features and Improvements

HiveMQ Enterprise MQTT Broker

  • Added optional configurations that can be used to enable monitoring of specific customer metrics for enhanced service and support.
  • Introduced a new database schema for enqueued messages to improve overall performance and increase reliability during cluster merges.
  • Added the ability to migrate enqueued messages from the old database schema to the new database schema during stateful starts.
  • Added the ability to recover enqueued messages to the new database schema from the old and new database schemas with the HiveMQ Recovery Tool.
  • Implemented storage of enqueued messages in RocksDB to boost performance.
  • Consolidated the caching of data stored in RocksDB to enable the HiveMQ broker to dynamically adapt to varying workloads for enhanced performance.
  • Improved RocksDB error handling.
  • Added the ability to modify the sessionPresent flag of a CONNACK packet in ConnackOutboundInterceptors.
  • Updated the official hivemq/hivemq4 container image to Java 21.
  • Removed the deprecated -noverify Java command line option from the run.sh file.
  • Improved Linux user handling in the hivemq/hivemq4 container images:
    • Adjusted container images to run as a non-root user with the numerical user ID 10000 with no root step-down required.
    • Added support for running containers with any explicitly designated user ID.
  • Removed unnecessary file execute permissions from the official HiveMQ container images.
  • Removed unnecessary file write permissions from the official HiveMQ container images.
  • Added option to disable remote JMX by setting the HIVEMQ_JMX_ENABLED environment variable to false.
  • Aligned the Windows batch scripts with the Unix bash scripts to provide a consistent user experience.

HiveMQ Enterprise Recovery Tool

  • Adjusted how recovery-tool export folders are named to simplify tracking in the HiveMQ Control Center Backup view.
  • Added the ability to recover enqueued messages to the new database schema from the old and new database schemas.

HiveMQ Enterprise Security Extension

  • Added the ability to use the JWT authentication manager for REST API pipelines.
  • Aligned the location of the Enterprise Security Extension access log file with the user configuration of the log files folder.
  • Fixed an issue in which escaped commas in Relative Distinguished Name (RDN) bind configurations of LDAP realms were incorrectly parsed.

HiveMQ Enterprise Extension for Snowflake

  • Added the ability to map MQTT 5 user properties to Snowflake tables as JSON strings.

HiveMQ Enterprise Extension for MYSQL

  • Added new metrics for tracking message delivery and latency.
  • Adjusted the batching behavior and increased the query timeout duration to improve extension latency.

HiveMQ Enterprise Extension for MongoDB

  • Added new metrics for tracking message delivery and latency.
  • Improved the batching behavior to reduce extension latency and increased the query timeout setting.

HiveMQ Enterprise Extension for PostgreSQL

  • Added new metrics for tracking message delivery and latency.
  • Improved the batching behavior to reduce extension latency and increased the query timeout setting.

HiveMQ Enterprise Data Lake Extension

  • Added the ability to map MQTT 5 user properties to columns in the output parquet files.

HiveMQ Enterprise Extension for Kafka

  • Added check to prevent extension startup when a missing or invalid configuration is detected.

HiveMQ Swarm

  • Updated the official hivemq/hivemq-swarm container image to Java 21.

Get Started Today

To upgrade to HiveMQ 4.28 from HiveMQ 4.27, see the HiveMQ 4.27 to 4.28 Upgrade Guide. For information on upgrading from the previous 4.9 LTS version to the current 4.28 LTS version, see the HiveMQ 4.9 to 4.28 Upgrade Guide. To learn more about our enhanced rolling upgrade policy, see Introducing Flexible MQTT Platform Upgrades with HiveMQ.
For details on all the features we offer, explore the HiveMQ User Guide.

author HiveMQ Team

About HiveMQ Team

We love writing about MQTT, IoT protocols and architecture in general. Our experts are here to help, so reach out to us if we can help!

mail icon Contact HiveMQ
newer posts HiveMQ Platform Operator for Kubernetes 1.3.0 Release
HiveMQ 4.9.19 Maintenance Release older posts