1

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

我已经为所有事务设计了审计日志记录。即为所有此类响应插入数据库。比如一次 10,000 到 20,000 行。

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

对设计的任何帮助都将是非常可观的。

提前致谢。

4

2 回答 2

1

一般来说,Web 应用程序在同步 Web 请求中做太多工作是个坏主意。Web 服务器(和 Web 应用程序服务器)旨在为大量并发请求提供服务,但假设每个请求只需几毫秒即可执行。不同的服务器有不同的线程策略,但是一旦你有长时间运行的请求,你很可能会因为线程管理而遇到开销,然后你很快就会发现你的 Web 服务器速度变慢到出现故障的地步。

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

在这些异步模型中,审计很简单——您的审计员订阅与“写入数据库”侦听器相同的消息队列。

于 2017-09-27T15:07:38.523 回答
0

出 log4j2以分离审计和日志记录。

这很容易通过在 log4j2.xml 本身中有两个附加程序来完成。

参考访问:

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

于 2017-09-27T14:55:29.963 回答