Spring Cloud Stream Kinesis Binder consumer High Availability using dynamoDB

42 Views Asked by At

I see the below statement in kinesis binder documentation.

Consumer Groups

Consumer groups are implemented with focus on High availability, Message ordering and guaranteed Message delivery in Spring cloud stream. A single consumer for the message is ensured by consumer group abstraction.

To have a highly available consumer group for your kinesis stream:

Ensure all instances of your consumer applications use a shared DynamoDbMetadataStore and DynamoDbLockRegistry (See below for configuration options).

Use same group name for the channel in all application instances by using property spring.cloud.stream.bindings.<bindingTarget>.group.

I plan to have kinesis stream running on two regions and have 2 consumer application using spring cloud stream kcl binder.

In this case do I need to create DynamoDbMetadataStore and DynamoDbLockRegistry tables as global tables in order to for us to seamlessly switch the region consumer side and consume from kinesis datastream in another region?

What exactly does it mean by shared DynamoDbMetadataStore and DynamoDbLockRegistry in case of consumers from different regions? please conform if it is same as making them global tables.

Thanks in Advance.

0

There are 0 best solutions below