log4j2 Asynchronous Loggers 异步日志

折中

使用log4j2异步日志,可以通过异步线程处理写磁盘的方式,提高应用的响应速度。

但是,并不是所有情况都适用于异步日志。下面描述一下在一些情况下使用日志策略的一些取舍。

优势

1.高峰流量。异步日志可以帮助应用来处理突然的流量高峰带来的大量的写请求。如文档描述:异步日志大约比同步日志有6-68倍的在这种情况下的处理能力的提升。

    异步日志底层实现是通过一个队列,来记录每次写请求的请求内容。工作模式类似于生产者和消费者模式。这样可以抵御突如其来的大量请求。但是如果大量请求一旦持续进行,导致队列写满。那么整个请求会卡死,直到写入队列为止。

2.响应快。异步日志只需要将请求写入队列,而耗时的写磁盘部分通过异步线程的方式进行。但是如遇到队列写满时,请求会被阻塞。

    由此看来,异步的优势在于更快的响应速度和处理流量洪峰的能力。但是使用时一定要注意任务队列不要被写满。

劣势

1.异常处理。由于处理请求是异步执行的,因此也会面临异步线程的异常捕获和处理问题。

2.少数情况下,需要处理一些可变的变量写请求。也和异步有关。

3.如果机器只有一个单核cpu,使用异步的方式不会提高性能。

4.如果程序产生写请求的速度比处理的速度快,那么任务队列将被写满。这时需要考虑优化appender的处理速度,或者减少写日志量。如果二者都行不通,考虑使用同步日志进行折中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值