假设我有一个队列在监听包含实时消息Kafka
。
我还有一个"worker",可以从队列中获取消息并对Elasticsearch
执行更新。当我通过添加更多"worker"实例来扩展项目时,如何保持消息的顺序?
如何避免一个"worker"实例从队列中获取较晚的消息,但更早地完成更新Elasticsearch
?
这是您必须在并行处理和排序之间做出的选择。
主题必须具有单个分区才能保持数据的顺序。因此,您最多可以在 worker 中拥有 1 个任务,额外的任务将未分配。