Streams for reactive microservices
Spring Cloud Stream provides an abstraction over the messaging infrastructure. The underlying messaging implementation can be RabbitMQ, Redis, or Kafka. Spring Cloud Stream provides a declarative approach for sending and receiving messages:
As shown in the preceding diagram, Cloud Stream works on 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 example shown in the diagram, 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, while at one end, Source.OUTPUT
points to MyQueue
, on the other end, Sink.INPUT
points to the same MyQueue
.
Spring Cloud offers...