Kafka Streams:识别物品何时离开区域并在以后返回

时间:2018-12-04 17:06:12

标签: architecture apache-kafka-streams

我有一个RFID应用程序,可获取区域内传感器的恒定消息。该区域按阅读器划分区域(例如100m X 100m正方形,内部有10m ^ 2区域),但也使用RSSI。例如,如果阅读器1拾取的RSSI值高于该阅读器的设置阈值,则该物品几乎肯定在该区域内。

消息将包括sensor_id,reader_id,rssi,时间,并在充实后的稍后,customer_id(customer_id可能有许多reader_id)

我将收到位置消息流,并通过组合键(sensor_id,customer_id)将位置消息存储在Ktable中,并且该值将包括Visited_at,last_message_at,持续时间。

  • KStream消息,通过与customer_id和阈值rssi的联接来丰富
  • 使用rssi>阈值进行过滤
  • 映射(或转换?)以获取组合键和自定义值
  • 通过组合键存储在KTable中

我需要能够确定某项何时离开某个区域(应该只是何时移至另一个customer_id),但是那一刻,我需要将该记录刷新并存储在我们的主数据库中,即该传感器ID X停留在客户Y的时间为Z。我不确定如何实现这一目标。

我遇到的问题是项目将从一个ID移到另一个ID,然后可能返回到先前的ID。如果发生这种情况,它们必须是2个单独的事件。我很难理解这个方面,因为它包括kstream的提交间隔(我认为吗?)。

我是否在愚蠢地思考提交间隔是否调整得不正确,以至于有可能访问该区域被切断?例如,我是客户Y的传感器X,我将在这里待十分钟,但ktable会刷新5分钟。

0 个答案:

没有答案
相关问题