Class AmqpTransport

All Implemented Interfaces:
Closeable, AutoCloseable

public final class AmqpTransport extends PollingTransport

Messaging over RabbitMQ, or any AMQP 0-9-1 broker, with no client library.

cn1.messaging.url=amqp://app:secret@rabbit:5672/%2F

A destination is a durable queue of that name, declared on first use and published to through the default exchange, persistent and with publisher confirms: send(Message) returns once the broker has the message. Every listener of a queue competes for its messages, whatever its group says -- a fan-out to several groups is an exchange the application binds itself.

A subscription is one connection consuming with a prefetch equal to its concurrency, so the broker holds back what no consumer thread is free to take; one reader thread receives deliveries and the consumer threads acknowledge each after its handler returns. A message whose handler failed waits in <queue>.retry.<millis>, a queue whose time to live dead-letters it back to the original, so a retry occupies no consumer while it waits. One that fails every attempt goes to <queue>.dlq.