高并发下服务端日志记录的优化方法及系统与流程

文档序号:33040072发布日期:2023-01-24 21:11阅读:来源:国知局

技术特征:
1.一种高并发下服务端日志记录的优化方法,其特征在于,包括如下步骤:步骤1:在需发送消息的线程中增加threadlocal功能,通过threadlocal功能,在每一个业务线程中独立设置一个局部日志队列,并增加写入日志消息方法和读取日志消息方法;步骤2:当业务线程需要记录日志时,均向自身业务线程中的局部日志队列记录消息;当自身线程中的局部日志队列中消息达到阀值时,通知日志消费队列到自身日志消费线程中的局部变量获取消息。2.根据权利要求1所述的高并发下服务端日志记录的优化方法,其特征在于,所述步骤2中,日志消费队列每隔预设时间到各个业务线程的局部队列中获取消息,并进行消息的消费处理。3.根据权利要求1所述的高并发下服务端日志记录的优化方法,其特征在于,所述写入日志消息方法具体为:通过threadlocal中的set方法向自身业务线程的局部队列中写入消息;所述读取日志消息方法具体为:使用threadlocal中的get方法从自身业务线程的局部队列中读取消息。4.根据权利要求1所述的高并发下服务端日志记录的优化方法,其特征在于,所述写入日志消息方法具体包括如下步骤:步骤2.1:写入日志消息至本地局部队列中;步骤2.2:检查本地局部队列中,消息总数量是否达到阀值;步骤2.3:当本地局部队列中消息总数量未达到阀值,则无需后续处理,当达到阀值时,发送通知消息至日志消费线程,本流程结束。5.根据权利要求4所述的高并发下服务端日志记录的优化方法,其特征在于,日志消费线程存在如下两种消费日志消息的方式:主动方式:消费线程每隔预设时间,调用读取日志消息方法读取消费业务线程中本地局部队列中的消息,并进行日志的打印操作;被动方式:当消费线程获取到步骤2.3中的通知消息时,调用读取日志消息方法读取消费业务线程中本地局部队列中的消息,并进行日志的打印操作。6.根据权利要求5所述的高并发下服务端日志记录的优化方法,其特征在于,读取日志消息方法内部流程为:读取本地局部队列中消息,并删除队列中已经消费的消息记录。7.一种高并发下服务端日志记录的优化系统,其特征在于,包括如下模块:模块m1:在需发送消息的线程中增加threadlocal功能,通过threadlocal功能,在每一个业务线程中独立设置一个局部日志队列,并增加写入日志消息模块和读取日志消息模块;模块m2:当业务线程需要记录日志时,均向自身业务线程中的局部日志队列记录消息;当自身线程中的局部日志队列中消息达到阀值时,通知日志消费队列到自身日志消费线程中的局部变量获取消息。8.根据权利要求1所述的高并发下服务端日志记录的优化系统,其特征在于,所述模块m2中,日志消费队列每隔预设时间到各个业务线程的局部队列中获取消息,并进行消息的消费处理。
9.根据权利要求1所述的高并发下服务端日志记录的优化系统,其特征在于,所述写入日志消息模块具体执行如下过程:通过threadlocal中的set方法向自身业务线程的局部队列中写入消息;所述读取日志消息模块具体执行如下过程:使用threadlocal中的get方法从自身业务线程的局部队列中读取消息。10.根据权利要求1所述的高并发下服务端日志记录的优化系统,其特征在于,所述写入日志消息模块具体包括如下模块:模块m2.1:写入日志消息至本地局部队列中;模块m2.2:检查本地局部队列中,消息总数量是否达到阀值;模块m2.3:当本地局部队列中消息总数量未达到阀值,则无需后续处理,当达到阀值时,发送通知消息至日志消费线程,本流程结束。

技术总结
本发明提供了一种高并发下服务端日志记录的优化方法及系统,包括如下步骤:步骤1:在需发送消息的线程中增加ThreadLocal功能,通过ThreadLocal功能,在每一个业务线程中独立设置一个局部日志队列,并增加写入日志消息方法和读取日志消息方法;步骤2:当业务线程需要记录日志时,均向自身业务线程中的局部日志队列记录消息;当自身线程中的局部日志队列中消息达到阀值时,通知日志消费队列到自身日志消费线程中的局部变量获取消息。本发明在高并发场景之下,能够很好的提高业务吞吐,减少业务部分场景下的毛刺问题。部分场景下的毛刺问题。部分场景下的毛刺问题。


技术研发人员:王文哲 蔡志林 许心熠
受保护的技术使用者:兴业数字金融服务(上海)股份有限公司
技术研发日:2022.11.10
技术公布日:2023/1/23
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1