【发布时间】:2019-09-03 08:25:15
【问题描述】:
我有一个应用程序,其中基于用户登录、用户的中间操作(可选)和用户注销等用户操作在 Kafka 主题上发送事件。每个事件在事件对象中都有一些信息以及 userId ,例如登录事件有 loginTime;添加注释有注释(中间操作)。类似地,注销事件具有 logoutTime。要求是在收到每个用户的注销事件后将所有这些事件的信息聚合到一个对象中并将其发送到下游。
由于某些原因(网络延迟,多个事件生产者)事件可能没有按顺序出现(用户注销事件可能先于中间事件),那么问题是如何处理这种情况?收到用户注销事件后,我不能等待中间事件,因为中间事件是可选的,具体取决于用户的操作。
我认为这里唯一的选择是在接收到用户注销事件后等待一段时间,如果在该等待时间内接收到中间事件并发送已处理的事件,则处理中间事件,但再次不确定如何实现这一点。
【问题讨论】:
标签: apache-kafka apache-kafka-streams