redis - 用于流应用程序的时间序列窗口

标签 redis apache-storm complex-event-processing data-pipeline data-lake

我们正在使用 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/

相关文章:

java - Apache Storm - 如何在生产集群中排除 Maven 中的storm jar

java - Apache Storm - log4j2 始终打印自己的日志,即使我关闭根记录器

java - 监视一系列事件一段时间,然后做出决定

java - Drools Fusion 支持持久的、长时间运行的事件

redis - 以下示例最适合哪种 Redis 数据类型

json - 从微服务返回大数据的最快机制

java - 非分布式场景下的 Apache Storm

mysql - LAMP 开发人员如何开始使用 Redis/Node.js 解决方案?

java - Jedis 改变 Redis 的语义?

wso2 - 用 Siddhi 编写序列查询