AMQP

The Advanced Message Queuing Protocol (AMQP) Overview

LavinMQ implements the AMQP 0-9-1 protocol. This page covers LavinMQ’s specific defaults, capabilities, and extensions. For the full protocol specification, see the AMQP 0-9-1 spec.

Ports

Config Key Default Port
amqp_port 5672
amqps_port 5671
http_port 15672 (AMQP over WebSocket shares the HTTP port)

Unix domain sockets are also supported via unix_path in the [amqp] config section.

Server Defaults

Config Key Default
frame_max 131,072 bytes
channel_max 2,048
heartbeat 300 seconds
max_message_size 128 MB
default_consumer_prefetch 65,535

The server proposes these values during connection negotiation. The client may negotiate lower (but not higher) for frame_max and channel_max. For heartbeat, the lower non-zero value is used.

Capabilities

On top of the AMQP 0-9-1 spec, LavinMQ also supports:

  • Publisher confirms — acknowledgment that the server received a message. See Publisher Confirms.
  • Consumer cancel notify — server sends basic.cancel when a queue is deleted. See Consumers.
  • Exchange-to-exchange bindings — bind exchanges to other exchanges. See Bindings.
  • basic.nack — negative acknowledgment with multi-message support. See Consumers.
  • Per-consumer QoS — prefetch scoped to individual consumers. See Channels.
  • Direct reply-to — RPC without temporary queues. See Messages.
  • Authentication failure close — server closes the connection with a reason on auth failure.
  • Consumer priorities — consumers can declare priority to influence delivery order. See Consumers.

Authentication Mechanisms

  • PLAIN — username and password
  • AMQPLAIN — AMQP-specific encoding of username and password

Credentials are validated against the configured authentication chain.

LavinMQ-Specific Behavior

  • Blocked publishing: when free disk space drops below 3 * segment_size or below free_disk_min, basic.publish returns a precondition_failed channel error until resources recover.
  • Consumer timeout: a consumer’s channel is closed if its oldest unacknowledged message exceeds the configured timeout. See Consumers.
  • Channel flow: clients can pause their own delivery via channel.flow. See Channels.
  • Transactions: supported but mutually exclusive with publisher confirms on the same channel. See Transactions.

Further Reading

  • Connections — connection lifecycle, heartbeats, proxy protocol
  • Channels — channel multiplexing, prefetch, flow control
  • Exchanges — exchange types and routing
  • Queues — queue types and arguments
  • Messages — publishing, properties, CC/BCC, direct reply-to
  • Consumers — acknowledgment, prefetch, single active consumer

Ready to take the next steps?

Managed LavinMQ instance via CloudAMQP

LavinMQ has been built with performance and ease of use in mind - we've benchmarked a throughput of about 1,000,000 messages/sec . You can try LavinMQ without any installation hassle by creating a free instance on CloudAMQP. Signing up is a breeze.

Get started with CloudAMQP ->

Help and feedback

We welcome your feedback and are eager to address any questions you may have about this piece or using LavinMQ. Join our Slack channel to connect with us directly. You can also find LavinMQ on GitHub.


Can’t find what you’re looking for? Let us know
Was this helpful?

Search