Asynchronous 服务器端活动的异步日志记录

Asynchronous 服务器端活动的异步日志记录,asynchronous,logging,Asynchronous,Logging,我有一个web服务器,它在每次请求时都会生成一个日志,该日志应该持久保存在数据库中 由于请求速率太高,我无法对每个请求进行DB操作 我想做以下事情: 对web服务器的任何请求都会生成日志 此日志放置在可以快速存储的位置(redis?) 另一个服务(cron作业?)定期从该位置刷新数据,删除重复项(是的,可能存在不需要存储在数据库中的重复项),并进行单个MySQL查询以永久保存数据 实现这一点最有效的方法是什么?通常,您会使用一个通用的日志库(例如log4j),它将管理安全地将日志语句写入文件。但

我有一个web服务器,它在每次请求时都会生成一个日志,该日志应该持久保存在数据库中

由于请求速率太高,我无法对每个请求进行DB操作

我想做以下事情:

  • 对web服务器的任何请求都会生成日志
  • 此日志放置在可以快速存储的位置(redis?)
  • 另一个服务(cron作业?)定期从该位置刷新数据,删除重复项(是的,可能存在不需要存储在数据库中的重复项),并进行单个MySQL查询以永久保存数据

  • 实现这一点最有效的方法是什么?

    通常,您会使用一个通用的日志库(例如log4j),它将管理安全地将日志语句写入文件。但是,您应该注意,日志详细性仍然会影响应用程序性能


    文件放在磁盘上后,您可以对其执行任何操作-将该文件接收到Splunk中进行进一步处理和特别搜索/警报是完全正常的。

    如果您想在该操作中获得更好的性能,您应该将日志发送到某种队列,并使用读取该队列的服务,将所有日志发送到数据库。 我在mysql中找到了一些关于队列的信息。 问候