cn-ben - 基于最大努力通知的分布式事务解决方案
Apache
跨平台
Java
软件简介
BEN (best-effort-notify)是 基于最大努力通知 的分布式事务解决方案。
中文文档
- 中文文档地址:https://www.showdoc.cc/cnben
业务系统对接BEN
maven依赖
在业务系统的pom文件中引入ben-api最新版本依赖:
# 中央仓库: https://search.maven.org/search?q=ben-api
<dependency>
<groupId>com.gitee.nuliing</groupId>
<artifactId>ben-api</artifactId>
<version>${最新稳定版本}</version>
</dependency>
发送通知
步骤:
- 构造通知参数 BenNotify
- 往消息队列发送通知对象(队列名: notify.queue ,已定义为静态变量 BenNotify.QUEUE )
流程说明
假设两个业务系统的两个业务AB。基于BEN实现分布式事务流程如下:
- 上层业务系统在完成业务处理之后,向 消息中间件 发送通知消息。
- BEN系统 监听通知消息队列,监听到通知消息后添加通知记录到数据库。
- 根据系统配置的通知时间,设置通知任务执行时间,放入 DelayQueue 。
- 通知任务达到执行时候后,发送 Http请求 给 下层业务系统 。
- 添加通知日志到数据库。