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

韩都衣舍网站建设的改进wordpress删除菜单

韩都衣舍网站建设的改进,wordpress删除菜单,关于建设 网站的请示,网站建设 报价文章目录 生产者消息确认机制概述confirm 代码实现return 代码实现 生产者消息确认机制 概述 为了保证信息 从生产者 发送到 队列#xff0c;因此引入了生产者的消息确认机制. RabbitMQ 提供了两种解决方案#xff1a; 通过事务机制实现.通过发送确认机制#xff08;confi… 文章目录 生产者消息确认机制概述confirm 代码实现return 代码实现 生产者消息确认机制 概述 为了保证信息 从生产者 发送到 队列因此引入了生产者的消息确认机制. RabbitMQ 提供了两种解决方案 通过事务机制实现.通过发送确认机制confirm 和 return实现. 因为事务机制比较消耗性能在实际工作中用的也不多因此这里主要介绍 confirm 和 return 机制来实现发送放的确认. aconfirm 确认模式 如上图confirm 确认模式主要保障于 生产者 到 交换机 的消息可靠性. 具体的在生产者发送消息之前给 RabbitTemplate 设置一个 ConfirmCallback 回调监听 如果 Exchange 成功收到消息那么 ConfirmCallback 这个回调 ack 参数就为 true如果 Exchange 没有收到消息那么 ConfirmCallback 这个回调 ack 参数就为 false breturn 退回模式 如上图confirm 确认模式主要保障于 交换机 到 队列 的消息可靠性. 具体的在生产者发送消息之前给 RabbitTemplate 设置一个 ReturnsCallback 回调监听 如果 Queue 成功收到 Exchange 的消息那么 ReturnsCallback 回调监听 就不会收到任何消息.如果 Queue 没有收到 Exchange 的消息那么 ReturnsCallback 回调监听 就会收到该消息. confirm 代码实现 a配置文件 spring:application:name: rabbitmqrabbitmq:host: env-baseport: 5672username: rootpassword: 1111publisher-confirm-type: correlated # 开启发送方确认机制b交换机、队列、绑定配置 Bean(confirmExchange)fun confirmExchange() DirectExchange(MQConst.CONFIRM_EXCHANGE)Bean(confirmQueue)fun confirmQueue() Queue(MQConst.CONFIRM_QUEUE)Bean(confirmBinding)fun confirmBinding(Qualifier(confirmExchange) exchange: DirectExchange,Qualifier(confirmQueue) queue: Queue,): Binding BindingBuilder.bind(queue).to(exchange).with(MQConst.CONFIRM_BINDING)cconfirmRabbitTemplate Bean 配置 Configuration class MQTemplateConfig {/*** 这个配置一定要有(或者有大于等于 2 个的 RabbitTemplate Bean)** 这是由于 Autowired 注解自身的原因(以 rabbitmq 为例):* 如果配置文件中配置 rabbitmq 相关连接信息那么 spring 会自动为其创建 RabbitTemplate Bean 对象* 如果配置文件中配置 rabbitmq 相关连接信息而且代码中也配置了一个 RabbitTemplate 的 Bean(名称为 confirmRabbitTemplate)那么 Spring 将不会自动配置默认的 RabbitTemplate Bean 对象* 这就导致我们无论代码写的注入的是 rabbitTemplate 还是 confirmRabbitTemplate但实际上注入的都是 confirmRabbitTemplate*/Bean(rabbitTemplate)fun rabbitTemplate(connectionFactory: ConnectionFactory): RabbitTemplate {return RabbitTemplate(connectionFactory)}Bean(confirmRabbitTemplate)fun confirmRabbitTemplate(connectionFactory: ConnectionFactory): RabbitTemplate {val tpl RabbitTemplate(connectionFactory)tpl.setConfirmCallback(RabbitTemplate.ConfirmCallback { correlationData, ack, cause -println(执行了 confirm ...)if (ack) {println(confirm ack: { 消息id: ${correlationData?.id} })} else {println(confirm nack: { 消息id: ${correlationData?.id}, cause: $cause })//进行相应的业务处理...}})return tpl}}d生产者接口 RestController RequestMapping(/mq) class MQApi(val confirmRabbitTemplate: RabbitTemplate ) {RequestMapping(/confirm)fun confirm(): String {val data CorrelationData(1)confirmRabbitTemplate.convertAndSend(MQConst.CONFIRM_EXCHANGE, MQConst.CONFIRM_BINDING, confirm msg 1, data)return ok}}此处演示无需消费者… e消息正确的路由到交换机效果如下 f消息没有找到交换机发送消息时写了一个不存在的交换机的名字效果如下 return 代码实现 a配置文件 spring:application:name: rabbitmqrabbitmq:host: env-baseport: 5672username: rootpassword: 1111publisher-confirm-type: correlated # 开启发送方确认机制bbean 的配置 Configuration class MQTemplateConfig {/*** 这个配置一定要有(或者有大于等于 2 个的 RabbitTemplate Bean)** 这是由于 Autowired 注解自身的原因(以 rabbitmq 为例):* 如果配置文件中配置 rabbitmq 相关连接信息那么 spring 会自动为其创建 RabbitTemplate Bean 对象* 如果配置文件中配置 rabbitmq 相关连接信息而且代码中也配置了一个 RabbitTemplate 的 Bean(名称为 confirmRabbitTemplate)那么 Spring 将不会自动配置默认的 RabbitTemplate Bean 对象* 这就导致我们无论代码写的注入的是 rabbitTemplate 还是 confirmRabbitTemplate但实际上注入的都是 confirmRabbitTemplate*/Bean(rabbitTemplate)fun rabbitTemplate(connectionFactory: ConnectionFactory): RabbitTemplate {return RabbitTemplate(connectionFactory)}Bean(confirmRabbitTemplate)fun confirmRabbitTemplate(connectionFactory: ConnectionFactory): RabbitTemplate {val tpl RabbitTemplate(connectionFactory)tpl.setConfirmCallback(RabbitTemplate.ConfirmCallback { correlationData, ack, cause -println(执行了 confirm ...)if (ack) {println(confirm ack: { 消息id: ${correlationData?.id} })} else {println(confirm nack: { 消息id: ${correlationData?.id}, cause: $cause })//进行相应的业务处理...}})//这里可以和 confirm模式 一起配置//mandatory true 属性是在告诉 rabbitmq如果一个消息无法被任何队列消费那么该消息就会返回给发送者此时 ReturnCallback 就会被触发//mandatory 相当于是开启 ReturnsCallback 前提tpl.setMandatory(true)tpl.setReturnsCallback(RabbitTemplate.ReturnsCallback { returned -println(执行了 return ...)println(return: $returned)})return tpl}}c生产者接口 RestController RequestMapping(/mq) class MQApi(val confirmRabbitTemplate: RabbitTemplate ) {RequestMapping(/confirm)fun confirm(): String {val data CorrelationData(1)confirmRabbitTemplate.convertAndSend(MQConst.CONFIRM_EXCHANGE, MQConst.CONFIRM_BINDING, confirm msg 1, data)return ok}}d正确的路由到队列效果如下 可以看到只有 confirm模式 被触发. e没有路由到队列发送消息时我改成了一个不存在的 routingKey 名字效果如下
http://www.dnsts.com.cn/news/166891.html

相关文章:

  • 云盘可以做网站吗外包网络推广公司
  • 网站tag作用.net 建网站
  • 服装网站开发的意义it彩票网站建设维护工程师
  • 安庆市建设银行网站做百度联盟做什么类型网站
  • 做网站建设的合同长治个人网站建设
  • 兰州网站建设怎么选中山微信网站
  • 微信网站 影楼企石网站建设公司
  • 江西旅游网站建设方案wordpress分布式
  • php+mysql网站开发教程贵州高端网站建设
  • 湖州做网站建设的公司哪家好流行的企业网站推广
  • 复旦大学精品课程网站科技赋能千年残像
  • 网站模块怎么恢复百度网络公司
  • 中国制造网外贸站建设银行app下载
  • 雄安做网站生产企业做网站有用吗
  • 广东外贸网站建设余姚市建设局网站
  • 高端网站建设专业营销团队天津网站建设工作室
  • 网站怎么优化排名网页建设推荐
  • 网站容易出现的问题解决方案企业网站
  • 外贸网站建设平台软件源码成品资源下载网站
  • 德州做网站公司做原型网站
  • 山东专业企业网站建设可商用图片素材网站
  • 网站制作电话多少钱新乡专业网站制作
  • 泡棉制品东莞网站建设百度舆情
  • 互联网金融p2p网站建设呼和浩特百度公司
  • wordpress做的网站扩展性高端网站建设浩森宇特
  • 网站开发流程书籍网络营销零基础培训
  • 网站开发公司 logo福州seo网站优化
  • 曲靖网站建设公司靖网站建设大连网站制作咨询
  • 广州医院网站建设网站推广营销收费
  • 餐饮网站建设案例石家庄高铁站