Netflix Log4J 优化大规模日志记录
来源:互联网 发布:php架构师之路 编辑:程序博客网 时间:2024/05/02 07:17
领域
运维 & 基础架构,
语言 & 开发
主题
Java,
Logging
经过Netflix内部优化的log4j版本——Blitz4k已经发布到Github。与其他更传统的日志技术相比,Blitz4j能够在大规模并发和流量拥挤的环境下高效生成日志,而且消耗的资源更少。这是通过重写log4j中可能发生同步和死锁的代码部分实现的。
Netflix对log4J的修改包括:
- 移除所有关键的同步,使用并发数据结构。
- 为内存缓冲区和工作线程提供强大的配置能力。
- 使用执行者池模型替换等待-通知模型,进一步隔离应用程序线程和日志线程。
- 通过可配置的摘要信息在日志高峰期更好地处理日志消息。
Netflix宣称,使用Blitz4j时每秒钟记录300到500行日志的开销至少降低了75%,同步相关的处理器使用峰值也完全消失了。现在,即使在高使用量和高日志量的情况下,应用程序也能在一个可接受的时间内做出响应。
随着交易量和每个实例日志需求的增加,Netflix注意到log4j消耗的资源越来越多,延缓了它所记录的进程的速度。因为对log4j的大量投入,他们难以下定决心转移到 像LogBack这样不同的日志技术;相反,他们选择了重写log4j,为无阻塞和异步的日志进行了定制。Log4j框架并没有太大的变动;只有影响伸缩性的地方做了修改。
Netflix的Karthikeyan Ranganathan认为,对于刚起步的项目而言Blitz4j可能并不是最好的选择。LogBack是log4j团队开发的一个产品,它解决了Netfliex团队所关心的很多问题。在这方面,没有使用传统log4j框架或者基于slf4j构建的项目应该考虑使用LogBack而不是Blitz4j。但是对于在log4j上有大量投入的公司而言,Blitz4j是能够记录因特网规模日志的正确选择。
感谢臧秀涛对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com。也欢迎大家通过新浪微博( @InfoQ)或者腾讯微博( @InfoQ)关注我们,并与我们的编辑和其他读者朋友交流 0 0
- Netflix Log4J 优化大规模日志记录
- 【Log4J】Log4j记录日志配置
- log4j 日志记录
- JAVA日志记录,LOG4J
- Log4j 记录error 日志
- 服务端日志记录log4j
- JAVA log4j记录日志
- 使用log4j记录日志
- log4j日志记录
- 使用log4j记录日志
- log4j日志分类记录
- Log4j日志记录
- 使用log4j记录日志
- log4j日志记录
- 日志记录-log4j
- Log4j 记录error 日志
- log4j-java日志记录
- log4j日志记录级别
- 用非递归的方法实现快速排序
- 【LeetCode】-Reverse Words in a String
- 数字信号处理的学习资源
- 阿里巴巴上市首日上涨38% 市值2314亿美元
- 《Java 7 并发编程指南》学习概要 (6) Fork/Join
- Netflix Log4J 优化大规模日志记录
- Java的HashMap和HashTable
- 输入两个整数值n和m,求出整数1到n之间的和为m的所有组合
- 谁才是阿里巴巴最大的敌人?
- HDU 5038 Grade(2014北京网络赛)
- apk签名和发布流程
- 《数据结构》实验1.1:VC编程环境灵活应用
- Handler了解整理
- Session 的生命周期