写点什么

Netflix Log4J 优化大规模日志记录

  • 2012-12-10
  • 本文字数:785 字

    阅读完需:约 3 分钟

经过 Netflix 内部优化的 log4j 版本——Blitz4j已经发布到Github 。与其他更传统的日志技术相比,Blitz4j 能够在大规模并发和流量拥挤的环境下高效生成日志,而且消耗的资源更少。这是通过重写log4j 中可能发生同步和死锁的代码部分实现的。

Netflix 对 log4J 的修改包括:

  1. 移除所有关键的同步,使用并发数据结构。
  2. 为内存缓冲区和工作线程提供强大的配置能力。
  3. 使用执行者池模型替换等待 - 通知模型,进一步隔离应用程序线程和日志线程。
  4. 通过可配置的摘要信息在日志高峰期更好地处理日志消息。

Netflix 宣称,使用 Blitz4j 时每秒钟记录 300 到 500 行日志的开销至少降低了75% ,同步相关的处理器使用峰值也完全消失了。现在,即使在高使用量和高日志量的情况下,应用程序也能在一个可接受的时间内做出响应。

随着交易量和每个实例日志需求的增加,Netflix 注意到log4j 消耗的资源越来越多,延缓了它所记录的进程的速度。因为对log4j 的大量投入,他们难以下定决心转移到像LogBack 这样不同的日志技术;相反,他们选择了重写log4j,为无阻塞和异步的日志进行了定制。 Log4j 框架并没有太大的变动;只有影响伸缩性的地方做了修改。

Netflix 的 Karthikeyan Ranganathan 认为,对于刚起步的项目而言 Blitz4j 可能并不是最好的选择。LogBack 是 log4j 团队开发的一个产品,它解决了 Netfliex 团队所关心的很多问题。在这方面,没有使用传统 log4j 框架或者基于slf4j 构建的项目应该考虑使用LogBack 而不是Blitz4j。但是对于在log4j 上有大量投入的公司而言,Blitz4j 是能够记录因特网规模日志的正确选择。

英文原文地址 Netflix Log4J Optimizations Yield Logging at Massive Scale


感谢臧秀涛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2012-12-10 07:324121
用户头像

发布了 321 篇内容, 共 119.6 次阅读, 收获喜欢 19 次。

关注

评论

发布
暂无评论
发现更多内容

没想到,学习带给我最宝贵的东西是底气

Sandy

音频特征提取方法和工具汇总

行者AI

音视频

什么是区块链挖矿?区块链怎么挖矿?

v16629866266

侵犯商业秘密罪律师提醒区块链技术与商业秘密的安全保管

CECBC

时间戳

第1周架构方法总结

Richard

UML 需求分析 概要设计 软件架构设计 详细设计

分布式批量任务调度、自动化运维管理监控平台Taskctl

敏捷调度TASKCTL

kettle 分布式系统 海豚调度 自动化部署 ETL

产品风控:短信验证码的风控策略

香芋味的猫丶

短信防刷 产品安全 短信验证码 短信防轰炸 短信防火墙

霸榜各个网站的阿里独有的高并发高并发手册:Netty、Redis、Zookeeper,看完惊呆了!

996小迁

redis zookeeper 架构 面试 Netty

数智化浪潮之中,传统企业如何抓住转型机遇?

京东科技开发者

DevOps

助力金三银四跳槽季,《Java面试突击版》第四版强势来袭

Java架构之路

Java 程序员 架构 面试 编程语言

波场链DAPP软件APP开发|波场链DAPP系统开发

系统开发

2020年度编程语言排行榜 C语言称霸,Java遭遇滑铁卢?

架构精进之路

编程语言 28天写作

跪了!Alibaba内部出品贼火的Java面试手册,全面对标蚂蚁金服、头条、拼多多等

Java架构之路

Java 程序员 架构 面试 编程语言

理财之我见

三石

理财 28天写作

赫拉利其人其书之我见(2)

石君

28天写作 简史 科技简史

腾讯十年,总结出这份Java架构师知识路线,保你稳拿40k+

Java架构追梦

Java 面试 架构师成长笔记 金三银四 全栈知识点

区块链技术应用新阶段有五大趋势

CECBC

比特币 区块链 数字货币

SpringCloud 从入门到精通 05--- 订单模块

Felix

LeetCode题解:236. 二叉树的最近公共祖先,递归,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

ArgoCD + KubeVela:以开发者为中心的 GitOps

阿里巴巴云原生

阿里云 开源 容器 云原生 k8s

博弈论 - 海盗分金

石云升

博弈论 28天写作 海盗分金

小马哥刷LeetCode 1480. 一维数组的动态和

小马哥

Java 面试 数据结构与算法 28天写作

全面开创城市数字经济新时代

CECBC

数字经济

案例研究之聊聊 QLExpress 源码 (三)

小诚信驿站

刘晓成 小诚信驿站 28天写作 QLExpress源码 聊聊源码

DAPP智能合约交易系统开发、DAPP系统开发的详细解释

W13902449729

DAPP智能合约交易系统开发 DAPP系统开发

学习,不是一件一蹴而就的事情

Sandy

分布式全链路灰度发布的探索与实践

阿里巴巴云原生

阿里云 微服务 运维 云原生 中间件

凭借这份Java超硬核面试 “备战” 手册!我刚面试完字节跳动、阿里、华为、小米等后端岗位

Java架构之路

Java 程序员 架构 面试 编程语言

花火交易所系统开发、雷达模式系统搭建开发

W13902449729

花火交易所系统开发 雷达模式系统搭建开发

不交“人脉”交朋友:新荣耀的底气与新机

脑极体

助力ARM生态 —Dragonwell新增aarch64支持

阿里云基础软件团队

Netflix Log4J 优化大规模日志记录_Java_Harry Brumleve_InfoQ精选文章