java-系统重新启动后如何处理复制缓存的重新填充
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-系统重新启动后如何处理复制缓存的重新填充,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2549字,纯文字阅读大概需要4分钟。
内容图文
![java-系统重新启动后如何处理复制缓存的重新填充](/upload/InfoBanner/zyjiaocheng/658/d14537622d9f48d990c46c0e10e1ed5b.jpg)
我们有一个集群的应用程序,其核心是缓存.缓存基于从基础数据库(也被复制)构建的计算数据.它用于对流数据进行快速查找,以便即时做出路由决策.
由于可以在集群中的任何节点上更改用于计算缓存的数据,因此我们正在考虑使缓存也被复制,这样我们就不必侦听来自系统中其他节点的复制更改. ,以特定于数据库的方式.
我们已经确定ehcache(infinispan / hazelcast,nearcache是??其他竞争者)是可能的缓存实现.到现在为止还挺好.
我需要知道的是,当单个节点或整个应用程序重新启动时,如何重新填充此缓存.节点所需的所有数据都存在于基础数据库中.那么,每个节点能否在重启后简单地从其数据库加载数据并填充缓存?然后,缓存如何将群集节点置于单一状态?
我知道有磁盘持久性缓存-ehcache是??这样吗?我不想将其用作第一个选项,因为所有数据的单点是数据库,而这是决定哪个数据正确的中心权限.
应用程序是否可以通过一种方法在重新启动时用所有数据重新加载缓存,并使所有缓存执行相同操作并同步增量?我认为这是一件很难的事,可能并不可行,因为所有节点都不会来回发送所有密钥.但是想要确定并且想知道是否还有其他策略可以处理这种情况.
解决方法:
我将尝试从Infinispan的角度提出可能的解决方案.
在您的用例中,我建议使用带有已配置基础缓存存储的Infinispan独立节点集群(客户端-服务器访问,例如通过HotRod).
https://docs.jboss.org/author/display/ISPN/Infinispan+Server及以上
https://docs.jboss.org/author/display/ISPN/Using+Hot+Rod+Server
现在更具体地讲您的问题:
What I need to know is how this cache will be repopulated when the individual nodes or the entire application restarts.
这就是为什么我建议您使用具有远程客户端-服务器访问权限的“独立”群集的原因.您的缓存层不直接取决于您的应用程序.当应用程序重新启动,崩溃,重新部署…时,您仍然在Infinispan群集中缓存了数据,只要您的应用程序再次存在,就可以连接到它.
All the data that a node requires is present in the underlying database. So can each node simply load the data from its database and populate the cache after restarts?
在Infinispan中,是的.节点能够从缓存存储中加载数据.请参阅以下部分:https://docs.jboss.org/author/display/ISPN/Cache+Loaders+and+Stores,尤其是预加载配置元素,该元素用于在缓存启动后将数据从存储库预加载到缓存.
How will the cache then bring the cluster nodes to a single state?
Infinispan中有状态转移.这个新的实现(https://community.jboss.org/wiki/Non-BlockingStateTransferV2)甚至在新节点加入期间也不会再阻塞您的集群.在加入/离开更改之后,状态转移只需要关心您在整个群集中的数据分布.
Is there a way an app can reload the cache with all the data at restart and have all the caches do the same and sync up the deltas?
是的,根据上述所有内容.您可以简单地使用复制,以便将条目复制到所有节点,并且状态是一致的.但是,这种情况对于阅读量大的场景更好.我想在您的情况下,分别具有numberOfOwner的分发模式就足够了.
内容总结
以上是互联网集市为您收集整理的java-系统重新启动后如何处理复制缓存的重新填充全部内容,希望文章能够帮你解决java-系统重新启动后如何处理复制缓存的重新填充所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。