基于优先级的持久性?

时间:2010-06-02 09:03:26

标签: java persistence

我有一个监控应用程序,通过gui显示许多应用程序服务器的状态。它的工作原理是向应用服务器发送状态请求。应用服务器轮流查询所有组件的状态,构建状态响应消息并将该消息发送到监控应用程序。监视应用程序将状态消息中的信息写入数据库,然后数据库显示在GUI上。整个监控应用程序在JavaSE中完成。

我的问题是......数据库因为需要持续存在大量数据而难以跟上。

我想到的解决方案是为状态消息的组件分配优先级,并根据优先级将其保留给数据库。

这个问题可能有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

我想知道,如果您的数据库无法跟上存储数据,那么它可能会对应用程序服务器造成负担,以便继续响应状态请求。

我不知道状态消息中包含哪些信息以及要求是什么。一些选项是:

  • 状态消息可能(几乎) 与以前的状态相同 信息。在这种情况下,你只能 存储新消息或仅存储消息 差异。
  • 在内存中保留更多(最近)消息 并且只持续每分钟/ 10 秒等。
  • 更多地在数据库中保持持久性 高效。也许你可以减少 索引或约束。你也可以 尝试批量处理大量状态 报告(也许保留这些报告 用户界面的内存直到批处理为止 持续)。
  • 减少状态报告消息的数量。 也许某些组件可以被发送消息 不太常见。