Kafka Sink连接器如何在从分区获取消息时确保消息排序。我有多个分区,我确保在每个分区发布带有散列键的消息时进行消息排序。 现在,当多个Jink任务(及其工作人员)从多个JVM扩展,负责从同一分区获取消息并通过HTTP通知目标系统时,如何保证目标系统将按顺序接收消息。
答案 0 :(得分:1)
每个接收器任务将从其分配的主题中接收可用的有序事件,但是一旦离开Kafka协议处理并将其发送到远程目标(无论是文件端点还是HTTP端点),则命令只能是保证基于该系统的排序语义。
例如,如果您正在写Elasticsearch,则可以通过指定要作为索引依据的时间戳字段来“排序”事件(在Kibana中)。与任何(无)SQL数据库相似
另一方面,文件系统会按修改时间对文件进行排序,但是不能保证对任何给定文件中的事件进行排序(除非它们来自一个分区)。
我发现HTTP REST端点不太可能理解需要收集哪些订单事件,并且该逻辑需要在该服务器端点内部确定。一种选择是将事件发布到将接受分区号的端点,记录的偏移量来自