Spring Cloud Stream: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
Line 3: Line 3:
* https://cloud.spring.io/spring-cloud-stream/
* https://cloud.spring.io/spring-cloud-stream/
* https://cloud.spring.io/spring-cloud-stream-app-starters/
* https://cloud.spring.io/spring-cloud-stream-app-starters/
* Spring Cloud Stream Core https://docs.spring.io/spring-cloud-stream/docs/Elmhurst.RELEASE/reference/htmlsingle/#_spring_cloud_stream_core
* Reference Spring Cloud Stream Core https://docs.spring.io/spring-cloud-stream/docs/Elmhurst.RELEASE/reference/htmlsingle/#_spring_cloud_stream_core


=Internal=
=Internal=

Revision as of 21:01, 23 October 2018

External

Internal

Overview

Spring Cloud Stream is a framework for building highly scalable event-driven microservices connected with shared messaging systems. Spring applications use Spring Cloud Stream libraries to bind to a messaging middleware. Spring Cloud Stream builds upon Spring Boot to create standalone production-grade applications and uses Spring Integration to provide connectivity to message brokers.

Concepts

Destination Binder

The component responsible to provide integration with external messaging systems. Available binders:

Destination Binding

Bridge between the external messaging system and application-provided Producers and Consumers of messages. The Producers and Consumers are created by the Destination Binders.

Interfaces

Source

Sink

Input and no output.

public interface Sink {
  String INPUT = "input";

  @Input(Sink.INPUT)
  SubscribableChannel input();
}

Processor

Channel

Input Channel

An input channel funnels received messages into the application

Output Channel

Published messages leave the application via output channels.

Destination

The destination can be a queue, topic, or others.

Message

The canonical data structure used by Producers and Consumers to communicate with Destination Binders, and thus other applications via external messaging systems.

Message Handler

Is this the same thing as the handler method?

@StreamListener(Sink.INPUT)
public void handle(...) {
...
}

Also see @StreamListener.

Annotations

Persistent Publish/Subscribe

Consumer Group

Partition