Skip to content

amqpprox 1.0.0

Compare
Choose a tag to compare
@adamncasey adamncasey released this 14 Jul 13:07
· 88 commits to main since this release

amqpprox 1.0.0 🎉

amqpprox is an AMQP 0.9.1 proxy server, it is designed for use in front of an AMQP 0.9.1 compliant message queue broker such as RabbitMQ.

Rationale

Commonly people use HAProxy software acting as a load balancer to spread load between multiple machines within a serving cluster and handle failures gracefully. With amqpprox we built a similar proxy, except tailored specifically for the AMQP 0.9.1 protocol. This brings benefits which cannot be achieved with layer 4 proxying alone.

This proxy and how we use it was first publicly outlined in this talk at RabbitMQ Summit 2019, then released & introduced in detail in this talk at RabbitMQ Summit 2021.

Key Advantages

  • We can redirect different virtual hosts to different broker clusters
  • We are able to understand/log AMQP 0.9.1 sessions passing through the proxy
  • We can alter which brokers are connected to, in order to optimise network/datacenter cross-traffic.
  • We can get detailed statistics without relying on the RabbitMQ broker itself
  • We can easily have clients test connection failovers locally

Features

  • No dependencies: config is pushed into it, does nothing by default
  • Unix domain socket for control plane operations
  • Allow switching connections between farms per vhost
  • Load balancing between the farm members
  • Resources (vhosts) can be pointed at DNS farms, not just IPs
  • Statistics about each interaction
  • Able to easily test client failover by severing connections on demand