我正在开发微服务。该MS将部署到docker容器中,并由Kubernetes进行监视。我必须使用hazelcast分布式缓存实现缓存解决方案。我的要求是:
我实现了Spring @EventListener并在启动时对这2个属性进行数据库调用,并执行@CachePut并将其存储在Cache中。
我还有一个带有cron表达式的Spring调度程序,可以在每天早上6点刷新刷新缓存。
到目前为止很好。
但是我没有意识到在集群环境中-我的微服务的10-15个实例将在起作用,并且几乎同时尝试执行上述两个步骤-从而对我的数据库和缓存产生踩踏效果。有谁知道在这种情况下该怎么办?有什么好的设计甚至是我可以遵循的平均设计吗?
谢谢。
答案 0 :(得分:0)
您应该使用Hazelcast提供的“加载和存储持久数据”机制,该机制允许两种写入方式:直写和后写以及 read -through 将数据加载到缓存中。
寻找 MapLoader 及其方法,这将使您能够预热/预加载集群,并且可以自由地通过自己的实现进行操作。