Tags: cloudamqp/lavinmq
Tags
v2.3.0 Added - MQTT websocket support [#1007](#1007) - Ability to change channel prefetch in UI/API [#1033](#1033) - Add Prometheus metrics for `global_message_*` counters [#1010](#1010) - Add filtering for bindings on exchange [#1032](#1032) - Make it possible to filter on connection_name and user from /connections [#1031](#1031) - Log total startup time [#1056](#1056) Fixed - Multiple nodes could generate and set clustering secret, causing the leader to use another secret than the followers. [#998](#998) - A policy with delivery-limit is now properly applied to a queue if the value is lower than the existing argument. [#1000](#1000) - Fix cluster ID and advertised URI collision handling, preventing confusing behavior when multiple nodes have the same identity [#1023](#1023) - Close MQTT client socket and exit deliver loop on errors [#1043](#1043) - Don't federate internal exchanges [#1058](#1058) - Stop existing federation links when applying a new policy [#1059](#1059) Changed - Cleaner CLI output with separators [#1018](#1018) - Default limit of 128 items in deduplication cache [#1019](#1019) - Messages in stream queues now support multiple filter values [#1022](#1022) - Filtering on stream queues now requires all filters on a consumer to match [#1022](#1022) - Make it possible to filter on connection_name and user from /connections [#1031](#1031) - Add BasicAuth section to HTTP API docs [#1030](#1030) - Command line arguments for mqtt_bind [#992](#992) - Show MQTT client keepalive in management UI [#989](#989) - Count MQTT messages in vhosts message stats [#988](#988) - Build RPM packages for Fedora 42 [391f79b](391f79be) - README overhaul with improved structure and visual elements [#1052](#1052) - Don't build lavinmqperf with MT
Fixed - Don't raise FileNotFound when deleting already deleted file [#849](#849) - Increase default etcd lease TTL to 10s and run keepalive earlier [#847](#847) - Don't remove consumers from queue before all data is sent to client. It may cause a segmentation fault because a unmapped message segment is accessed. [#850](#850) Changed - Exit with status 1 if lost leadership so that LavinMQ is restarted by systemd [#846](#846)
[2.0.1] - 2024-11-13 Fixed - etcd lease will no longer expire during slow startup [#834](#834) - Leader node is no longer unresponsive while sending file_list/files to new followers [#838](#838) - Leader node now waits for all data to be acked to all followers before shutting down on graceful shutdown [#835](#835) - Improve broker initiated client disconnects [#816](#816) - Fixed sorting on unacked messages [#836](#836) Changed - Remove the 'reset vhost' feature [#822](#822) - Build with latest crystal version [#841](#841) - Added metadata when logging connection handshake [#826](#826) Added - Added some indexing for streams, greatly increasing performance when looking up by offset or timestamp [#817](#817) - Added buildstep for 'make rpm' [#840](#840)
With the release of 2.0.0 we introduce High Availablility for LavinMQ… … in the form of clustering. With clustering, LavinMQ replicates data between nodes with our own replication protocol, and uses etcd for leader election. See [this post](https://lavinmq.com/blog/lavinmq-high-availability) in the LavinMQ blog or the [readme](https://github.com/cloudamqp/lavinmq?tab=readme-ov-file#clustering) for more information about clustering. Added - Full HA clustering support, uses etcd for leader election and metadata, and a replication protocol between nodes. - Added cluster_status to lavinmqctl [#787](#787) - Added deliver_get to message_stats [#793](#793) - Added a configurable default consumer prefetch value for all consumers. Defaults to 65535. [#813](#813) - Output format (text/json) can now be selected when running lavinmqctl cmds [#790](#790) - Clustering clients will now listen on the UNIX sockets if configured - Clustering server will accept PROXY protocol V2 headers from followers Fixed - Shovels' batching of acks caused a lot of unacked messages in source broker [#777](#777) - Shovel AMQP source didn't reconnect on network failures (partially fixed in prev release) [#758](#758) - Running lavinmqctl commands on a follower node now displays an error and exits with code 2 [#785](#785) - Federation queue links now reconnects if the upstream disconnects [#788](#788) - Proxying from followers is now more resilient [#812](#812) - Sorting on consumer count at channels page - Log if user tries to declare a queue with an unknown queue type [#792](#792) - Force close AMQP connections if a protocol error occurs - Remove min_isr setting [#789](#789) - Wait for followers to synchronize on shutdown of leader - Make proxied UNIX sockets in followers RW for all - SystemD notify ready in cluster mode when lader is found - Etcd actions are retried, etcd can now be restarted without issues - Clustering secret is monitored if not available yet when becoming a replication follower Changed - Updated RabbitMQ HTTP API Go client test to use a patch-file for LavinMQ compatibility [#778](#778) - Renames clustering_max_lag -> clustering_max_unsynced_actions to clarify that it is measured in number of actions [#810](#810) - Renames lag -> lag_in_bytes to clarify that lag is measured in bytes [#810](#810) - Suggests etcd 3.4.0 as min version [#815](#815) - Changed logging to provide more information about which queue is being handled [#809](#809) - Publishing messages are now handled fully by exchanges [#786](#786) - Logging is now handled more uniformly throghout LavinMQ [#800](#800) - Don't log handled exceptions as error with backtrace [#776](#776) - Don't dynamically fetch active etcd endpoints
[2.0.0-rc.5] - 2024-10-28 Fixed - Shovels' batching of acks caused a lot of unacked messages in source broker [#777](#777) - Shovel AMQP source didn't reconnect on network failures (partially fixed in prev release) [#758](#758) - Running lavinmqctl commands on a follower node now displays an error and exits with code 2 [#785](#785) - Federation queue links now reconnects if the upstream disconnects [#788](#788) - Proxying from followers is now more resilient [#812](#812) - Sorting on consumer count at channels page - Log if user tries to declare a queue with an unknown queue type [#792](#792) - Force close AMQP connections if a protocol error occurs - Remove min_isr setting [#789](#789) Changed - Updated RabbitMQ HTTP API Go client test to use a patch-file for LavinMQ compatibility [#778](#778) - Renames clustering_max_lag -> clustering_max_unsynced_actions to clarify that it is measured in number of actions [#810](#810) - Renames lag -> lag_in_bytes to clarify that lag is measured in bytes [#810](#810) - Suggests etcd 3.4.0 as min version [#815](#815) - Changed logging to provide more information about which queue is being handled [#809](#809) - Publishing messages are now handled fully by exchanges [#786](#786) - Logging is now handled more uniformly throghout LavinMQ [#800](#800) - Don't log handled exceptions as error with backtrace [#776](#776) Added - Added cluster_status to lavinmqctl [#787](#787) - Added deliver_get to message_stats [#793](#793) - Added a configurable default consumer prefetch value for all consumers. Defaults to 65535. [#813](#813) - Output format (text/json) can now be selected when running lavinmqctl cmds [#790](#790)
v2.0.0-rc.4 Fixed - Memory leak in Crystal's Hash implementation - Accept `x-delayed-exchange` and `x-delayed-messages` as exchange type for delayed message the exchanges - Bindings are sorted properly in the web interface - Wait for followers to synchronize on shutdown of leader - Shovel the exact number of messages available on start if `delete-after=queue-length`, not more - Prevet a queue that's overflowing to consume too much resources - Dead-lettering loop when publishing to a delayed exchange's internal queue [#748](#748) - Exchange federation tried to bind to upstream's default exchange - Shovel AMQP source didn't reconnect on network failures - Shovel ack all unacked messages on stop - Accept custom certificate parameters in shovel URI such as: `?cacertfile=/tmp/ca.pem&certfile=/tmp/cert.pem&keyfile=/tmp/key.pem` Changed - Merge the header field and properties.header fields when publishing messages in the web interface
PreviousNext