我正在开发一个微型服务。这一管理系统将部署到码头集装箱,并将由库伯内特斯监测。我必须使用hazelcast分布式缓存实现缓存解决方案。我的要求是:
我实现了Spring @EventListener,并在启动时对这两个属性进行数据库调用,并执行@CachePut并将它们存储在Cache中。
我还有一个带有cron表达式的Spring调度程序,可以在早上6点刷新缓存。
到目前一切尚好。
但是,我没有意识到的是,在集群环境中--我的微服务的10-15个实例将在运行中,并且几乎同时尝试执行两个以上的步骤--从而在我的数据库和缓存上产生了踩踏效应。有人知道在这种情况下该怎么做吗?有什么好的设计,甚至一般的设计,我可以遵循吗?
谢谢。
发布于 2018-11-08 04:07:47
您应该考虑使用Hazelcast提供的加载和存储持久数据机制,该机制允许两个写入选项:写入和写入以及读取,用于将数据加载到缓存中。
查找MapLoader及其方法,这些方法将允许您预热/预加载集群,并且您可以使用自己的实现自由地这样做。
https://stackoverflow.com/questions/53201267
复制相似问题