写点什么

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:324201
用户头像

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

关注

评论

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

架构师课程第一周作业

杉松壁

架构师训练营第一周学习总结

王鑫龙

极客大学架构师训练营

初识 Docker 与安装 | Docker 系列

AlwaysBeta

Docker

食堂就餐卡系统设计

上山砍柴

极客大学架构师训练营

[ARTS打卡] week 02

Mau

ARTS 打卡计划

近邻算法介绍

黄大路

数据挖掘 数据分析

架构方法:运用合适的工具表达设计

Skye

极客大学架构师训练营

如何用一台 MacBook 创造高额年化收益 | ETH2.0 Staking 教程

陈东泽 EuryChen

区块链 Ethereum

Java 25周年:波澜壮阔的25年

北风

「Java 25周年」

【ARTS打卡】Week02

Rex

体验碎片-06/06

黄大路

产品经理

ARTS 第 1 周

乌拉里

ARTS 打卡计划

《OKR工作法》读书笔记

大饼土博

读书笔记 管理 OKR

「架构师训练营」第1周作业 - 食堂就餐卡系统设计

guoguo 👻

极客大学架构师训练营

程序员的晚餐 | 6 月 4 日 最好吃的土豆

清远

利其器

宋胖子

IDEA

优秀架构师具备的能力

李小匪

极客大学架构师训练营

架构文档

陈皮

架构 极客大学架构师训练营

软件架构第一章总结

itrickzhang

UML练习1 食堂就餐卡系统设计「架构师训练营」

Young

架构设计文档之食堂就餐卡系统设计

itrickzhang

架构设计 架构文档 架构样例 架构分析 架构总结

2020年6月7日 接口、lambda表达式与内部类

瑞克与莫迪

教你动手写UDP协议栈

Rice嵌入式开发技术分享

TCP udp 协议栈

程序员的晚餐 | 6 月 5 日 爆炒鱿鱼

清远

美食

repo 导出本地 git tag 给他人

zqb-all

git

【架构师训练营-作业-1】食堂就餐卡系统设计

小动物

系统设计 极客大学架构师训练营 作业

述职报告的一些建议

黄大路

职场

在 Windows WSL 2 中使用 Docker Desktop

FeiLong

Docker WSL2

MySQL 笔记(一)基础架构

奈何花开

Java MySQL

食堂就餐卡系统设计-uml练习

森林

程序员摆地摊?你别痴心妄想了,还不如当「在地青年」呢

非著名程序员

程序员 提升认知 职业规划 认知提升

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