首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建日志消息缓冲区的最佳选项是什么

创建日志消息缓冲区的最佳选项是什么
EN

Stack Overflow用户
提问于 2016-09-13 14:38:38
回答 1查看 280关注 0票数 0

我正在开发一个需要部署到云中的web应用程序。有一种云服务可以安全地存储应用程序的日志消息。这是通过使用REST API的云暴露出来的,该API可以采用最多25条json格式的日志消息。我们目前正在使用log4j(对任何其他文件也是开放的)来登录文件。现在,我们需要将我们的应用程序从基于文件的日志记录迁移到使用cloud REST API。

我正在考虑为每条日志消息调用REST API会很昂贵,并且会降低应用程序的速度。

在这种情况下,我正在考虑编写一个可以写入缓冲区的自定义附加器。buffer可以是内存中的缓冲区,也可以是持久性缓冲区,它会被单独的线程或进程定期读取和清空,方法是将25条消息捆绑发送到cloud REST API。

选项1:

使用内存缓冲区,我的自定义附加器会将消息写入内存列表中,并不断填充它。将有一个守护程序线程,它将保持一次从缓冲区中删除25条消息,并使用REST API写入云。这种方法有一个缺点,即在应用程序/服务器/节点崩溃的情况下。我们丢失了关键日志消息,这可能导致对崩溃原因的诊断。我不确定这是否是正确的思考方式。

选项2:

使用持久缓冲区数据库/消息队列:

附加器可以将消息临时记录到数据库表或post到消息队列,消息队列将由单独的长时间运行的作业处理,以便从数据库或队列中提取消息并使用REST API将其发布到云中。

请指导一下哪个选项看起来最好。

EN

回答 1

Stack Overflow用户

发布于 2016-09-13 16:24:43

在log4j:https://logging.apache.org/log4j/2.x/manual/appenders.html中的附加器中有很多构建,如果您在云中使用专用服务,它们可能会给出特定的附加器。如果它在您的环境中,也许可以尝试使用带有log4j rollingfile apender的ELK之类的堆栈,使用该技术您不会丢失日志条目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39463645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档