如何在 Apache Storm 集群中维护分布式 HashMap

How to maintain a distributed HashMap in Apache Storm Cluster

我们在 Apache Storm 中有一个用例,我们需要从源系统获取数据,然后对收到的元组执行一些操作,但也想在数据库中查找数据。但是每次对数百万条记录进行数据库调用是不可行的。 那么有没有一种方法可以在启动时加载分布式哈希映射,当在 Bolt 或 Spout 中处理元组时,首先查找此哈希映射,如果该值不存在于 HashMap 中,则进行 Datbase 调用并更新应该可以访问的相应地图。

没有内置任何东西(即没有 运行ning 外部服务)整个拓扑都可以访问,因为您的螺栓可能 运行 在不同的 JVM 甚至不同的主机上。如果您需要分布式缓存,请查看 Redis https://redis.io/.

之类的东西

你可能想看看https://storm.apache.org/releases/2.0.0-SNAPSHOT/State-checkpointing.html,API应该可以做你想做的,并且支持Redis集成。如果不需要检查点功能,当然也可以直接使用Redis。