Skip to content

v2.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 31 Oct 13:40
· 141 commits to main since this release

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 in the LavinMQ blog or the readme 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
  • Added deliver_get to message_stats #793
  • Added a configurable default consumer prefetch value for all consumers. Defaults to 65535. #813
  • Output format (text/json) can now be selected when running lavinmqctl cmds #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
  • Shovel AMQP source didn't reconnect on network failures (partially fixed in prev release) #758
  • Running lavinmqctl commands on a follower node now displays an error and exits with code 2 #785
  • Federation queue links now reconnects if the upstream disconnects #788
  • Proxying from followers is now more resilient #812
  • Sorting on consumer count at channels page
  • Log if user tries to declare a queue with an unknown queue type #792
  • Force close AMQP connections if a protocol error occurs
  • Remove min_isr setting #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
  • Renames clustering_max_lag -> clustering_max_unsynced_actions to clarify that it is measured in number of actions #810
  • Renames lag -> lag_in_bytes to clarify that lag is measured in bytes #810
  • Suggests etcd 3.4.0 as min version #815
  • Changed logging to provide more information about which queue is being handled #809
  • Publishing messages are now handled fully by exchanges #786
  • Logging is now handled more uniformly throghout LavinMQ #800
  • Don't log handled exceptions as error with backtrace #776
  • Don't dynamically fetch active etcd endpoints