在多个应用程序之间共享hazelcast缓存,并使用回写和读取

时间:2019-10-24 07:21:28

标签: hazelcast distributed-caching hazelcast-imap

问题-我可以在使用地图存储和地图加载程序的回写和读取功能时在多个应用程序之间共享相同的hazelcast群集(缓存)

详细信息

  • 我在企业环境中拥有多个应用程序,并且想要使用单个缓存
  • 我有多个应用程序(微服务),即APP_A,APP_B和APP_C彼此独立。
  • 我正在运行每个应用程序的一次实例,每个节点将成为集群的成员节点。
  • APP_A具有MAP_A,APP_B具有MAP_B,APP_C具有MAP_C。每个应用程序都有用于各自地图的MapStore。
  • 如果客户端发送命令 instance.getMap(“ MAP_A”)。put(“ Key”,“ Value”)。这具有一些不一致的行为。有时候我看到数据在数据库中是持久的,但有时不是。

注意-我希望在所有应用程序中使用相同的hazelcast实例,以便使应用程序A可以访问应用程序B中的数据,反之亦然。

我假设这是由于处理请求的节点引起的。如果请求是由节点A处理的,那么它将正常工作,但是如果请求是由节点B或C处理的,则失败。我假设这是由于Mapstore_A的实现在节点B和C中不可用。

我做错什么了吗?我们可以做些什么来克服这个问题?

谢谢。

1 个答案:

答案 0 :(得分:2)

Hazelcast是一个群集解决方案。如果群集中有多个节点,则在发生数据重新平衡时,每个节点中的数据可能会在一个地方移动。

因此,地图存储和地图加载器操作可以在任何节点上进行。

因此群集中的所有节点都需要具有连接数据库的相同功能。