RabbitMQ - 06 - Topic交换机

目录

控制台创建队列与交换机

编写消费者方法

编写生产者测试方法

结果


Topic交换机与Direct交换机基本一致

可参考 这篇帖子 http://t.csdnimg.cn/AuvoK

topic交换机与Direct交换机的区别是

  • Topic交换机接收的消息RoutingKey必须是多个单词,以 . 分割

  • Topic交换机与队列绑定时的bindingKey可以指定通配符

  • #:代表0个或多个词

  • *:代表1个词

实现Topic交换机

控制台创建队列与交换机

创建两个队列

创建topic交换机

绑定队列和交换机

注意routing key 一个是 china 开头 一个是news结尾

编写消费者方法

java 复制代码
package cn.itcast.mq.lintener;

import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Slf4j
@Component
public class MQListener {

    @RabbitListener(queues = "topic.queue1")
    public void listenTopicQueue1(String message)  {
        log.info("消费者1收到了消息:........... {}", message);
//        System.out.println("消费者收到了消息: " + message);
    }

    @RabbitListener(queues = "topic.queue2")
    public void listenTopicQueue2(String message)  {
        log.info("消费者2收到了消息: {}", message);
//        System.out.println("消费者收到了消息: " + message);
    }

}

编写生产者测试方法

java 复制代码
package cn.itcast.mq.helloworld;

import org.apache.logging.log4j.message.Message;
import org.junit.jupiter.api.Test;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.messaging.converter.StringMessageConverter;

@SpringBootTest
public class SpringAMQPTest {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    //  topic交换机
    @Test
    void testTopicExchange(){
        String exchangeName = "hmall.topic";
        String message = "hello, topic";
        rabbitTemplate.convertAndSend(exchangeName,"china.news",message);
    }

}

结果

发送了一条消息,两个消息队列都获取到了,

因为发送者的routing key刚好满足两个消息队列的要求,因此这两个queue都能接收到这条消息

相关推荐
或与且与或非3 小时前
.net 8压榨rabbitMq性能
rabbitmq·.net·ruby
菜鸡儿齐5 小时前
kafka简介
分布式·kafka
周杰伦_Jay5 小时前
【实战|旅游知识问答RAG系统全链路解析】从配置到落地(附真实日志数据)
大数据·人工智能·分布式·机器学习·架构·旅游·1024程序员节
深兰科技8 小时前
深兰科技入选“2025中国人工智能行业创新力企业百强”
人工智能·科技·百度·kafka·rabbitmq·memcached·深兰科技
兜兜风d'8 小时前
RabbitMQ事务机制详解
数据库·spring boot·分布式·rabbitmq·ruby·java-rabbitmq
ifeng09188 小时前
HarmonyOS分布式任务调度——跨设备智能任务分配与迁移
分布式·华为·harmonyos
9ilk8 小时前
【仿RabbitMQ的发布订阅式消息队列】--- 模块设计与划分
c++·笔记·分布式·后端·中间件·rabbitmq
勇往直前plus8 小时前
学习和掌握RabbitMQ及其与springboot的整合实践(篇二)
spring boot·学习·rabbitmq·java-rabbitmq
linweidong11 小时前
多级缓存系统设计:从本地到分布式,打造高性能利器
分布式·缓存·消息队列·雪崩·java面经·击穿·消费端
西***634711 小时前
怕故障?怕扩展难?分布式可视化控制:给足场景安全感
分布式·数据可视化