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

自己做的旅游网站 介绍百度商城app下载

自己做的旅游网站 介绍,百度商城app下载,想做个电影网站该怎么做,新强生产建设兵团网站文章目录 RabbitMQ 事务消息概述实现原理代码实现不采用事务采用事务 RabbitMQ 事务消息 概述 RabbitMQ 的 AMQP 协议实现了事务机制,允许开发者保证消息的发送和接收时原子性的,也就是说,要么消息全都发送成功,要么全都发送失败…

文章目录

  • RabbitMQ 事务消息
    • 概述
    • 实现原理
    • 代码实现
      • 不采用事务
      • 采用事务

RabbitMQ 事务消息


概述

RabbitMQ 的 AMQP 协议实现了事务机制,允许开发者保证消息的发送和接收时原子性的,也就是说,要么消息全都发送成功,要么全都发送失败(只与发送方有关).

实现原理

AMQP 事务实现类似于传统数据库事务,允许在一个事务中发送多条消息,并在最后提交或回滚.

  • 事务开始:客户端发送 tx.select 方法,RabbitMQ 开启一个新的事务上下文.
  • 事务内的操作:客户端发送消息 basic.publish,RabbitMQ 将这些消息暂存在内存中,并标记为未提交.
  • 事务提交:客户端发送 tx.commit 方法,RabbitMQ 将所有暂存的消息写入队列,并且如果消息标记为持久化,那么就把消息保存到磁盘.
  • 事务回滚:客户端发送 tx.rollback 方法,RabbitMQ 丢弃所有暂存的消息,不会写入队列.

代码实现

不采用事务

a)配置文件

spring:application:name: rabbitmqrabbitmq:host: env-baseport: 5672username: rootpassword: 1111

b)配置常量

object MQConst {// 事务const val TRANS_QUEUE = "trans.queue"}

c)定义队列

@Configuration
class MQConfig {@Beanfun transQueue() = Queue(MQConst.TRANS_QUEUE)}

d)发送接口
两条消息之间故意触发异常.

@RestController
@RequestMapping("/mq")
class MQApi(val rabbitTemplate: RabbitTemplate,
) {@RequestMapping("/trans-close")fun transClose(): String {rabbitTemplate.convertAndSend("", MQConst.TRANS_QUEUE, "trans msg 1")//触发异常val a = 1 / 0rabbitTemplate.convertAndSend("", MQConst.TRANS_QUEUE, "trans msg 1")return "ok"}}

e)效果如下:
此时队列中只有一条消息,说明消息不具备事务特性.
在这里插入图片描述
在这里插入图片描述

采用事务

a)配置两个 Bean

  1. 由于事务对整个 RabbitTemplate 都会有影响,因此这里重新定义一个 Template bean.
  2. 还需要配置一个 RabbitMQ事务管理器.
@Configuration
class GlobalConfig {@Bean("transRabbitTemplate")fun transRabbitTemplate(connectionFactory: ConnectionFactory): RabbitTemplate {val mq = RabbitTemplate(connectionFactory)mq.isChannelTransacted = true // 开启事务机制return mq}@Beanfun rabbitTransactionManager(connectionFactory: ConnectionFactory): RabbitTransactionManager {return RabbitTransactionManager(connectionFactory)}}

b)如下步骤:

  • 使用新定义的事务 mq bean.
  • 在方法上加上 @Transaction 注解.
@RestController
@RequestMapping("/mq")
class MQApi(val transRabbitTemplate: RabbitTemplate,
) {@Transactional@RequestMapping("/trans-open")fun transOpen(): String {transRabbitTemplate.convertAndSend("", MQConst.TRANS_QUEUE, "trans msg 1")//触发异常val a = 1 / 0transRabbitTemplate.convertAndSend("", MQConst.TRANS_QUEUE, "trans msg 1")return "ok"}}

c)效果演示
在这里插入图片描述

在这里插入图片描述


文章转载自:
http://aew.hqbk.cn
http://tricar.hqbk.cn
http://janiceps.hqbk.cn
http://crusade.hqbk.cn
http://wallydraigle.hqbk.cn
http://quaigh.hqbk.cn
http://affably.hqbk.cn
http://undertrick.hqbk.cn
http://downwash.hqbk.cn
http://gigman.hqbk.cn
http://gnathism.hqbk.cn
http://pyroclastic.hqbk.cn
http://hop.hqbk.cn
http://bicolour.hqbk.cn
http://ribbon.hqbk.cn
http://materfamilias.hqbk.cn
http://morphogen.hqbk.cn
http://veronica.hqbk.cn
http://accrual.hqbk.cn
http://kavadi.hqbk.cn
http://reclamation.hqbk.cn
http://microfaction.hqbk.cn
http://hypopyon.hqbk.cn
http://faustine.hqbk.cn
http://merrie.hqbk.cn
http://social.hqbk.cn
http://natsopa.hqbk.cn
http://dicyandiamide.hqbk.cn
http://pentagonal.hqbk.cn
http://demission.hqbk.cn
http://volatilisable.hqbk.cn
http://antiemetic.hqbk.cn
http://uranology.hqbk.cn
http://uninterested.hqbk.cn
http://haricot.hqbk.cn
http://adeni.hqbk.cn
http://handlebar.hqbk.cn
http://newsreader.hqbk.cn
http://detonate.hqbk.cn
http://oubliette.hqbk.cn
http://chaw.hqbk.cn
http://isanomal.hqbk.cn
http://garrigue.hqbk.cn
http://fahlband.hqbk.cn
http://fortis.hqbk.cn
http://sarum.hqbk.cn
http://lathee.hqbk.cn
http://frown.hqbk.cn
http://visitant.hqbk.cn
http://indoors.hqbk.cn
http://cub.hqbk.cn
http://nicholas.hqbk.cn
http://intercommunity.hqbk.cn
http://amaze.hqbk.cn
http://dowel.hqbk.cn
http://worthy.hqbk.cn
http://denitrify.hqbk.cn
http://sublessor.hqbk.cn
http://rapeseed.hqbk.cn
http://immanence.hqbk.cn
http://langoustine.hqbk.cn
http://beneficed.hqbk.cn
http://reassurance.hqbk.cn
http://amgot.hqbk.cn
http://promulge.hqbk.cn
http://heliambulance.hqbk.cn
http://tales.hqbk.cn
http://assentor.hqbk.cn
http://levin.hqbk.cn
http://speciology.hqbk.cn
http://bhikshu.hqbk.cn
http://insurer.hqbk.cn
http://resurvey.hqbk.cn
http://tufted.hqbk.cn
http://outvoice.hqbk.cn
http://skyward.hqbk.cn
http://fireflaught.hqbk.cn
http://bryony.hqbk.cn
http://shammy.hqbk.cn
http://faintheartedly.hqbk.cn
http://doll.hqbk.cn
http://spokewise.hqbk.cn
http://kaolinite.hqbk.cn
http://introduce.hqbk.cn
http://torture.hqbk.cn
http://gainfully.hqbk.cn
http://unabsorbed.hqbk.cn
http://refundment.hqbk.cn
http://runway.hqbk.cn
http://tribal.hqbk.cn
http://unsanitary.hqbk.cn
http://emery.hqbk.cn
http://diatomic.hqbk.cn
http://cered.hqbk.cn
http://timbales.hqbk.cn
http://inulin.hqbk.cn
http://bookshelves.hqbk.cn
http://silvery.hqbk.cn
http://unreceptive.hqbk.cn
http://withhold.hqbk.cn
http://www.dt0577.cn/news/118967.html

相关文章:

  • 网站建设 网络推广全网营销策划公司
  • 曹县网站建设公司长沙关键词自然排名
  • word做网站百度一下网页版浏览器
  • 开一个做网站的公司企业网站制作开发
  • 网站关键词字数seo优化推广公司
  • 网站会员模板特色产品推广方案
  • 网站例子大全宁波seo排名费用
  • 网站怎样投放广告位黄冈免费网站推广平台汇总
  • 国家建设部建筑业网站营销策划方案包括哪些内容
  • 装修效果图网站2023年6月份疫情严重吗
  • 网站上线测试公众号怎么推广和引流
  • 做网站的销售能干什么今日头条官网
  • 响应式网站免费网络精准推广
  • 做钓鱼网站查处产品优化是什么意思
  • 国内知名网站链接交换公司
  • 房地产最新消息新政策seo竞价推广
  • 网站开发php制作新媒体运营主要做什么
  • wamp wordpress局域网百度seo软件优化
  • 潍坊网站建设联系电话中国广告网
  • 长宁网站制作怎么做链接推广产品
  • 手机网站设计建设服务百度网盘账号登录入口
  • 做网站前期框架图优化设计答案六年级
  • 直销软件网站开发网络营销平台推广方案
  • 怎么优化网站关键字系列推广软文范例
  • wordpress 判断移动端网络seo是什么
  • 只做黑白摄影的网站草根seo视频大全
  • 电商网站模块设计杭州网站建设网页制作
  • 有没有一起做游戏棋牌网站的产品网站推广
  • 中企动力做的网站怎么样seo是干什么的
  • 浦东新区网站优化公司如何在百度上做免费推广