首页 > 解决方案 > 如何在 Apache Storm Cluster 中维护分布式 HashMap

问题描述

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

标签: apache-stormapache-storm-topology

解决方案


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

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


推荐阅读