Log4j2的高性能之道

简介: Log4j2的高性能之道

log4j2之所以能在异步写日志时性能提高这么多,离不开优秀的mq组件Disruptor

目前使用该队列的知名软件包括但不限于Apache Storm、Camel、Log4j2。

底层队列的实现对性能的影响是最大的。logback使用的是异步appender,log4j2使用的是disruptor。

异步Appender的实现,内部内置了一个BlockingQueue队列,具体实现采用了ArrayBlockingQueue。而Disruptor则是使用了Ringbuffer。

性能上的优劣,绝大部分原因都是数据模型的问题,往下我们分析一下BlockingQueue和disruptor的实现方式:

1、ArrayBlockingQueue

ArrayBlockingQueue采用的是加锁的方式来处理线程安全问题的。

加锁的问题,虽然历代JDK一直投入大量的精力去解决问题,比如优化Sync关键字的实现方式、添加读写锁等,但是由于结构特性的问题,一直无法从根本上解决性能开销问题。

2、Disputor

Disputor采用了环形数据结构Ringbuffer来解决这个问题(他们称之为魔法圆环,或魔法圆圈之类的),此种数据结构的有点是,不需要记录额外的下标,直接由JNI返回可以操作的地址,然后当多线程并发读写的时候,使用的也是无锁化cas方式

目录
相关文章
|
存储 SQL 运维
涨姿势 | 一文读懂备受大厂青睐的ClickHouse高性能列存核心原理
本文尝试解读ClickHouse存储层的设计与实现,剖析它的性能奥妙
3677 0
涨姿势 | 一文读懂备受大厂青睐的ClickHouse高性能列存核心原理
|
存储 大数据 分布式数据库
大数据分析的下一代架构--IOTA架构设计实践
IOTA的特点: [x] 去“ETL”化 [x] 高效:时时入库即时分析 [x] 稳定:经过易观5.8Pb,5.2亿月活数据锤炼 [x] 便捷:支持SQL级别的二次开发和UDAF定义 [x] 扩充性强:组件基于Apache开源协议,可支持众多开源存储对接
18986 0
|
5月前
|
存储 NoSQL 关系型数据库
数据存储架构的演进和实操(一)
数据存储架构的演进和实操(一)
|
8月前
|
分布式计算 大数据 数据处理
深度解密Spark性能优化之道
课程通过实战案例解析和性能调优技巧的讲解,帮助学员提升大数据处理系统的性能和效率。课程内容涵盖了Spark性能调优的各个方面,包括内存管理、并行度设置、数据倾斜处理、Shuffle调优、资源配置等关键技术和策略。学员将通过实际案例的演示和分析,掌握解决Spark应用性能问题的方法和技巧,从而提升数据处理效率,优化应用性能。无论您是初学者还是有一定经验的大数据工程师,本课程都将为您提供宝贵的实战经验和实用技能,助您成为Spark性能调优的专家。
80 7
深度解密Spark性能优化之道
|
7月前
|
存储 SQL 关系型数据库
技术好文:TiDB架构及设计实现
技术好文:TiDB架构及设计实现
551 0
|
9月前
|
缓存 监控 前端开发
从零到一:构建高性能SPA的探索与实践
作为一名高级前端工程师,我曾负责构建高性能SPA,面临首屏加载、路由切换卡顿、内存泄漏和数据加载策略等挑战。通过代码拆分、懒加载、服务端渲染、路由预加载、Keep-alive、严格管理组件生命周期、内存泄漏检测工具以及分页加载和数据缓存策略,成功优化性能,降低首屏加载时间,改善路由切换体验,控制内存泄漏,并提升数据加载效率。持续优化是关键,未来将侧重性能监控自动化和新技术探索。分享这些经验希望能激发更多同行的思考与创新。
106 1
|
9月前
|
设计模式 缓存 Java
Java新时代:微服务架构下的性能优化实践
【2月更文挑战第12天】 在当今快速发展的软件工程领域,微服务架构因其灵活性和可扩展性而成为主流。随着应用程序变得日益复杂,性能优化成为了开发者不可回避的挑战。本文将探讨在Java环境下,利用微服务架构进行性能优化的策略和实践。我们将从微服务的基本概念出发,深入分析如何通过设计模式、数据库优化、缓存机制以及并发处理等手段,有效提升Java应用的性能。此外,本文还将分享一些实际案例,以帮助读者更好地理解和应用这些优化技术。
|
负载均衡 应用服务中间件 微服务
从单体架构到分布式架构的演变--新手向
单体架构到分布式架构更多的是从项目的系统架构层面进行的讨论,故不要将单体架构与业务分层(如mapper、dao、controller……)相混淆 本文将以一个简单的商城项目为导引,讲解单体架构与分布式架构 项目包含了订单模块、用户模块、支付模块和商品模块等
245 0
|
弹性计算 Kubernetes 架构师
亮点回顾|2022 re : Invent Recap:深入内核,高并发系统架构演进之路
亮点回顾|2022 re : Invent Recap:深入内核,高并发系统架构演进之路
146 0
|
缓存 前端开发 Serverless
人人都是Serverless架构师之传统内容管理系统改造实战三[性能优化]
内容管理系统是很常见的一种web应用场景,可以用到个人独立站,企业官网展示等场景,具有很高的实用价值,一个标准的内容管理系统主要由三个部分组成 主站展示部分、后台管理系统、API接口服务,本系列文章会以一个已有内容管理系统的Serverless架构重构展开,介绍改造的基本思路,改造细节,以及性能优化业务可观测设计等。涉及大家关心的Serverless生产遇到的一些问题,比如数据库、日志、动静态分离、调试、维护、灰度方案等。最真实的展现Serverless架构的实施落地细节。
397 0
人人都是Serverless架构师之传统内容管理系统改造实战三[性能优化]