Streams for reactive microservices
Spring Cloud Streams provides an abstraction over the messaging infrastructure. The underlying messaging implementation can be RabbitMQ, Redis, or Kafka. Spring Cloud Streams provides a declarative approach for sending and receiving messages.
As shown in the preceding diagram, the Cloud Streams work with the concept of a Source and a Sink. The Source represents the sender perspective of the messaging, and Sink represents the receiver perspective of the messaging.
In the given example, the Sender defines a logical queue called Source.OUTPUT
to which the Sender sends messages. The Receiver defines a logical queue called Sink.INPUT
from which the Receiver retrieves messages. The physical binding of OUTPUT
to INPUT
is managed through the configuration. In this case, both link to the same physical queue, MyQueue
on RabbitMQ. So, at one end, Source.OUTPUT
will be pointed to MyQueue
, and on the other end, Sink.INPUT
will be pointed to the same MyQueue
.
Spring Cloud...