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

做拍卖的网站头像在线设计生成器

做拍卖的网站,头像在线设计生成器,图书类网站建设策划书,湖南建设银行网站是多少1. 简介 1.1 DLX简介 DLX: Dead-Letter-Exchange 死信交换器,死信邮箱 当消息成为Dead message后,可以被重新发送到另一个交换机,这个交换机就是DLX。 如下图所示: 其实死信队列就是一个普通的交换机,有些队列的消息…

1. 简介

1.1 DLX简介

DLX: Dead-Letter-Exchange 死信交换器,死信邮箱

当消息成为Dead message后,可以被重新发送到另一个交换机,这个交换机就是DLX。
如下图所示:
在这里插入图片描述
其实死信队列就是一个普通的交换机,有些队列的消息成为死信后,(比如过期了或者队列满了)这些死信一般情况下是会被 RabbitMQ 清理的。但是你可以配置某个交换机为此队列的死信交换机,该队列的消息成为死信后会被重新发送到此 DLX 。怎么处理这个DLX中的死信就是看具体的业务场景了,DLX 中的信息可以被路由到新的队列。

2.2 出现死信的情况

  • 队列长度到达限制,无法加入新的消息
  • 消费者拒接消费消息,并且不重回队列。该信息会被清除并进入死信队列
  • 原队列存在消息过期设置,消息到达超时时间未被消费

2.3 代码示例

死信队列可以定义单条消息和整个队列死信,分别是下方的2和4。

2.代码示例

以下定义了两个交换机,分别是普通交换机和死信交换机,定义了两个队列,分别是普通队列和死信队列。

@Configuration
public class RabbitConfig {final static String exchangeNormalName = "exchange.dlx.normal";final static String queueNormalName = "queue.dlx.normal";final static String exchangeDeadName = "exchange.dlx.dead";final static String queueDeadName = "queue.dlx.dead";//正常交换机@Beanpublic DirectExchange normalExchange(){return ExchangeBuilder.directExchange(exchangeNormalName).build();}//正常队列@Beanpublic Queue normalQueue(){Map<String, Object> map = new HashMap<>();map.put("x-message-ttl", 20000);//设置20s的过期时间map.put("x-dead-letter-exchange", exchangeDeadName);//设置死信交换机名字map.put("x-dead-letter-routing-key", "error");//设置死信交换机路由kreturn QueueBuilder.durable(queueNormalName).withArguments(map).build();}@Beanpublic Binding normalBinding(DirectExchange normalExchange, Queue normalQueue){return BindingBuilder.bind(normalQueue).to(normalExchange).with("order");}//死信交换机@Beanpublic DirectExchange dlxExchange(){return ExchangeBuilder.directExchange(exchangeDeadName).build();}//死信队列@Beanpublic Queue dlxQueue(){return QueueBuilder.durable(queueDeadName).build();}@Beanpublic Binding dlxBinding(DirectExchange dlxExchange, Queue dlxQueue){return BindingBuilder.bind(dlxQueue).to(dlxExchange).with("error");}}

如上,设置普通交换机把过期内容放置到死信交换机中去。最重要的几行代码如下:

  • map.put(“x-message-ttl”, 20000);//设置20s的过期时间
  • map.put(“x-dead-letter-exchange”, exchangeDeadName);//设置死信交换机名字
  • map.put(“x-dead-letter-routing-key”, “error”);//设置死信交换机路由key

3.测试结果

在这里插入图片描述

经过20s之后,如下,将普通队列的信息放入死信队列中

在这里插入图片描述
其中TTL代表x-message-ttl,DLX代表x-dead-letter-exchange,DLK代表x-dead-letter-routing-key

4.单条消息

上方是将整个队列设置过期时间,也可以将单条消息设置过期时间,即不给整个队列设置过期时间

		//map.put("x-message-ttl", 20000);//设置20s的过期时间map.put("x-dead-letter-exchange", exchangeDeadName);//设置死信交换机名字map.put("x-dead-letter-routing-key", "error");//设置死信交换机路由k

而是在消息体中设置过期时间

@Component
@Slf4j
public class MessageService {@Autowiredprivate RabbitTemplate rabbitTemplate;public void senMsg() throws InterruptedException {//定义消息String msg="单条消息过期时间test";MessageProperties messageProperties = new MessageProperties();messageProperties.setExpiration("10000"); //10sMessage message= MessageBuilder.withBody(msg.getBytes()).andProperties(messageProperties).build();//发消息rabbitTemplate.convertAndSend("exchange.dlx.normal","order",message);log.info("消息发送完毕,发送时间为:{}", new Date());}
}

在这里插入图片描述

在这里插入图片描述

http://www.yayakq.cn/news/870749/

相关文章:

  • 深圳商城手机网站建设建设网站有哪些好处和坏处
  • 建设网站能自学吗网站字体设计规范
  • 高校信息化建设 网站网络营销seo教程
  • 商企通三合一网站建设网页版微信怎么退出
  • 网站建设制作价格云南住建局和城乡建设官网
  • 律师网站建设模板做公司网站公司
  • 网站维护计划手机网价格直降
  • 密云城市建设官方网站辽宁工程建设信息网诚信库怎么填
  • 上海市建设协会考试网站网站设计师发展方向
  • 网站设计公司长沙网站的领券商城怎么做
  • 企业网站总承包建设模式关键步骤房地产行业现状及前景
  • 珠海seo网站建设医院建筑工程网
  • 网站开启速度变慢了佛山建设企业网站
  • 800元做小程序网站网站平台搭建包括哪些
  • 这么做网站网站建设维护费合同范本
  • 安徽品质网站建设创新wordpress 2.0 下载
  • 瓯北网站制作系统越南语网站建设
  • 响应式网站跟自适应网站的区别大连海洋大学工程建设信息网
  • 企业宣传网站系统建设方案西安制作网站公司简介
  • 两学一做专题网站介绍慈溪建设公司网站
  • 怎么建好网站甘肃建设网站首页
  • 做家装图接单网站建站之星好吗
  • 手机抖音你做我女朋友好吗套路网站南京网站设计网站
  • 网站建设哪些微信文章怎么wordpress
  • 网站备案准备资料定制网页设计报价
  • 杂粮网站建设的必要性徐州建设工程公共资源交易平台
  • 建设网站平台滴滴车网站建设需要云主机吗
  • 建设项目环境影响登记表备案系统网站wordpress报名表单
  • 嘉定网站建设公司好的html5网站模板
  • 金融投资公司网站建设论文嵌入式软件开发技术