我正在尝试开发一种可能有一些所谓的“全局变量”的拓扑,就像问题Distributed caching in storm所做的那样。我知道最好使用某种分布式缓存存储,比如Memcache或Redis,但我仍然有几个问题:
如何更有效地访问缓存数据?好像这不是直接参观execute
或nextTuple
功能缓存是个好主意,我应该创造喷出/螺栓的螺纹得到定期的数据?
MemoryMapState
是一个“状态”,用于在风暴三叉戟中存储持久性结果。据说MemoryMapState
使用ConcurrentHashMap
来存储缓存数据,因为class MemoryMapState
中的代码显示在下面
static ConcurrentHashMap<String, Map<List<Object>, Object>> _dbs =
new ConcurrentHashMap<String, Map<List<Object>, Object>>();
那么,ConcurrentHashMap
如何在Storm集群中的不同机器之间存储和查询数据呢?