LavinMQ version 2.6.0 delivers new stream features and lavinmqperf updates
LavinMQ 2.6.0 has been released! This version includes powerful features added for streams, lavinmqperf improvements, and additional monitoring. Stream queues now support GIS filtering, allowing consumers to filter by geographic regions without processing the entire stream.
Highlights from version 2.6.0
- Default configuration updated with AMQPS/MQTTS/HTTPS ports enabled by default #1487
- Delayed message queue naming convention
amq.delayed-<exchange name>#1461 - GIS filtering in streams #1397
- lavinmqperf now has a latency measurement #1474
- Memory Pressure Monitoring added #1484
GIS filtering in stream
Streams functionality has been extended to include GIS filtering. This allows applications dealing with location data, such as fleet management, delivery services, or IoT sensor networks, and more, to filter messages based on a specific geographic boundary. GIS coordinates need to be in the message header, formatted as x-geo-lat and x-geo-lon. There are three types of GIS filters: radius, bounding box, and polygon.
q.subscribe(no_ack: false, args: AMQP::Client::Arguments.new({
"x-stream-offset" => "first",
"x-stream-filter" => {
"geo-within-radius" => {
"lat" => 38.6246,
"lon" => -90.1850,
"radius_km" => 5.0,
},
},
}))
lavinmqperf
lavinmqperf now measures and reports message latency. Users now easily detect performance bottlenecks and track message delivery consistency. Latency has been added to both the periodic output and the summary. Utilize the --measure-latency flag to show latency.
Summary:
Average publish rate: 294098.6 msgs/s
Average consume rate: 206163.4 msgs/s
Latency (ms):
min: 3.773
median: 444.541
75th: 679.771
95th: 801.807
99th: 856.156
Memory pressure monitoring
With this LavinMQ release, users can prevent running out of memory in containerized environments with SystemD memory pressure monitoring. The integration enables better coordination with the OS during memory pressure. LavinMQ can detect when the operating system is under severe memory pressure and take steps to reduce its memory footprint.
Interested in making contributions to LavinMQ? Check out the contribution guidelines on GitHub. Join our discussion to share feedback, ideas, or showcase what you’ve created with LavinMQ.
The LavinMQ community is here to help. Join the Slack group and sign up for the newsletter.