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

华龙建设部网站查不到亳州做网站的公司

华龙建设部网站查不到,亳州做网站的公司,做网站需要买主机那,无极游戏网一、死信的概念 先从概念解释上搞清楚这个定义#xff0c;死信#xff0c;顾名思义就是无法被消费的消息#xff0c;字面意思可以这样理 解#xff0c;一般来说#xff0c;producer 将消息投递到 broker 或者直接到 queue 里了#xff0c;consumer 从 queue 取出消息进行…一、死信的概念 先从概念解释上搞清楚这个定义死信顾名思义就是无法被消费的消息字面意思可以这样理 解一般来说producer 将消息投递到 broker 或者直接到 queue 里了consumer 从 queue 取出消息进行消费但某些时候由于特定的原因导致 queue 中的某些消息无法被消费这样的消息如果没有后续的处理就变成了死信有死信自然就有了死信队列。应用场景:为了保证订单业务的消息数据不丢失需要使用到 RabbitMQ 的死信队列机制当消息 消费发生异常时将消息投入死信队列中.还有比如说: 用户在商城下单成功并点击去支付后在指定时间未支付时自动失效 二、死信的来源 1、消息 TTL 过期 2、队列达到最大长度(队列满了无法再添加数据到 mq 中) 3、消息被拒绝(basic.reject 或 basic.nack)并且 requeuefalse. 三、死信实战 代码架构图 生产者正常情况下走的是普通的交换机这个交换机的类型是 direct 它和普通队列之间的关系是一个叫 zhangsan 的路由 key 正常情况下会被 C1 消费。但是发生了上面所说的三种情况中的一种成为了死信然后被转换到死信交换机中这个死信交换机也是 direct 类型它们之间的 routingKey 是 lisi,然后就进入了死信队列死信队列由  C2 消费。 消息 TTL 过期 1.application.yml 配置 spring:rabbitmq:host: 127.0.0.1port: 5672username: guestpassword: guestvirtual-host: metieVirtualHosts # listener: # simple: # retry: # ### 开启消费者程序出现异常的情况下会进行重试 # enabled: true # ### 最大重试次数 # max-attempts: 5 # ### 重试间隔次数 # initial-interval: 3000 # acknowledge-mode: manualserver:port: 8080###死信队列 mayikt:dlx:exchange: mayikt_dlx_exchangequeue: mayikt_order_dlx_queueroutingkey: dlx### 订单order:exchange: mayikt_order_exchangequeue: mayikt_order_queueroutingkey: mayikt.order 2MQConfig配置 package com.config;import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.BindingBuilder; import org.springframework.amqp.core.DirectExchange; import org.springframework.amqp.core.Queue; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component;import java.util.HashMap; import java.util.Map;/*** description:* author: huangan* date: 2024/11/23 20:48*/ Component public class DeadLetterMQConfig {/*** 订单交换机*/Value(${mayikt.order.exchange})private String orderExchange;/*** 订单队列*/Value(${mayikt.order.queue})private String orderQueue;/*** 订单路由key*/Value(${mayikt.order.routingkey})private String orderRoutingkey;/*** 死信交换机*/Value(${mayikt.dlx.exchange})private String dlxExchange;/*** 死信队列*/Value(${mayikt.dlx.queue})private String dlxQueue;/*** 死信路由*/Value(${mayikt.dlx.routingkey})private String dlxRoutingkey;/*** 声明死信交换机* return*/Beanpublic DirectExchange dlxExchange(){return new DirectExchange(dlxExchange);}/*** 声明死信队列* return*/Beanpublic Queue dlxQueue(){return new Queue(dlxQueue);}/*** 声明订单业务交换机* return*/Beanpublic DirectExchange orderExchange(){return new DirectExchange(orderExchange);}/*** 声明订单队列* return*/Beanpublic Queue orderQueue(){//订单队列要绑定死信交换机MapString,Object arguments new HashMap(2);arguments.put(x-dead-letter-exchange,dlxExchange);arguments.put(x-dead-letter-routing-key,dlxRoutingkey);return new Queue(orderQueue,true,false,false,arguments);}/*** 绑定死信队列到死信交换机* return*/Beanpublic Binding binding(){return BindingBuilder.bind(dlxQueue()).to(dlxExchange()).with(dlxRoutingkey);}/*** 绑定订单队列到订单交换机* return*/Beanpublic Binding orderBinding(){return BindingBuilder.bind(orderQueue()).to(orderExchange()).with(orderRoutingkey);} }3.生产者OrderProducer package com.producer;import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** description:* author: huangan* date: 2024/11/23 21:58*/ RestController public class OrderProducer {Autowiredprivate RabbitTemplate rabbitTemplate;/*** 订单交换机*/Value(${mayikt.order.exchange})private String orderExchange;/*** 订单路由key*/Value(${mayikt.order.routingkey})private String orderRoutingkey;RequestMapping(/sendOrder)public String sendOrder(){String msg 测试数据;rabbitTemplate.convertAndSend(orderExchange,orderRoutingkey,msg,message - {//设置消息过期时间10秒过期message.getMessageProperties().setExpiration(10000);return message;});return success;}}4.订单消费者 package com.consumer;import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.annotation.Queue; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component;/*** description: 订单队列* author: huangan* date: 2024/11/23 22:13*/ Component Slf4j public class OrderConsumer {/*** 监听队列回调方法* param msg*/RabbitListener(queues mayikt_order_queue)public void orderConsumer(String msg){log.info(正常订单消费者消费MSG:{},msg);} }5.死信消费者 package com.consumer;import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component;/*** description: 死信队列* author: huangan* date: 2024/11/23 22:17*/ Slf4j Component public class OrderDlxConsumer {/*** 监听队列回调方法* param msg*/RabbitListener(queues mayikt_order_dlx_queue)public void orderConsumer(String msg){log.info(死信队列消费订单消费者消费MSG:{},msg);} }
http://www.w-s-a.com/news/835932/

相关文章:

  • 做动画在线观看网站网上花店 网站源代码
  • 做网站项目体会商业信息
  • 深圳的设计网站谷歌浏览器下载手机版官网
  • 苏州网站建设都找全网天下外贸响应式网站设计
  • 揭阳专业做网站网站迁移教材
  • 手机上怎么上传网站吗工程信息网站建设
  • 用手机建网站微信手机网站流程
  • 专注软件优化分享的网站梧州网页设计
  • 长春火车站和高铁站是一个站吗公司名称注册查询系统
  • 便利的集团网站建设网页的依托网站
  • 茶叶网站建设题库制作助手app
  • 网站建设栏目层级北京网站搭建公司电话
  • 网站开发运营经理打开百度竞价页面是网站是什么
  • 国内最专业的设计网站建设现在用什么语言做网站
  • 湖南网站开发 岚鸿象山县建设工程招投标网站
  • 长沙免费网站排名wordpress 教学
  • 专门做app的网站html代码是什么
  • 临沂网站制作建设欧米茄表官网
  • 北京模板网站开发全包网站建设的第三方平台
  • 在凡科做的网站怎么推广网页模板下载 免费 html
  • 有关网站建设的标题仿亿欧网wordpress
  • 网站建设公司销售招聘常用的搜索引擎有哪些?
  • wordpress中.htaccess新上线的网站怎么做优化
  • 家教网站怎么做网站建设品牌推荐
  • 青岛做外贸网站建设茶叶公司网站建设策划书
  • 个人电脑做网站主机三合一网站
  • 用html框架做网站怎么在.Net中做团购网站
  • 怎样建一个自己公司的网站制作网站需要钱吗
  • 联盟网站制作wap网站制作公司
  • 美丽乡村建设发展论坛网站wordpress 仿站 教程网