Spring 异步事件本地消息表设计
2024-12-19
| 2024-12-19
字数 483阅读时长 2 分钟
type
status
date
slug
summary
tags
category
icon
password
AI summary
Last edited time
Dec 19, 2024 04:51 AM

解决问题

日常使用 spring 的 application event 实现业务解耦时,默认实现无法跟踪事件是否正常发送,下游业务是否正常消费。
例如用户下单成功后,需要给用户发送邮件通知,普通代码如下
以上代码有小概率出现 邮件发送成功,用户下单失败数据库回滚场景
改良后的代码如下
以上写法,能够保证数据库提交后才触发发送短信发送操作,但是无法保证邮件发送操作正常完成(例如邮件网关拒收)
改进方案

本地消息表设计

notion image
 

框架代码封装

todo
 

其他衍生问题

高并发业务,事件表、事件处理记录的分表设计、归档设计
 

📎 参考文章

  • 一些引用
  • 引用文章
  • Spring Boot
  • 思考
  • percona-toolkit 常用操作MySQL主键自增
    Loading...