Spring Cloud Stream AWS Kinesis Binder: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 52: Line 52:
==Headers==
==Headers==


As a side effect of simply sending the message, the "id" and "timestamp" headers are added by the [[Spring Messaging]] layer:
As a side effect of simply creating the message, the "id" and "timestamp" headers are added by the [[Spring Messaging]] layer:


  "id" -> "4a96cc04-1116-94de-268b-d442b0e86683"
  "id" -> "4a96cc04-1116-94de-268b-d442b0e86683"
  "timestamp" -> "1545163131036"
  "timestamp" -> "1545163131036"
The "contentType" header is added by interceptor, in pre-send.
As part of the sending sequence, the headers are (by default) "embedded" and serialized together with the payload. Other header modes are possible (see org.springframework.cloud.stream.binder.HeaderMode). See org.springframework.cloud.stream.binder.AbstractMessageChannelBinder serializeAndEmbedHeadersIfApplicable().


=Consumer Group Support=
=Consumer Group Support=

Revision as of 20:08, 18 December 2018

External

Internal

Overview

Dependencies

dependencies {
    implementation('org.springframework.cloud:spring-cloud-stream-binder-kinesis:1.0.0.RELEASE')
}

Playground Examples

Playground Kinesis Producer
Playground Kinesis Consumer

Message Propagation

SpringCloudStreamAmazonKinesisBinder.png

Payload

The payload passed to the message as follows:

MessageChannel outputChannel = ...;

String payload = "..."
Message m = new GenericMessage<>(payload);
outputChannel.send(m);

is recovered at the other end as follows:

@StreamListener(InputChannelFactory.INPUT_CHANNEL_NAME)
public void handle(Message<String> e) {
  String payload = e.getPayload();
}

Headers

As a side effect of simply creating the message, the "id" and "timestamp" headers are added by the Spring Messaging layer:

"id" -> "4a96cc04-1116-94de-268b-d442b0e86683"
"timestamp" -> "1545163131036"

The "contentType" header is added by interceptor, in pre-send.

As part of the sending sequence, the headers are (by default) "embedded" and serialized together with the payload. Other header modes are possible (see org.springframework.cloud.stream.binder.HeaderMode). See org.springframework.cloud.stream.binder.AbstractMessageChannelBinder serializeAndEmbedHeadersIfApplicable().

Consumer Group Support

Also see:

Spring Cloud Stream Consumer Groups

Configuration

Stream Auto-Creation

1.0.0 cannot be configured to fail on inexistent stream, instead of creating it. See org.springframework.cloud.stream.binder.kinesis.provisioning.KinesisStreamProvisioner line 135.

Also see

Spring Integration Configuration