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

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

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

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

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

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

日志级别

该评论暂时无法显示,注解的近义词详情咨询 QQ 群:912889742