我们正在使用 Kafka、storm 和 redis 开发数据管道应用程序。来自不同系统的实时事件将被发布到Kafka,并且storm根据配置的规则进行事件处理。状态在redis中管理。
我们需要在处理不同的事件之前实现不同的 WAIT_TIME。我们正在考虑以下选项。
我们最初研究了 Storm 窗口 [滑动或滚动窗口],但仅提供配置固定间隔的选项。我们需要根据规则改变 wait_time
我们正在探索将事件存储在 redis 缓存中不同持续时间 [TTL] 的其他选项,一旦每个事件被逐出,我们需要回调回 storm 来处理它。
redis 是否支持驱逐回调?使用 storm 和 redis 有更好的方法吗?
最佳答案
我们通过计算每个流式事件的到期时间并将事件根据到期时间 [expiry 作为键] 存储在 redis 中解决了这个问题,在顶部 Storm 调度程序将查询符合驱逐条件的事件并对其进行处理。
关于redis - 用于流应用程序的时间序列窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44925030/