3

我有这个问题,我只是把它扔在那里。我正在为基于 Spring 的 REST API 服务器实现一个小型日志记录功能,用于记录所有传入的请求。我希望有 1000 名用户使用此 API,因此使用阻塞 i/o 记录器,它会减慢一切。我有两种方法来解决这个问题: 1. 有一个使用内存中数组的异步记录器。然后使用 spring 调度程序定期将其刷新到日志文件中。2. 使用 JMS 并将日志发送到队列。让队列异步处理日志记录。

有没有人在春天做过这个。虽然我支持选项 2,但有更好的方法吗?需要一些专家的建议。谢谢大家 !

更多信息 - 我认为同步日志记录将是一个瓶颈,因为这个 REST API 由前端 RoR 应用程序使用。因此,用户的一次会话肯定会导致非常频繁地发生 100 次 API 调用。我正在记录实际请求以及 POST 中发送的 JSON。

4

2 回答 2

3

有没有人在春天做过这个。

没那么奇怪,是的 -使用 Spring 进行异步日志记录

文章提到,如果您不希望丢失任何日志事件,那么 JMS 将是可行的方法 - 否则坚持异步对于大量日志记录是有意义的。

于 2012-04-11T12:20:02.267 回答
0

如果你真的想建立自己的记录器,我建议你看看akka,它比 JMS 容易设置得多。

您可以在本地使用它(使用本地机器的所有 CPU 内核),甚至可以与远程代理一起使用。

于 2012-04-11T08:28:02.850 回答