Kafka连接消息订购

时间:2016-11-19 09:08:20

标签: apache-kafka apache-kafka-connect

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

1 个答案:

答案 0 :(得分:1)

每个接收器任务将从其分配的主题中接收可用的有序事件,但是一旦离开Kafka协议处理并将其发送到远程目标(无论是文件端点还是HTTP端点),则命令只能是保证基于该系统的排序语义。

例如,如果您正在写Elasticsearch,则可以通过指定要作为索引依据的时间戳字段来“排序”事件(在Kibana中)。与任何(无)SQL数据库相似

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

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