Spring Cloud Stream AWS Kinesis Binder: Difference between revisions
Line 52: | Line 52: | ||
==Headers== | ==Headers== | ||
As a side effect of simply | 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
- Binder Implementation GitHub https://github.com/spring-cloud/spring-cloud-stream-binder-aws-kinesis
- AWS Kinesis Binder Reference Manual https://github.com/spring-cloud/spring-cloud-stream-binder-aws-kinesis/blob/master/spring-cloud-stream-binder-kinesis-docs/src/main/asciidoc/overview.adoc
- Example GitHub https://github.com/spring-cloud/spring-cloud-stream-samples/tree/master/kinesis-samples
Internal
Overview
Dependencies
dependencies {
implementation('org.springframework.cloud:spring-cloud-stream-binder-kinesis:1.0.0.RELEASE')
}
Playground Examples
Message Propagation
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:
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