我有一个问题,一个产品,我正在进行的工作。本质上,在服务器启动时从数据库中检索到一些非常常用(而且更新很少)的信息。我们不希望每次需要这些信息时都查询数据库,因为它非常频繁。有一种方法可以通过应用程序(仅通过管理员)更新此信息。当使用此方法时,更新数据库中的数据,并更新该单个服务器(4中的1)中缓存的数据。不幸的是,如果用户击中任何其他服务器,他们将看不到更新的信息。然而,重新启动集群解决了这个问题,这对于我们的生产环境来说并不是一个可行的解决方案。现在我已经解释了情况,我愿意听取建议。谢谢您抽时间见我。
发布于 2014-01-16 18:30:51
对于一个简单的解决方案,您可以转到管理控制台中的集群并启动它。这样节点就会优雅地停止/恒星化,一次一个节点。唯一的影响是当它工作时,容量减少了25%。
发布于 2014-01-16 16:09:04
有一个动态缓存,您可以使用它来存储WebSphere对象。缓存可以设置为在复制域中使用复制,这样就可以在集群之间共享它。
您的代码将使用DistributedMap接口与缓存交互。动态缓存的所有设置都可以包含在应用程序中,或者可以预先配置。示例包含在javadoc链接中。
发布于 2014-01-16 15:11:14
(类似于Java应用程序-集群环境中的作用域变量(Websphere)?)
也就是说,我认为标准答案是“分布式对象存储”。但是,一个粗略的替代(我们使用)是配置一个服务器列表:端口组合,以联系通知每个集群成员更新他们自己的数据副本。
https://stackoverflow.com/questions/21164827
复制相似问题