3

Kafka Sink 连接器如何在从分区获取消息时确保消息排序。我有多个分区,并且在使用每个分区的散列键发布消息时确保了消息排序。现在,当多个 Sink 任务(及其工作人员)从多个 JVM 扩展并负责从同一分区获取消息并通过 HTTP 通知目标系统时,我如何保证目标系统将按顺序接收消息.

4

1 回答 1

1

每个接收器任务都将从其分配的主题中接收可用的有序事件,但是一旦它离开 Kafka 协议处理,并被发送到远程目的地,无论是文件还是 HTTP 端点,顺序只能根据该系统的排序语义。

例如,如果您正在写入 Elasticsearch,您可以通过指定时间戳字段来“排序”事件(在 Kibana 中)作为索引依据。对于任何(非)SQL 数据库都类似

另一方面,文件系统会按修改时间对文件进行排序,但不能保证对任何给定文件中的事件进行排序(除非它们来自一个分区)。

我发现 HTTP REST 端点不太可能理解需要收集哪些订单事件,并且需要在该服务器端点内部确定该逻辑。一种选择是将事件发布到将接受分区号和记录来自的偏移量的端点

于 2018-09-26T06:17:39.050 回答