当前位置: 首页 > wzjs >正文

江苏推广网站建设业务pc 手机网站建设

江苏推广网站建设业务,pc 手机网站建设,一般做网站是在什么网站找素材,安徽省建设行业个人信息Spring AOP + RocketMQ 实现企业级操作日志异步采集(实战全流程) 📌 项目背景 在企业级微服务架构中,记录操作日志是一项刚需。传统方式常使用数据库直接写入或通过 Feign 调用日志微服务,但这样存在耦合高、主流程阻塞、扩展性差等问题。 为此,我们将使用: Spring …

Spring AOP + RocketMQ 实现企业级操作日志异步采集(实战全流程)

📌 项目背景

在企业级微服务架构中,记录操作日志是一项刚需。传统方式常使用数据库直接写入或通过 Feign 调用日志微服务,但这样存在耦合高、主流程阻塞、扩展性差等问题。

为此,我们将使用:

  • Spring AOP 实现非侵入式日志采集
  • RocketMQ 实现异步解耦投递
  • Redis 实现消息幂等控制
  • DLQ 死信队列保障日志消息最终可达

🧱 技术选型

模块技术
日志采集Spring AOP + 自定义注解
消息中间件RocketMQ + Spring Cloud Stream
幂等控制Redis
安全框架Sa-Token
监控 & 补偿RocketMQ DLQ、自定义消费处理

🚦 实现目标

  • 通过 @Log 注解拦截业务方法
  • 捕获操作人、IP、请求参数、响应结果、执行耗时等日志信息
  • 使用 RocketMQ 异步投递日志消息
  • 使用 Redis 做幂等处理,防止重复消费
  • 消费失败自动重试,最终由 DLQ 消费者处理

📦 Maven 依赖

确保主业务系统和日志服务都引入 RocketMQ 依赖:

<!-- RocketMQ Stream -->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-stream-rocketmq</artifactId>
</dependency>

1️⃣ 日志注解定义

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Log {String title() default "";BusinessType businessType() default BusinessType.OTHER;OperatorType operatorType() default OperatorType.MANAGE;boolean isSaveRequestData() default true;boolean isSaveResponseData() default true;String[] excludeParamNames() default {};
}

2️⃣ AOP 切面实现(LogAspect)

  • 使用 @Before/@AfterReturning/@AfterThrowing 统一处理日志
  • 日志采集后调用 logMqService.saveSysLog() 异步发送到 MQ
  • 使用 ThreadLocal 计算执行耗时
@Aspect
@Component
public class LogAspect {private static final ThreadLocal<Long> TIME_THREADLOCAL = new NamedThreadLocal<>("Cost Time");private static final String[] EXCLUDE_PROPERTIES = {"password", "oldPassword", "newPassword", "confirmPassword", "credentials"};@Resource private HttpServletRequest request;@Resource private LogMqService logMqService;@Before("@annotation(controllerLog)")public void boBefore(JoinPoint joinPoint, Log controllerLog) {TIME_THREADLOCAL.set(System.currentTimeMillis());}@AfterReturning(pointcut = "@annotation(controllerLog)", returning = "jsonResult")public void doAfterReturning(JoinPoint joinPoint, Log controllerLog, Object jsonResult) {handleLog(joinPoint, controllerLog, null, jsonResult);}@AfterThrowing(value = "@annotation(controllerLog)", throwing = "e")public void doAfterThrowing(JoinPoint joinPoint, Log controllerLog, Exception e) {handleLog(joinPoint, controllerLog, e, null);}protected void handleLog(final JoinPoint joinPoint, Log controllerLog, 

文章转载自:

http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://00000000.Lhrcr.cn
http://www.dtcms.com/wzjs/616220.html

相关文章:

  • php网站开发 薪资 东莞域名管理
  • 腾讯云域名如何建设网站广州管网建设
  • 收费网站怎么制作郑州网站建设网站
  • 甜品店网站建设看公狍和女人做爰网站
  • 沙田镇做网站广东省建设教育协会官方网站首页
  • 招聘网站如何建设网站院长信箱怎么做
  • 做网站客户最关心的是什么客户关系管理定义
  • 网站改版 百度影响上海建网站手机app
  • 网站建设报价单电子商务网站软件建设的
  • 手机网站 软件什么网站可以做美食
  • 网站你懂我意思正能量晚上不用下载wordpress4.6.9
  • 狮山建网站m8+wordpress主题
  • 少儿美术网站建设方案天津信息港
  • 手机营销型网站建设网站开发服务 税
  • 国外网站排行aspnet网站开发pdf
  • 建造师免费自学网站重庆网站建设首选承越
  • 布吉网站的建设智慧旅游景区网站建设
  • 聊城制作手机网站wordpress编辑器知乎
  • 江苏质监站网站做资料公司起名生成器
  • linux系统网站建设快递网站建设
  • 电影网站建设成本微企点做的网站怎么去底下的
  • 湘潭自助建站系统可以做公司宣传的网站有哪些
  • 一手房发帖网站怎样做北京免备案网站建设
  • 网站制作.网站建设制作软件叫啥
  • 目前流行的网站开发技术网站建设需求背景
  • 建一个网站的手机电脑锦州网站建设工作
  • 网站被黑是什么原因点样做网站
  • 上海网站建设公司价格做视频网站软件有哪些
  • 青海公路工程建设总公司网站江阴网站建设工作室
  • 网站怎么做用密码中国林业工程建设网站