基于最大努力通知的分布式事务解决方案 cn-ben

Apache
Java
跨平台
2019-05-14
a327919006

BEN(best-effort-notify)是基于最大努力通知的分布式事务解决方案。

中文文档


业务系统对接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实现分布式事务流程如下:

  1. 上层业务系统在完成业务处理之后,向消息中间件发送通知消息。
  2. BEN系统监听通知消息队列,监听到通知消息后添加通知记录到数据库。
  3. 根据系统配置的通知时间,设置通知任务执行时间,放入DelayQueue
  4. 通知任务达到执行时候后,发送Http请求下层业务系统
  5. 添加通知日志到数据库。
的码云指数为
超过 的项目
加载中

评论(5)

k
kris1985
"上层业务系统在完成业务处理之后,向消息中间件发送通知消息" 怎么保证一致性?
a327919006
a327919006 软件作者
一种方式:可以使用可靠消息保证消息投递过程的一致性,参考: https://gitee.com/NuLiing/reliable-message。 我的另一个想法是:最大努力通知型方案使用非可靠消息,业务活动的被动方,根据定时策略,向业务活动主动方查询(主动方提供查询接口),恢复丢失的业务消息。
LZG123
LZG123
支rabbitmq不?
a327919006
a327919006 软件作者
暂时不支持哈。后期版本会支持
小龙在线
小龙在线
前排支持

cn-ben 1.0.0 发布,基于最大努力通知的分布式事务解决方案

BEN(best-effort-notify)是基于最大努力通知的分布式事务解决方案。 中文文档 中文文档地址:https://www.showdoc.cc/cnben 业务系统对接BEN 详细对接说明请查看《快速入门》和《对接示例说...

05/14 09:13

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

python伪代码之爬取完美志愿全国历年文理分数线运行代码持续更新

最近好多小伙伴说想搞个项目实战类的,我就花了一点时间做了一个爬虫项目(在代码复制的时候可能会有点问题,缩格一下就没有问题了) 想要获取更多源码或者答疑或者或者交流学习可以加群:7...

2018/06/13 12:53
44
0
div+css文字“本来”

暂未考虑兼容性,

2015/09/22 17:42
44
0
我是ben哥的第一篇博客,想想还有点小激动呢!

ben哥写我本来是用来测试的,但是忽然心血来潮,觉得应该写点什么才能平复那顺利安装复杂的windows live writer的激动情绪,是不是有点绕口呢,没错ben哥非常喜欢冗长的句子,不喜欢的同学估...

2015/11/10 10:31
23
0
【SICP练习】108 练习3.21

练习3-21 原文 Exercise 3.21. Ben Bitdiddle decides to test the queue implementation described above. He types in the procedures to the Lisp interpreter and proceeds to try them...

2015/09/08 21:50
5
0
OCP题库更新,新版052考试题和答案(17)

17、 Examine these commands and their output: SQL> SELECT * FROM emp; ENO ENAME ---- ----- 100 Adam 101 Alan SQL> INSERT INTO emp VALUES(102,'Ben"); 1 row created. SQL> COMMIT; ...

2018/08/28 11:37
3
0
OCP-052考题汇总(2)-CUUG内部解答版

  Examine these commands and their output:   SQL> SELECT * FROM emp;   ENO ENAME   --- -------   100 Adam   101 Alan   SQL> INSERT INTO emp VALUES(102,'Ben');   ...

07/24 14:14
18
0
ocp题库变化,052新加的考题及答案整理-32题

32、 Examine these commands and their output: • SQL> SELECT * FROM emp; • ENO ENAME • ---- ----- • 100 Adam • 101 Alan • SQL> INSERT INTO emp VALUES(102,'Ben"); • 1 row ...

2018/08/02 11:23
8
0
web

http://www.datatang.com/index.html https://blog.csdn.net/ben_ben_niao/article/details/40507743 https://www.programcreek.com/python/index/module/list...

2018/04/30 22:45
7
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部