实际上,我正在尝试使用Hazelcast来提供缓存数据的原型。 Hazelcast部署在弹簧启动微服务中。
我们使用分布式查询来搜索具有键的部分值的条目。
我们的基础设施目前只能提供一个微服务实例。该映射已在数据库中使用MapStore实现进行持久化。
如果微服务关闭,我们将丢失内存中的所有数据,并且分布式查询不会返回任何结果。使用loadAllKeys()等通过MapStore初始化内存中的数据不是一种方法,因为我们将在数据库中加载大量条目。
作为临时解决方案,我们直接查找数据库。它肯定不是最好的解决方案,但它暂时起作用。我们希望有一个正确的解决方案。有没有人知道如何做到这一点?
最佳
答案 0 :(得分:0)
如果关闭群集并使用loadAllKeys()
重新填充,则会以数据库可以处理的速度运行。如果时间太长,那是因为数据库太慢了。
找到更快的持久存储是真正的答案,尽管减少中断次数也会有所帮助。
后者需要设计思路,例如便携式对象允许内存中的数据在不重新加载的情况下更改格式。