首页 > 其他分享 >死信队列 - 死信交换机绑定配置【RabbitMQ】

死信队列 - 死信交换机绑定配置【RabbitMQ】

时间:2023-06-20 19:56:19浏览次数:53  
标签:RabbitMQ 死信 交换机 springframework org import public

一、逻辑图

二、死信交换机绑定配置

 1 package cn.itcast.mq.config;
 2 
 3 import org.springframework.amqp.core.*;
 4 import org.springframework.context.annotation.Bean;
 5 import org.springframework.context.annotation.Configuration;
 6 
 7 import java.util.HashMap;
 8 import java.util.Map;
 9 
10 @Configuration
11 public class TTLConfig {
12 
13     /**
14      * 默认交换机(可不要)
15      */
16     @Bean
17     public DirectExchange directExchange01() {
18         return new DirectExchange("mf.exchange");
19     }
20 
21     /**
22      * 死信队列
23      */
24     @Bean
25     public Queue queue01() {
26         Map<String, Object> args = new HashMap<>();
27         // 1.标识是一个死信队列
28         args.put("x-dead-letter-routing-key", "ttl");
29         // 2.标识信息死亡后进入哪个死信交换机
30         args.put("x-dead-letter-exchange", "dl.exchange");
31         // 3.死亡时间
32         args.put("x-message-ttl", 10000);
33         return QueueBuilder.durable("dl.queue").withArguments(args).build();
34     }
35 
36     /**
37      * 关系建立 - 默认交换机 与 死信队列
38      */
39     @Bean
40     public Binding queueBinding01(DirectExchange directExchange01, Queue queue01) {
41         return BindingBuilder.bind(queue01).to(directExchange01).with("ttl");
42     }
43 
44     /**
45      * 死信交换机
46      */
47     @Bean
48     public DirectExchange directExchange02() {
49         return new DirectExchange("dl.exchange");
50     }
51 
52     /**
53      * 普通队列
54      */
55     @Bean
56     public Queue queue02() {
57         return new Queue("mf.queue");
58     }
59 
60     /**
61      * 关系建立 - 死信交换机 与 普通队列
62      */
63     @Bean
64     public Binding queueBinding02(DirectExchange directExchange02, Queue queue02) {
65         return BindingBuilder.bind(queue02).to(directExchange02).with("ttl");
66     }
67 }

 三、死信交换机测试

package cn.itcast.mq.helloworld;

import cn.itcast.mq.PublisherApplication;
// import org.junit.Test;
import org.junit.jupiter.api.Test;
// import org.junit.runner.RunWith;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
// import org.springframework.test.context.junit4.SpringRunner;

@SpringBootTest(classes = PublisherApplication.class)
// @RunWith(SpringRunner.class)
public class SpringAMQPTest {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    /**
     * 延迟消息
     */
    @Test
    public void test06() {
        String exchange = "mf.exchange";
        String msg = "10秒后的延迟消息";
        String routingKey = "ttl";
        rabbitTemplate.convertAndSend(exchange, routingKey, msg);
    }
}

四、监听类

 1 package cn.itcast.mq.easyqueue;
 2 
 3 import org.springframework.amqp.rabbit.annotation.RabbitListener;
 4 import org.springframework.stereotype.Component;
 5 
 6 @Component
 7 public class SpringRabbitListener {
 8 
 9     @RabbitListener(queues = "mf.queue")
10     public void msg02(String msg) {
11         System.out.println("接收到的消息为:" + msg);
12     }
13 }

五、启动类

 1 package cn.itcast.mq;
 2 
 3 import org.springframework.boot.SpringApplication;
 4 import org.springframework.boot.autoconfigure.SpringBootApplication;
 5 
 6 @SpringBootApplication
 7 public class ConsumerApplication {
 8     public static void main(String[] args) {
 9         SpringApplication.run(ConsumerApplication.class, args);
10     }
11 }

六、执行测试类后,在RabbitMQ 控制台的效果

七、运行启动类后,再次使用测试类的结果

 

标签:RabbitMQ,死信,交换机,springframework,org,import,public
From: https://www.cnblogs.com/Rover20230226/p/17494382.html

相关文章

  • windows环境下安装RabbitMQ(超详细)
    windows环境下安装RabbitMQ(超详细) https://blog.csdn.net/qq_25919879/article/details/113055350luckySnow-julyo已于2023-03-2116:26:29修改66281 收藏755分类专栏:rabbitmq文章标签:javarabbitmqerlang后端消息队列版权rabbitmq专栏收录该内容1篇文章9订阅......
  • RabbitMQ高级之消息可靠性投递
    什么是可靠性投递?生产者:作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ为我们提供了两种方式用来控制消息的投递可靠性模式。分别是:confirm确认模式return退回模式消息投递路线如下所示是生产者到消费者的模型:RabbitMQ的整个消息投递的路径Produc......
  • 锐捷交换机多链路 限速
    应用场景:Qospoliy-map可以关联访问控制列表ACL,实现基于特定报文流的限速(比如只针对网页的http的流量进行限速,或者是只针对XX网段的用户限速等),利用ACL可灵活配置的特点,可以满足客户对不同流量的定制化限速,当然这种方式的配置会相对复杂点,当客户有如上需求的时候可以考虑采用poli......
  • 华三交换机配置IRF堆叠
    一、IRF的概述IRF(IntelligentResilientFramework,智能弹性架构)是H3C自主研发的软件虚拟化的技术。它的核心思路是将多太设备通过IRF物理端口连接在一起,进行必要的配置后,虚拟化成一台“分布式设备”。理解为堆叠有助于我们更快的理解。堆叠是指将一台以上的交换机组合起来共同工......
  • H3C交换机DHCP+安全配置
    1配置需求及实现的效果将防火墙部署在互联网出口,使用固定IP地址线路接入互联网。运营商提供的IP地址为198.76.28.30/30,网关为198.76.28.29,DNS地址为114.114.114.114。初步规划防火墙使用3接口接入运营商,使用4接口连接内部网络,内部网络使用192.168.10.0网段,要求内网终端可以自动......
  • 记录 Windows 下 RabbitMQ 的部署
    1、软件下载安装前需要安装Erlang语言环境:https://www.erlang.org/downloadsRabbitMQ下载:https://www.rabbitmq.com/download.html2、运行安装包,一路下一步3、打开开始菜单,找到RabbitMQCommandPrompt(sbindir)运行......
  • 汉源高科4万兆光6个万兆光口+24个千兆光口+24千兆电口万兆三层网管型工业以太网交换机
     HY5700-856XG24GX24GT三层管理型工业以太网交换机,提供6个万兆光口+24个千兆光口+24个千兆电口。可帮助用户实现以太网数据的交换、汇聚以及远距离光传输功能。产品设计符合以太网标准,添加防雷、防静电保护措施,-40℃~+85℃的宽范围工作温度,性能稳定可靠。该设备可广泛应用于智能交......
  • VMIC5565反射内存卡供应厂家 PCI-5565多模光钎网络 GE反射内存模块 VMIC反射内存PMC系
    反射内存实时网的特点VMIC反射内存是一种通过局域网在互连的计算机间提供的数据传输的技术,强实时网络设计人员已经越来越多地采用这种技术。VMIC反射内存实时局域网的概念十分简单,就是设计一种网络内存板,在分布系统中实现内存至内存的通信,并且没有软件开销。每台结点机上插一块反射......
  • 交换机配置
    华为交换机的IP地址分配为从大到小进行分配,思科交换机的IP地址分配为从小到大进行分配。H3C的跟华为一样,锐捷的跟思科的一样。1、划分VLAN和接口第一步:创建VLANvlanbatch10203040//创建VLAN102030402、DHCP3、静态路由1、PPPoE2、NAT3、静态路由4、NATserv......
  • RabbitMQ快速使用代码手册
    本篇博客的内容为RabbitMQ在开发过程中的快速上手使用,侧重于代码部分,几乎没有相关概念的介绍,相关概念请参考以下csdn博客,两篇都是我找的精华帖,供大家学习。本篇博客也持续更新~~~内容代码部分由于word转md格式有些问题,可以直接查看我的有道云笔记,链接:https://note.youdao.com/s/A......