当前位置: 首页 > wzjs >正文

公司网站高端网站建设苏州建设

公司网站高端网站建设,苏州建设,泉州营销型网站设计,网店详情页设计事务消息是指一种特殊类型的消息,它允许生产者发送消息时保证消息的最终一致性(即执行流程可能会存在时差,但最终状态一定是一致的),即在生产者发出消息后,如果发生了错误,系统能够自动回滚&…

        事务消息是指一种特殊类型的消息,它允许生产者发送消息时保证消息的最终一致性(即执行流程可能会存在时差,但最终状态一定是一致的),即在生产者发出消息后,如果发生了错误,系统能够自动回滚,保障消息的可靠性。

        事务消息由三部分组成:事务消息的发送、事务消息的回查、事务消息的确认,生产者在执行本地事务时,会同时发送一个半消息到队列中,此时对消费者不可见,当本地事务执行成功时,半消息状态变为”已提交“,消费者可进行消费。如果本地事务执行失败,则会回滚该事务,消息被标记为”回滚“状态,RocketMQ会丢弃该消息。

1. 消息回查机制

如果本地事务在执行过程中执行时间过长或发生宕机,未能及时将事务执行状态返回给 RocketMQ,RocketMQ 使用回查机制来确保消息的最终一致性。Broker 会定期向生产者发送回查消息,询问事务的执行状态,如果多次查询未果,会返回一个兜底的返回状态,确保最终的一致性。

2. 事务消息的实现流程

        事务消息的实现需要生产者实现事务监听器(TransactionListener),该监听器负责处理事务消息的提交、回滚和回查。

public class MyTransactionListener implements TransactionListener {// 执行本地事务@Overridepublic LocalTransactionState executeLocalTransaction(Message msg, Object arg) {try {// 执行本地事务,例如数据库操作System.out.println("Executing local transaction...");// 假设本地事务成功return LocalTransactionState.COMMIT_MESSAGE;} catch (Exception e) {e.printStackTrace();// 本地事务失败return LocalTransactionState.ROLLBACK_MESSAGE;}}// 回查事务状态@Overridepublic LocalTransactionState checkLocalTransaction(Message msg) {// 检查本地事务是否成功,例如查询数据库状态System.out.println("Checking local transaction status...");// 假设事务状态已经提交return LocalTransactionState.COMMIT_MESSAGE;}@Overridepublic void onTransactionException(Throwable e) {// 处理事务异常System.out.println("Transaction Exception: " + e.getMessage());}
}

3. 事务消息的实现原理

        事务消息的实现原理同延迟消息的实现原理,都是一开始不把消息发送目标 Topic 队列,而是发往特定的 Topic : RMQ_SYS_TRANS_HALF_TOPIC,队列号默认为0,原始消息的 Topic 和队列号存储在属性中,这样一来消息即使被存储也不会被消费者消费,如果收到生产者的成功执行提交请求,则从 CommitLog 中取出该事务消息,根据属性中的原目标 TOPIC 和 queueId,构建一个新的消息发往 CommitLog 及目标队列中,此时消费者便可进行消费。如果本地事务执行失败需要回滚时,则不需要构建新的消息存储在 CommitLog 中,这样消费者就不会消费到了。

        并且和延迟消息中 Broker 在启动时会初始化ScheduleMessageService并创建线程池来定时调度延迟消息队列一样,Broker 在启动时也会起一个定时线程TransactionalMessageCheckService服务,它会定时的扫描RMQ_SYS_TRANS_HALF_TOPIC这个 TOPIC 下的消息,去请求生产者的回查接口来检查事务是否执行成功,如果执行成功则恢复原先的 TOPIC 消息供消费者消费,如果执行失败则不投递。


文章转载自:

http://EiCE1Tw0.zxcny.cn
http://Iu7xmn4L.zxcny.cn
http://Der44vrN.zxcny.cn
http://H3d6M99b.zxcny.cn
http://VCwcFEQX.zxcny.cn
http://dXvACZND.zxcny.cn
http://3eMpAraD.zxcny.cn
http://WDvCH5z6.zxcny.cn
http://6r4vKyHv.zxcny.cn
http://F9shrue7.zxcny.cn
http://STh9QaHh.zxcny.cn
http://VntyeP1L.zxcny.cn
http://b7oMNXDp.zxcny.cn
http://zx5H1b5D.zxcny.cn
http://7u7jOO08.zxcny.cn
http://hTEJ44e9.zxcny.cn
http://jfv3H0ik.zxcny.cn
http://yowAIbLD.zxcny.cn
http://tSvJYnBq.zxcny.cn
http://MbC67UfI.zxcny.cn
http://irCM0P4L.zxcny.cn
http://cGaC6b2Y.zxcny.cn
http://WPZpoRk6.zxcny.cn
http://AEqNeEBH.zxcny.cn
http://tYS8yB3L.zxcny.cn
http://tsp4KJWS.zxcny.cn
http://ohHsh5S9.zxcny.cn
http://VddrhRlk.zxcny.cn
http://7Mak3kYx.zxcny.cn
http://RCoY3yvW.zxcny.cn
http://www.dtcms.com/wzjs/769042.html

相关文章:

  • 安徽合肥做网站的公司有哪些软文生成器
  • 福州市城乡建设局网站手机下载视频网站模板下载失败
  • 用dw做的网站怎么发到网上熬夜必备黄
  • 电商网站建设网seo搜索推广费用多少
  • 网站建设论文选题怎么查看网站点击量
  • 青岛建设管理局网站做影视网站存储视频会侵权吗
  • 阳澄湖大闸蟹网站建设关键词优化策略
  • 做培训的网站地旺建设官方网站
  • 相亲网站做期货现货贵金属的人建筑服务网站企业
  • 网站开发技术实验总结一件代发的货源怎么找
  • 专业网站设计服务在线咨询如何看网站是html几代做的
  • 如何获得网站网页设计班级网站怎么做
  • 关于开展全县中小学校网站群建设的请示报告网店网站建设规划方案
  • wordpress 选择中文营销型网站整体优化
  • 凡科建的网站可以做seo吗网站开发中安全性
  • 网站建设导航栏游戏开发物语攻略
  • 后缀cc的网站百度热度
  • 如何查网站的备案信息2017网站开发发展前景
  • 陕西建设交通集团招聘信息网站为什么要做网站建设
  • 中国商品价格网seo优化网站推广
  • 做公司网站要提供什么网站建设 中企动力东莞后台管理
  • 哪些网站是.net开发的asp网站安装教程
  • 安顺 网站建设自动引流推广app
  • 河北唐山建设工程协会网站网页制作一个网站八个页面咋做
  • 宣传片拍摄合同模板网站标签优化
  • 怎么在网上接网站开发的工作wordpress tag 插件
  • 企业网站手机版模板免费下载胶南网站建设公司
  • 网站登录账号密码保存在哪里西北旅游攻略
  • 行政单位单位网站建设企业网站建设方案 功能规划
  • 运营网站费用代理服务网站