跨多个服务器实例更新静态变量

时间:2015-10-22 07:30:25

标签: java server

  1. 我有一个静态变量,我通过管理控制台更新静态变量和数据库中的信息。
  2. 问题是我们有多个服务器实例。
  3. 当我通过一个服务器实例更新信息时,它会正确更新值,但问题是静态变量。
  4. 静态变量在服务器实例中更新,我通过该实例添加数据但不在其他服务器实例中。
  5. 我可以在某个周期时间跨度内更新静态变量,但是还有其他方法可以处理这个问题。

    提前致谢: - )

2 个答案:

答案 0 :(得分:0)

  1. 您可以在应用程序中创建后台进程,以指定的时间间隔轮询DB以获取此值。 它是最简单,最快捷的方式,但效率不高。
  2. 您可以使用发布/订阅机制将此值推送到所有服务器。在大型系统中,它可以是zookeeper或一些JMS代理。如果系统不是那么大,你可以寻找一些嵌入式发布/订阅解决方案。

答案 1 :(得分:0)

您可以将静态变量存储在缓存中,而不是存储在每个服务器实例中。 每个服务器实例都从缓存中检索静态变量。

直接将静态变量更新为DB,然后重新加载缓存。