如何在apachestorm集群中维护分布式hashmap

fnx2tebb  于 2021-06-24  发布在  Storm
关注(0)|答案(1)|浏览(348)

我们在ApacheStorm中有一个用例,我们需要从源系统获取数据,然后对接收到的元组执行一些操作,但也希望在数据库中查找数据。但是每次对数百万条记录进行数据库调用是不可行的。因此,有没有一种方法可以让我们在启动时加载一个分布式哈希Map,当元组在bolt或spout中处理时,首先查找这个哈希Map,如果哈希Map中不存在该值,那么进行datbase调用并更新相应的Map,该Map应该可以通过访问。

c6ubokkw

c6ubokkw1#

由于您的bolt可能运行在不同的jvm中,甚至运行在不同的主机上,因此没有任何内置的(即不运行外部服务)可以访问整个拓扑。如果你需要一个分布式缓存,可以看看redis之类的东西https://redis.io/.
你可能想看看https://storm.apache.org/releases/2.0.0-snapshot/state-checkpointing.html,api应该可以做你想做的事情,并且支持redis集成。如果不需要检查点功能,当然也可以直接使用redis。

相关问题