淡褐色 | IMap 上的操作是分布式的还是非分布式的?

HazelCast | operation over IMap is distributed or not?

我有一个 class 对 IMap<...> 执行操作。

public class CacheOperation
{
private IMap<Integer,String> cache;

 public CacheOperation(IMap<Integer,String> cache)
 { 
   this.cache=cache;
 }

 //api for get operation with/without lock over the key
 //api to delete data with lock
 //api to save data with lock over the key
 //...
}

我在 class 中定义了各种方法,它们对 IMap 执行操作。 IMap 实例在创建 CacheOperation Bean 时填充。

@Bean
public CacheOperation cacheOperation(ClientConfig config )
{
    HazelcastInstance instcance=HazelcastClient.newHazelcastClient(config);
    return new CacheOperation(instcance.getMap("mapName"))
}

我的问题是,如果我在 IMap 上执行任何操作,它是否总是在分布式缓存上执行? 或者我是否需要为每个操作从 HazelcastInstance 获取 IMap 的引用。 对此的任何想法都会有所帮助。

是的,您可以依靠使用单个 IMap 实例(每个地图,名称唯一),它将保持一致并始终在分布式缓存中运行。

你的 CacheOperation bean 和依赖注入配置对我来说很好。

作为参考,IMap documentation 将自己描述为 并发、分布式、可观察和可查询的映射 - 它真的就这么简单。