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

大学生网络营销策划书模板天津seo公司

大学生网络营销策划书模板,天津seo公司,如何申请域名创建一个网站,做网上兼职的网站Rocketmq 事务消息API使用 使用TransactionMQProducer类。 实现TransactionListener 接口覆盖其方法executeLocalTransaction和checkLocalTransaction 即可。 其中executeLocalTransaction 执行本地方法和checkLocalTransaction 事务状态回查。 玩法 简历一张本地事务表&…

Rocketmq 事务消息API使用

使用TransactionMQProducer类。 实现TransactionListener 接口覆盖其方法executeLocalTransaction和checkLocalTransaction 即可。

其中executeLocalTransaction 执行本地方法和checkLocalTransaction 事务状态回查。

玩法

  1. 简历一张本地事务表,字段大概有(rocketmq事务id,业务事务id),
  2. 于executeLoalTransaction,利用数据库事务特性,和业务数据同时持久化到数据库。
  3. checkLocalTransaction. 按rocketmq事务id查询数据库,是否有对应的数据。

为什么需要本地事务表

保证可靠性。当业务事务提交后节点宕机。rocketmq同样也能回查到数据。

流程分析

事务消息源码分析 

实现原理是基于二阶段提交和定时事务状态回查实现的。

二阶段提交分析

涉及相关类

Producer

TransactionMQProducer

DefaultMQProducerImpl

TransactionListener

Broker

SendMessageProcessor

EndTransactionProcessor

分析流程

  1. 入口方法TransactionMQProducer.sendMessageInTransaction 投递事务消息
  2. 调用DefaultMQProducerImpl.sendMessageInTransaction
  3. 为消息头部增加事务消息标志,发送消息。
  4. Broker 入口方法 SendMessageProcessor#sendMessage检查消息头部是否有事务标记,有投递半消息。响应Producer 结果包括事务id
  5. Producer收到消息成功发送结果后,执行本地事务。并通知Broker 本地事务执行结果。
  6. Broker 入口方法EndTransactionProcessor#processRequest 。按收到结果做决定。若是事务提交则投递普通消息,删除半消息。若是事务回滚则删除半消息。

事务消息回查

RocketMQ 通过TramsactionalMessageCheckService 线程定时去检测RMQ_SYS_TRANS_HALF_TOPIC主题中的消息,回查消息的事务状态。TransactionalMessageCheckService 的检测频率默认为1分钟,可通过broker.conf文件中设置transactionCheckInterval 来改变默认值,单位为毫秒

public class TransactionalMessageCheckService extends ServiceThread {private static final Logger log = LoggerFactory.getLogger(LoggerName.TRANSACTION_LOGGER_NAME);private BrokerController brokerController;public TransactionalMessageCheckService(BrokerController brokerController) {this.brokerController = brokerController;}//.... 省略代码@Overrideprotected void onWaitEnd() {long timeout = brokerController.getBrokerConfig().getTransactionTimeOut();int checkMax = brokerController.getBrokerConfig().getTransactionCheckMax();long begin = System.currentTimeMillis();log.info("Begin to check prepare message, begin time:{}", begin);this.brokerController.getTransactionalMessageService().check(timeout, checkMax, this.brokerController.getTransactionalMessageCheckListener());log.info("End to check prepare message, consumed time:{}", System.currentTimeMillis() - begin);}}

http://www.hrbkazy.com/news/35574.html

相关文章:

  • 广州汽车网络推广服务苏州首页关键词优化
  • 怎么用ps做网站上的产品图自媒体营销方式有哪些
  • 太原做网站的百度seo优化培训
  • 在手机上做网站seo站外优化最主要的是什么
  • 个性化网站建设公司电话网址怎么创建
  • 外贸响应式网站设计营销策划公司介绍
  • 网站制作加双链接怎么做软件推广是什么工作
  • 长沙建设网站郑州seo关键词自然排名工具
  • 如何建立企业网站及企业网站推广广告投放平台系统
  • 做网站准备内容成品人和精品人的区别在哪
  • 用html5做网站百度经验百度推广创意范例
  • 中国建设银行网站首页u盾登入关键词优化的主要工具
  • 南京网站的优化搜关键词网站
  • 网站展示型广告杭州网站推广平台
  • 徐州营销网站建设seo快速排名利器
  • 响应式个人网站模板下载2021年网络热点舆论
  • 山东住房城乡建设部网站公司品牌宣传
  • 福田住房和建设局网站韶关seo
  • 自己的服务器建网站广告推广软件
  • wordpress 产品模板怎么优化标题和关键词排名
  • 三一重工的网站是哪家做的黄页推广
  • 可以上传视频的网站建设山西seo基础教程
  • 网站流量指的是什么意思下载百度app到桌面
  • wordpress icp涵数无锡网站优化
  • 织梦门户网站源码下载百度一下官方下载安装
  • 网页制作基础教程自学青岛网站关键词优化公司
  • 青岛做网站公司有哪些软文发布平台媒体
  • 网站域名怎么写好seo网站优化师
  • 网络网站建设办公百度一下你就知道移动官网
  • 建个平台需要多少资金seo关键词的选择步骤