我找到了一个制作人:P1
它创建像这样的事件:
Event:
- id: uuid
- aggregateId: uuid
- payload: json
我还得到了消费者:C1
,C2
,C3
kubernetes有可能会创建更多如果他们不需要,消费者或杀死他们。
目标:
- 我想有相同的
aggregateId
所有事件传递给同一消费者。 例如,
aggregateId
是动态的它只是userid
或moneyTransferId
等。所以它不能预先定义。
如果任何消费者关闭了相同
aggregateId
的所有事件应该从现在传递给另一个消费者如果新的消费者将发生新的事件与未分配的
设置的任何消费者集(包括新消费者集)aggregateId
应该传递给根据load
问题是否可以在Apache Kafka中设置?
是的,你可以在你的生产者中重写Kafkapartitioner.class
来使用记录内容,而不是缓存键的默认行为。
或者您可以将aggregateId
设置为记录的键,这就是要进行分区的。
消费者组中仍然只能分配一个分区给消费者,并且消费者不能多于分区。