通过AOP来拦截注解实现业务日志记录功能

sprouting 发布于 08/19 13:38
阅读 205
收藏 0

年度重磅!华为云2021应用构建技术实践精选集,七大领域跑通云上开发。>>>

架构:微服务架构,不同服务的redis可能都用的不同

现在有两套方案,第一种,拦截生成日志后,先放到redis队列中,另外单独开一条或多条线程去处理,没有的时候就休眠,有的时候就那几条线程专门去消费上传到日志服务。 这种方案有几个问题,如果日志非常多,这个时候,预计不足,单独消费的线程不够,可能撑爆redis,第二,会专门有线程去处理,可能浪费线程资源,第三,单个线程不安全,可能会出现卡死的情况,第五,如果日志服务挂了,reids可能会跟着完蛋

第二套方案,先创建一个线程池,核心线程1个,最大10个线程,生成日志后,马上将其丢到线程池,用完就回收,在线程中的日志,直接丢到MQ中,这个速度应该比较快,可能的问题,第一,日志量非常大,可能导致线程池顶不住,第二,请求很高的时候可能线程池顶不住

以上两套方法,大家赶紧哪一种比较好,或者还有其他更好的方案吗?

主要两个核心点,异步的日志消费,异步的存储还是同步的存储。

 

 

以下是问题补充:

@sprouting:业务日志除了这种方案还有其他好方案吗? (08/20 09:11)
加载中
0
nullpointerxyz
nullpointerxyz
该评论暂时无法显示,详情咨询 QQ 群:912889742
0
飞翔的土拨鼠
飞翔的土拨鼠
该评论暂时无法显示,详情咨询 QQ 群:912889742
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部