如果使用MapStore和XA,Hazelcast如何更新持久性

时间:2018-03-02 18:29:28

标签: hazelcast hazelcast-imap

伙计们,我一直在努力寻找一个需要在我的应用程序中支持的简单场景的答案。

想象一下,我的应用程序有一个Hazelcast地图,可以将数据保存到MySQL数据库。为了实现这一目标,我将继续实施MapStore接口。非常好,我达到了要求的耐久性。

但是,某些操作必须以事务方式更新HZ映射和MySQL。根据文档,MapStore不支持这一点,我应该考虑XA。这不是什么大不了的事,也不是什么大事;我可以依靠XA来实现这一目标。

目前尚不清楚HZ将如何考虑现在MapStore和XA都与MySQL“连接”。具体来说,如果我在事务中更新密钥A是否发生1或2:  1.密钥A被持久化两次 - 通过MapStore接口和XA调用。  2. HZ检测到XA出现并跳过对MapStore的调用。

1 个答案:

答案 0 :(得分:1)

如果使用XA事务更新持久性存储,则需要手动禁用MapStore实现。当使用XA事务时,Hazelcast没有任何内部机制来禁用MapStore。如果你不禁用它,你最终可能会持续使用相同的密钥两次。