IMDG中的陷阱和问题

最后更新于:2022-04-01 20:33:11

### 陷阱 使用cache API时,一个最重要的问题就是潜在的数据加载。因为IMDG提供的分布式集合也都是实现的JDK的Map、Set等接口,以JDK的Map为例,它接口规定put和remove返回被替换的对象或删除掉的对象,所以这会导致我们操作缓存时导致与后端存储的通信。所以我们要调用其它版本的API,例如GridGain提供了putx等接口,其返回值是一个布尔值而非旧的对象。 ### 问题 现今的IMDG虽然已经比较成熟,但仍有一些问题需要解决: Ø  冷启动问题:即便是能够并行还原,从后端数据库还原数TB的数据依然需要很久,这段时间是会导致数据库的过载,可能无法为其他应用提供服务。 Ø  缺少CDC能力:还没有一款IMDG产品提供CDC(Change Data Capture)能力,即数据库数据的变化如何反映到IMDG中。现在一般都需要触发器或第三方产品来实现CDC,例如Hazelcast通过第三方Speedment能够监控数据库中的数据变化。 Ø  分布式计算容错:像Impala分布式计算平台直接不提供容错。 ### 参考资料 1 [Hazelcast's MapLoader Pitfalls](http://java.dzone.com/articles/hazelcasts-maploader-pitfalls) 2 [Jags Ramnarayan on In-Memory Data Grids](http://www.infoq.com/articles/in-memory-data-grids)
';