我们正在与Kinesis合作,我们有一个单一的生产者(一个流,目前是一个分片),以及一个消费者应用程序(位于HA中)(目前有2个实例)。
现在,我们看到使用者应用程序的每个实例都接收到每个消息。我们想更改它-只有一个实例会收到每条消息。
生产者根据“ accountId”对数据进行分区,我们希望消费者的每个实例都可以接收这些帐户ID的子集。
我们在消费者应用程序的配置中添加了“组”部分-但它仍然无济于事,每条消息仍然重复。
那么首先-有可能吗?拥有比碎片更多的消费者,并且仍然划分数据?还是我们需要碎片数量> =消费者数量? 和秒-我们在做什么错了?
这是配置:
spring:
data:
mongodb:
host: X
port: X
database: X
parameters: retryWrites=true&w=majority
redis:
repositories:
enabled: false
cloud:
stream:
bindings:
input:
destination: streamName
content-type: application/json
group: groupName
kinesis:
binder:
checkpoint:
table: dynamo-checkpoint-table
locks:
table: dynamo-locks-table
提前谢谢!