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

青岛做网站哪个公司好wordpress微信支付购买课程

青岛做网站哪个公司好,wordpress微信支付购买课程,公司企业黄页,网站技术培训什么是死信以及死信交换机 当一个队列中的消息满足下列情况之一时,可以成为死信: 1. 消费者使用basic.reject或 basic.nack声明消费失败,并且消息的requeue参数设置为false 2. 消息是一个过期消息,超时无人消费 3. 要投递的队列消…

什么是死信以及死信交换机

当一个队列中的消息满足下列情况之一时,可以成为死信

        1. 消费者使用basic.rejectbasic.nack声明消费失败,并且消息的requeue参数设置为false

        2. 消息是一个过期消息,超时无人消费

        3. 要投递的队列消息满了,无法投递

如果一个队列中的消息已经成为死信,并且这个队列通过dead-letter-exchange属性指定了一个交换机,那么队列中的死信就会投递到这个交换机中,而这个交换机就称为死信交换机(Dead Letter Exchange)。而此时加入有队列与死信交换机绑定,则最终死信就会被投递到这个队列中。

死信交换机有什么作用呢?

  1. 收集那些因处理失败而被拒绝的消息

  2. 收集那些因队列满了而被拒绝的消息

  3. 收集因TTL(有效期)到期的消息

为什么这里会介绍死信交换机呢,举个例子,我们在购买车票的时候会有一个支付时间,8分钟没有支付就会销毁订单,返回车票。mq不可能时刻监控客户有没有支付,可以使用延迟消息,延迟8分钟,八分钟后再去发送消息到mq,在查看支付情况。

DelayExchange插件

官网下载地址:

https://github.com/rabbitmq/rabbitmq-delayed-message-exchange

因为我们是基于Docker安装,所以需要先查看RabbitMQ的插件目录对应的数据卷。

docker volume inspect mq-plugins

[{"CreatedAt": "2024-06-19T09:22:59+08:00","Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/mq-plugins/_data","Name": "mq-plugins","Options": null,"Scope": "local"}
]

 插件目录被挂载到了/var/lib/docker/volumes/mq-plugins/_data这个目录,我们上传插件到该目录下。

接下来执行命令,安装插件:

docker exec -it mq rabbitmq-plugins enable rabbitmq_delayed_message_exchange 

 

 具体使用

声明交换机,基于@Bean:

import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Slf4j
@Configuration
public class DelayExchangeConfig {@Beanpublic DirectExchange delayExchange(){return ExchangeBuilder.directExchange("delay.direct") // 指定交换机类型和名称.delayed() // 设置delay的属性为true.durable(true) // 持久化.build();}@Beanpublic Queue delayedQueue(){return new Queue("sdgstu.queue");}@Beanpublic Binding delayQueueBinding(){return BindingBuilder.bind(delayedQueue()).to(delayExchange()).with("delay");}
}

基于注解:

@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "stusdg.queue", durable = "true"),exchange = @Exchange(name = "delay.direct", delayed = "true"),key = "delay"
))
public void listenDelayMessage(String msg){log.info("接收到delay.queue的延迟消息:{}", msg);
}

发送消息:

@Test
void testPublisherDelayMessage() {// 1.创建消息String message = "hello, delayed message";// 2.发送消息,利用消息后置处理器添加消息头rabbitTemplate.convertAndSend("delay.direct", "delay", message, new MessagePostProcessor() {@Overridepublic Message postProcessMessage(Message message) throws AmqpException {// 添加延迟消息属性message.getMessageProperties().setDelay(5000);return message;}});
}

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

相关文章:

  • 宜昌网站推广网站建设策划书的主要内容
  • 上海网站建设公司一个网站建设需要多少钱
  • 7c框架 网站建设杭州公司招聘
  • 做网站工具 不懂代码家纺网站建设
  • wordpress给菜单加图标wordpress站点地图优化
  • 恩施做网站旅游门户系统
  • 绵阳优化网站排名网站做m版
  • 网站开分站wordpress更换百度编辑器
  • 漳州北京网站建设榆林网站建设熊掌号
  • 山西房地产网站建设建设网站困难的解决办法
  • 赣州 做网站golang做网站怎么样
  • seo网站排名厂商定制wordpress文章字符插件
  • 专业网站设计流程图江苏住房与城乡建设厅网站
  • 彩票网站开发的宜布网网站谁做的
  • 网站建设 年终总结小程序模板源下载
  • 网站编程技术有哪些公司网站如何租用服务器
  • 建设通官方网站怎么自学室内设计与装修
  • iis 网站模板下载天津移动网站建设
  • 哈尔滨网页网站制作wordpress+浮框
  • 南头外贸网站建设公司做网站哪家网站好
  • 杭州品格网站设计广州市官网网站建设价格
  • 莆田网站建设方案服务网络推广公司 深圳
  • wordpress适配手机网络seo优化平台
  • 510企业网站系统源码低价建设手机网站
  • 网站建站平台系统北京网站开发建设 58同城
  • 鹤壁百度网站建设wordpress开发架构
  • 网站建设排行榜qq网页版在线登录入口
  • 怎样一个域名做两个网站设计衣服图制作软件
  • 百度推广商桥网站上怎么去掉百度搜索排名规则
  • wordpress 留言给站长发邮件网站欧美风格