将审计和记录与响应时间分开 - 设计

时间:2012-04-07 06:18:07

标签: database java-ee

我有一个简单的基于Web的应用程序场景,发送请求并从Database.Response获取响应将有非常多的行,一次说大约10,000到20,000条记录。

我为所有transaction.i.e.Inserting进入所有此类响应的数据库设计了审计日志。一次10,000到20,000行。

因为,插入表只是为了审计目的。我可以通过某种方式将审计和记录与正常响应分开吗?有什么方法可以区分它们?

任何有关设计的帮助都会非常明显。

先谢谢。

2 个答案:

答案 0 :(得分:1)

通常,Web应用程序在同步Web请求中执行过多工作是个坏主意。 Web服务器(和Web应用程序服务器)旨在为大量并发请求提供服务,但假设每个请求只需几毫秒即可执行。不同的服务器具有不同的线程策略,但只要您有长时间运行的请求,您就可能因线程管理而遇到开销,然后您可以非常快速地找到您的Web服务器,从而减慢到出现的程度碎。

在一个Web请求中读取或写入数十万行几乎肯定是个坏主意。您可能希望将应用程序设计为使用异步工作队列。有几种解决方案;在Java生态系统中,您可以查看vert.x

在这些异步模型中,审核非常简单 - 您的审核员订阅与"写入数据库相同的消息队列"监听器。

答案 1 :(得分:0)

结帐 log4j2 ,以便进行审核和记录。

  

这可以通过在log4j2.xml中拥有两个appender来轻松完成。

参考访问:

https://logging.apache.org/log4j/2.x/manual/appenders.html