写点什么

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

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

关注

评论

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

关于DAO社区代币挖矿治理dapp系统开发

开发微hkkf5566

前端培训学习需要哪些知识?

小谷哥

手把手在桌面应用中运行小程序

Onegun

小程序 windows Mac 软件

DAO社区治理代币投票挖矿系统开发合约定制

开发微hkkf5566

沉浸式视听体验:全景声技术是如何实现的?

阿里云CloudImagine

阿里云 音视频 音频

桌面端运行小程序的简易实操

FinFish

跨端开发 跨端运行 桌面应用 桌面应用开发

【电商实战02】如何借助工具快速生成代码?初学者容易踩的坑有哪些?

王中阳Go

golang 高效工作 学习方法 程序员 11月月更

合阔智云核心生产系统切换到服务网格 ASM 的落地实践

阿里巴巴云原生

阿里云 云原生 服务网格

设备接入物联网平台必知必会——设备接入类

阿里云AIoT

阿里云 数据 物联网 设备接入 协议解析

JavaScript刷LeetCode-字符串类解题技巧

Geek_07a724

JavaScript LeetCode

堡垒机小知识科普-行云管家

行云管家

网络安全 信息安全 堡垒机 等保2.0

如何把 ThinkPHP 5 的项目迁移到阿里云函数计算来应对流量洪峰?

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算

大专参加大数据培训学习要具备哪几方面的知识

小谷哥

软件测试面试真题 | UI自动化测试如何通过子元素定位父元素?

测试人

软件测试 面试题 自动化测试

技术内幕 | StarRocks 支持 Apache Hudi 原理解析

StarRocks

#数据库

TDSQL携手金蝶云·苍穹,发布“国产数据库联合解决方案”

腾讯云数据库

数据库 腾讯云 tdsql 金蝶 腾讯云数据库

前端安全问题及防护思路

FinFish

网络安全 安全 安全架构 移动安全 前端安全

零基础转行Web前端培训机构怎么选

小谷哥

Java Web(九)会话跟踪技术

浅辄

javaWeb session Cookie 11月月更

用javascript分类刷leetcode3.动态规划(图文视频讲解)

Geek_07a724

JavaScript LeetCode

HarmonyOS线上Codelabs系列挑战赛第二期:调用三方库,制作酷炫的视觉效果

HarmonyOS开发者

HarmonyOS

先楫半导体HPM6700系列正式合入OpenHarmony社区主干

Geek_2d6073

使用 C++ 部署深度学习模型快速上手方案

MegEngineBot

c++ 深度学习 开源 MegEngine 模型部署

新双机热备软件排名看这里!

行云管家

高可用 双机热备

Java培训机构应该怎么去学习开发技术

小谷哥

params传参与body传参区别

源字节1号

软件开发 前端开发 后端开发 小程序开发

JavaScript刷LeetCode心得

js2030code

JavaScript LeetCode

低代码技术在研发团队的应用模式探讨

阿里巴巴终端技术

前端 终端 低代码 客户端

【Go电商实战03】如何使用ORM链式操作?如何优雅的实现软删除?

王中阳Go

Go golang 高效工作 学习方法 11月月更

JavaScript刷LeetCode拿offer-栈相关题目

js2030code

JavaScript LeetCode

软件测试面试真题 | 测试一个你完全不熟悉的系统,你会怎么办?

测试人

软件测试 面试题 自动化测试 测试开发

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