rocket mq 监听端口_浅谈业务流程中的mq使用方式

假设有个场景:

下单成功需要给用户发送消息通知,发送消息通知通过mq实现

事务提交前发送mq消息

step1:start transaction
step2:生成订单
step3:投递消息到mq
step4:commit transaction

问题:

step3发生异常会导致step4失败,下单失败,直接影响到下单业务

step4发生异常,其他step成功。事务回滚下单失败,但是却发送了成功消息。

事务之后发送消息

step1:start transaction
step2:生成订单
step3:commit transaction
step4:投递消息到mq

问题:

step4发生异常,其他step成功。下单成功,但是发送消息失败。

定时轮训发送消息

step1:start transaction
step2:生成订单
step3:本地库中插入一条需要发送消息的记录t_msg_record
step3:commit transaction
step5:新增一个定时器,轮询t_msg_record,将待发送的记录投递到mq中

问题:

这种方式借助了数据库的事务,业务和消息记录作为了一个原子操作。业务成功之后,消息日志必定是存在的。

业务单一的情况下没问题,不方便扩展。

消息服务

step1:生成一个全局唯一业务消息id,调用消息服务,将消息落地入库,此时消息的状态为待发送状态,返回消息id
step2:start transaction
step3:生成订单
step4:当前事务库插入一条日志(将step3中的业务和bus_msg_id关联起来)
step5:commit transaction
step6:如果上面都成功,调用消息服务,将消息投递到mq中。如果上面有失败的情况,则调用消息服务取消消息的发送

若step6失败,消息将处于待发送状态,此时业务方需要提供一个回查接口(通过业务消息id查询),验证业务是否执行成功。消息服务需新增一个定时任务,对于状态为待发送状态的消息做补偿处理,检查一下业务是否处理成功,从而确定消息是投递还是取消发送。

e490dd322b89fd04acc1fd347fc50f05.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503922.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jsp工程防止外部注入_XPATH注入详解|OWASP Top 10安全风险实践(五)

本文为一些列连载文章之一,不定期更新,计划目录如下:OWASP介绍SQL注入命令注入XML外部实体注入XPATH注入反射式、DOM及存储XSS失效的身份认证和会话管理不安全的直接对象引用安全配置错误敏感信息泄露功能级访问控制缺失跨站请求伪造服务端请…

小程序反编译 g is not defined_培生幼儿启蒙英语 Level B | 小牧羊女在哪?

本栏目为羽佳讲绘本独家专稿,文中图片及音频已获得海豚传媒授权,未经允许请勿转载。大家好!我是毛毛。培生幼儿启蒙英语 Level B(升级版)的分享又来了!想了解这套绘本及购买信息的小伙伴们,可以点击喜大普奔&#xff0…

snmp 获得硬件信息_信息系统项目管理师(三)

常规信息系统集成技术系统集成:将计算机软件、硬件、网络通信等技术产品即成为能够满足用户特定需求的信息系统。(一)网络标准与网络协议1、网络协议网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。网络协议三要素&…

20w7珠led驱动电源电路图_LED驱动电源:用TL431做的几个恒流电路分享!

引言随着LED照明现在越来越热,作为LED的生命支柱--LED驱动电源也越来越受到人们的关注。一直听到有很多人这么说:LED电源是个特殊的电源,跟普通电源有很大的不同,所以做LED电源要找专业的LED电源工程师。这种说法给LED电源蒙上了一…

huffman python_Python huffman包_程序模块 - PyPI - Python中文网

生成哈夫曼码本!Huffman codes是将单个符号压缩成二进制序列的最佳方式,该二进制序列可以在不使用符号间分隔符的情况下被明确解码(它是“prefix-free”)。以(symbol, weight)格式提供一个2元组的iterable,生成一个huffman码本,作…

android 充电动画_iPhone 12充电测试:18/20W并无明显区别

原标题:iPhone 12充电测试:18/20W并无明显区别日前,充电头网使用苹果原装5W、12W、18W、20W以及65W充电器测试了iPhone 12的充电速度。从结果来看,苹果的五福一安的充电数据依旧“稳定”,半小时充入了18%的电量&#x…

跳出所有循环的语句_从零开始的Java之旅2.0 流程控制语句

前言昨天我们对Java的数据类型和运算符进行了充分讲解,今日我们学习流程控制语句. 今日内容:if else 判断语句switch 选择语句for 循环语句while 循环语句do while 循环语句break,continue 跳出语句概述:在一个程序执行的过程中,各条语句的执行顺序对…

el-table 树形表格 自定义展开图标_[shell脚本]表格数据在终端可视化输出

最终效果1. 自定义表格样式2. 自定义主题颜色支持三系普通颜色支持16色彩虹色支持单颜色回顾一下shell语法1. shell传递参数我们可以在执行shell脚本时实时传递参数从而指定某些具体的参数(在本例中包括表格的样式、颜色等),脚本中获取参数的…

python如何强制结束主线程_强制结束线程

场景: 如果某个线程持续阻塞,无法退出,从而导致整个程序无法结束,此时就需要强制结束线程思路:由于程序阻塞,比如卡在代码中的某一行后,一直无法向下执行,此时,无法通过常…

kubectl apply -f_广州车展捷豹路虎参展阵容 全新F-PACE 路虎卫士90

近日,我们从相关渠道获得了捷豹路虎广州车展的阵容。将有两款新车亮相,新款捷豹F-PACE和路虎卫士90。新款捷豹F-PACE采用了最新的家族式设计风格,具有更时尚的造型设计,而路虎卫士90则拥有更短的轴距。外观方面:新款捷…

python 会议室预约系统解决方案_令令开门智能会议室预约系统解决方案

原标题:令令开门智能会议室预约系统解决方案在联合办公和中大型公司经常会发生会议室不够用的情况,这种不够用会给企业造成严重的影响:效率低下、部门间引发矛盾、重要会议受到打扰、增加人员成本等等。我们知道,一般邻近上下班是…

github gis 路径规划_Apollo问答丨车辆定位和轨迹规划用的是语义,还是3D Position?...

自Apollo开发者社区小程序上线以来,我们每一天都会在「社区问答」板块收到许多开发者的技术提问。每周,可爱的Apollo小姐姐都会精选出被采纳的社区问答进行整理汇总,并统一对大家进行答复。开发者在使用Apollo平台过程中,如果遇到…

python 安卓app开发环境搭建_基于react-native的APP开发环境配置

1. 首先要有jdk 版本1.8 环境变量必须要有 %JAVA_HOME%;%JAVA_HOME%\bin2.python 版本2 必须是python2(官方文档这么写的,具体不知道为啥) 环境变量两个 python根目录和scripts目录; 这边顺便提一嘴,win下python2与python3的共存…

astar插件下载 就行_暗黑破坏神2地图插件常用的设置,做自己的私人订制游戏!...

暗黑2是一款很老的游戏,虽然很经典,但游戏里有很多地方在今天看来有很多不方便的地方,比如无法查看怪物的一些属性,小地图上没有怪物显示,装备系统很复杂但一些数值不能直接查看比如物品等级。所以如今很多朋友玩这个游…

什么是驻点和拐点_拐点和驻点的区别有哪些

各位家长好,我是51学霸(51xueba.cn)专栏作者,甜老师全文共计758字,建议阅读2分钟拐点:二阶导数为零,且三阶导不以零;驻点:一阶导数为零或不会有。差别:可导涵数f(x)的极值点【必然】…

asp.net 将bmp格式图片怎么转换为jpg_Heic图片转换精灵-Heic图片高清转换JPG/PNG/BMP方法...

想打开heic文件,首先要做的是把图片格式转换成电脑可以查看的,电脑可以查看的形式也并非很单一,比如jpg/bmp/png,这些都是比较常用的格式,首先heic图片是苹果手机独有的图片格式,电脑上或者其他设备是无法打…

beaninfo详解源码解析 java_Java后端精选技术:源码解析Spring Cloud Zuul

Zuul 架构图在zuul中, 整个请求的过程是这样的,首先将请求给zuulservlet处理,zuulservlet中有一个zuulRunner对象,该对象中初始化了RequestContext:作为存储整个请求的一些数据,并被所有的zuulfilter共享。…

一加到1亿。C语言_可能是今年最难选的2部手机:小米10详细对比一加8T

原标题:可能是今年最难选的2部手机:小米10详细对比一加8T在智能手机行业里流传着这样一句话:旗舰处理器只能决定一款机型的下限,而不能决定它的上限;决定一款机型上限的是旗舰处理器之外的屏幕、拍照、UI等等。这句话放…

html5 webrtc fir 请求关键帧_中信建投官网强调认可我们的投资理念的股民朋友请求 CTRL D 收藏、锁定本直播地址...

本文摘要:有关中信建投官网强调认可我们的投资理念的股民朋友请求 CTRL D 收藏、锁定本直播地址的内容分享,跟踪了解如何看股票k线图,分享热点专题。欢迎来到 橘子股票直播间,本直播每日为大家更新最快、最精准、最全面的股市内容…

打印完全二叉树java_java 完全二叉树的构建与四种遍历方法示例

本来就是基础知识,不能丢的太干净,今天竟然花了那么长的时间才写出来,记一下。有如下的一颗完全二叉树:先序遍历结果应该为:1 2 4 5 3 6 7中序遍历结果应该为:4 2 5 1 6 3 7后序遍历结果应该为…