我目前正在处理的产品存在问题。本质上,在服务器启动时从数据库中检索到一些非常常用(并且很少更新)的信息。我们不希望每次需要此信息时都要查询数据库,因为它非常频繁。有一种方法可以通过应用程序更新此信息(仅限管理员)。使用此方法时,将更新数据库中的数据,并更新该单个服务器中的缓存数据(1/4)。不幸的是,如果用户点击任何其他服务器,他们将看不到更新的信息。但是,重新启动集群可以解决问题,这对我们的生产环境来说不是一个可行的解决方案。既然我已经解释了这种情况,我愿意接受建议。感谢您的时间。
答案 0 :(得分:1)
IBM WebSphere Application Server具有可用于存储Java对象的动态高速缓存。可以将缓存设置为在复制域上使用replication,以便可以跨群集共享缓存。
您的代码将使用DistributedMap接口与缓存进行交互。动态缓存的所有设置都可以包含在您的应用程序中,也可以预先配置。示例包含在javadoc链接中。
答案 1 :(得分:1)
对于一个简单的解决方案,您可以在管理控制台中转到群集并启动它。这样可以优雅地停止/加星节点,一次一个。唯一的影响是在工作时容量减少了25%。
答案 2 :(得分:0)
(类似于Java EE Application-scoped variables in a clustered environment (Websphere)?)
也就是说,我认为标准答案是“分布式对象存储”。但是一个粗略的替代方案(我们使用)将配置一个服务器:端口组合列表来联系,以通知每个集群成员更新他们自己的数据副本。