主题包含10个分区,不同的IoT设备每隔3到4秒就会生成一次消息。消息上的关键字是LocationId,而DeviceId.The值是与设备相关的详细信息。
流拓扑部署到4个EC2实例。该过程必须确定每个设备的最新更新值,并分析关键程度。
我看到的是,由于消息分布在多个分区上,流消费者看到的是较旧的消息,它们没有按顺序排列。
如何确定特定密钥的最新消息?
我在Kafka集群上看到以下消息行为-
L1D1 at 1:00 am - critical=false (P1)
L2D2 at 1:00 am - critical=false (P1)
L1D1 at 1:02 am - critical=**true** (P2)
L2D2 at 1:05 am - critical=false (P1)
L1D1 at 1:03 am - critical=false (P2)
L2D2 at 1:03 am - critical=false (P1)
请注意,在1:02,device D1有一个严重警报,但在1:03没有。如果流处理消息的时间是1:03,1:02 (基于分区的任意随机顺序)
由于订单不能保证,如何有效地确定特定设备的最新消息?
发布于 2019-06-26 04:53:30
您的流处理策略是什么?KSQL还是SDK?如果你使用KSQl,你只需要创建一个流/表
查看:https://docs.confluent.io/current/ksql/docs/developer-guide/create-a-table.html
https://stackoverflow.com/questions/56761580
复制相似问题