【发布时间】:2019-04-17 00:08:53
【问题描述】:
我在数据库中有一些数据要读入 2 个缓存:
1.整个json代表一行数据
2. 只是用于快速查询的列子集
我有一个 MapStore,用于使用 json 持久化到第一个缓存。我正在考虑在主 json 缓存上使用 EntryListener,因此当我们在那里添加一个值时,条目侦听器将写入另一个缓存。这种方法听起来不错吗?
【问题讨论】:
标签: java hazelcast distributed-caching
我在数据库中有一些数据要读入 2 个缓存:
1.整个json代表一行数据
2. 只是用于快速查询的列子集
我有一个 MapStore,用于使用 json 持久化到第一个缓存。我正在考虑在主 json 缓存上使用 EntryListener,因此当我们在那里添加一个值时,条目侦听器将写入另一个缓存。这种方法听起来不错吗?
【问题讨论】:
标签: java hazelcast distributed-caching
据我了解,您有第二张地图仅用于查询目的。您可以在第一张地图上使用Indexes 甚至Continuous Query Cache,而根本不需要第二张地图。
【讨论】:
是的,听起来不错。请注意,当您在侦听器中执行长时间运行的操作时,最好将 EntryListener 中的逻辑卸载到另一个线程,而不是阻塞 Hazelcast 中的事件线程。
您也可以考虑使用拦截器:https://docs.hazelcast.org//docs/latest/manual/html-single/index.html#adding-interceptors 同样,如上所述,您还需要为拦截器卸载逻辑。
【讨论】: