专栏名称: Java知音
专注于Java,推送技术文章,热门开源项目等。致力打造一个有实用,有情怀的Java技术公众号!
今天看啥  ›  专栏  ›  Java知音

一套万能通用的异步处理方案

Java知音  · 公众号  · 后端 科技自媒体  · 2025-04-02 10:05
    

主要观点总结

本文主要介绍了一套通用的异步处理SDK的设计与实施。该SDK主要用于保证方法的有效执行,且不影响主流程,通过各种策略确保数据不丢失,以达到最终一致性。该SDK采用了无侵入设计,独立数据库、独立定时任务、独立消息队列和独立人工执行界面。

关键观点总结

关键观点1: 主要功能和目标

通过异步处理保证方法的有效执行,不影响主流程;通过各种策略保证数据不丢失,实现最终一致性。

关键观点2: 技术实现原理

使用spring事务事件机制,通过AOP切面发布事件,@TransactionalEventListener处理异步执行策略;组件包括kafka消息队列,xxl job定时任务,mysql数据库等。

关键观点3: 数据库设计

介绍了异步场景表(async_scene)、异步请求表(async_req)和异步日志表(async_log)的设计细节。

关键观点4: 配置和使用方法

包括开关配置、数据源配置、核心线程数配置等,并详细说明了如何在代码中使用该SDK(如添加@AsyncExec注解)。

关键观点5: 注意事项

提到了应用名称、队列名称的重要性,以及业务幂等性、一个应用公用一个队列等实施细节。


文章预览

前言 良好的系统设计必须要做到开闭原则,随着业务的不断迭代更新,核心代码也会被不断改动,出错的概率也会大大增加。但是大部分增加的功能都是在扩展原有的功能,既要保证性能又要保证质量,我们往往都会使用异步线程池来处理,然而却增加了很多不确定性因素。由此我设计了一套通用的异步处理 SDK,可以很轻松的实现各种异步处理! 目的 通过异步处理不仅能够保证方法能够得到有效的执行而且不影响主流程 更重要的是各种兜底方法保证数据不丢失,从而达到 最终一致性 优点 无侵入设计,独立数据库,独立定时任务,独立消息队列,独立人工执行界面(统一登录认证) 使用 spring 事务事件机制,即使异步策略解析失败也不会影响业务 如果你的方法正在运行事务,会等事务提交后或回滚后再处理事件 就算事务提交了,异步策略解析失 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览