Hi there, @Barycat55
A warm welcome to the HiveMQ Community! We’re excited that you’re interested in MQTT and the HiveMQ broker. Your presence adds value to our community.
It’s great that you’re considering HIVE MQTT clients for your project! While there isn’t a specific benchmark available for each client, I can provide you with some general insights and considerations that might help you make your decision.
Firstly, in terms of subscribing and processing around 3.5k messages per minute, the choice between the reactive and blocking client depends on your specific use case and preferences. The “reactor” client is based on reactive programming, which can be very efficient for handling high-throughput scenarios, but it might require a bit more familiarity with reactive programming concepts.
It’s important to note that your choice of client should also align with your existing technology stack. Since you mentioned that your application is built using Spring Boot, you might find it easier to integrate the reactive client into your existing Spring Boot application if you’re already using reactive programming features.
In terms of performance, asynchronous clients (like the “reactor” client) tend to offer better throughput and responsiveness compared to blocking clients because they can efficiently handle multiple concurrent operations. If high throughput is a critical requirement for your application, you may want to lean towards the asynchronous approach.
As for benchmarks, HIVE MQTT clients may not have specific benchmarks available for different scenarios because performance can vary significantly depending on factors like network conditions, hardware, and how you configure and use the clients. Therefore, it’s often recommended to conduct your own performance testing and profiling to determine which client suits your needs best in your unique environment.
You can find example clients and usage scenarios in the HiveMQ MQTT client’s GitHub repository at the following link: https://github.com/hivemq/hivemq-mqtt-client/tree/master/examples/src/main/java/com/hivemq/client/mqtt/examples. These examples can be a valuable resource to understand how each client is used and to kickstart your integration process.
In conclusion, your choice between the “reactor” and “blocking” client should be based on your familiarity with reactive programming, your application’s existing technology stack, and your specific performance requirements. Regardless of which client you choose, proper configuration and testing in your unique environment will be essential to ensure it meets your throughput goals.
If you have any more specific questions or need further assistance with your decision, feel free to ask. Good luck with your project!
Dasha from HiveMQ Team