38. Spring Cloud
Stream
● Abstraction over
protocol
● Abstraction over
messaging vendor
● Same code
regardless of
messaging broker
Spring AMQP
● Provides a
"template" as a
high-level
abstraction for
sending and
receiving messages.
● Support for
Message-driven
POJOs with a
"listener container".
● Similar to the JMS
support in the Spring
Framework.
RabbitMQ AMQP
Client
● Low level API to
RabbitMQ
Options for Java developers
Reactor RabbitMQ
● Reactive API for
RabbitMQ based on
Reactor and RMQ
Java Client
● Functional APIs
enables messages to
be
published/consumed
with non-blocking
back-pressure and
very low overheads
101. Publisher Confirms
Mechanism for producers to confirm successful handling by RabbitMQ. Publisher
confirms will inform if a message is dropped (e.g., not routed to a queue) or if a
message has been appended to the relevant queues or written to disk.
Increasing levels of message reliability
make a performance trade-off
Broker
Producer
Message
Exchange
Bindings
Queues
Ack
102. Consumer Acknowledgement
Mechanism for consumers to confirm successful delivery and processing
of messages
Consume
No-Ack Consume without acknowledge
Ack Acknowledge message
Multi-Ack Acknowledge multiple messages at once
Reject
Reject Reject individual, delivered message
Nack Reject messages in bulk
Increasing levels of message reliability
make a performance trade-off