RabbitMQ 四种模式 简易测试

本文介绍了RabbitMQ的三种模式:Topic、Header和fanout。在Topic模式中,生产者使用topic交换机,消费者通过Ribbon轮询机制消费信息。Header模式允许Map条件判断,适用于信息字节传输。而在fanout模式下,生产者无需指定key,消息会广播到所有绑定的队列,消费者配置相应端口接收。
摘要由CSDN通过智能技术生成

Connection 连接TCP/IP 一个应用一般只会 RabbitMQ 连接一个
Channel 寄生在 Connection 和 Exchange 消息队列相关

一个Channel对应着一个消息队列
Connection一般只有一个

多个消费者,消费同一个消息队列
非常有规律的轮流消费生产者发布的信息(Ribbon轮询机制)

多个消费者,同时消费一个 Rounting key ,但队列
不同

多个消费者都可以获取到消息,不会产生轮询
生产者只要生产一次,可以通过相同的 Rounting key,不同消息队列名称都可以消费这条消息
在这里插入图片描述

1、Topic

在这里插入图片描述
在这里插入图片描述
Producer 生产者:
——config:
注册 topic 交换机

@Configuration
public class TopicConfig {

    @Bean
    TopicExchange topicExchange() {
        return new TopicExchange("topic-exchange");
    }
}

——controller:

@RestController
@RequestMapping("/topic")
public class TopicController {

    @Autowired
    RabbitTemplate rabbitTemplate;

    @RequestMapping("/gc/lang")
    public String sendgclang(String msg) {
        rabbitTemplate.convertAndSend("topic-exchange","gc.lang",msg);
        return "/gc.lang 发送" + msg;
    }

    @RequestMapping("/gc/lang/java")
    public String sendLangJava(String msg) {
        rabbitTemplate.convertAndSend("topic-exchange","gc.lang.java",msg);
        return "/gc/lang/java 发送" + msg;
    }

    @RequestMapping("/gc/lang/sql")
    public String sendLangsql(String msg) {
        rabbitTemplate.convertAndSend("topic-exchange","gc.lang.sql",msg);
        return "/gc/lang/sql 发送" + msg;
    }

    @RequestMapping("/gc/lang/http")
    public String sendLanghttp(String msg) {
        rabbitTemplate.convertAndSend("topic-exchange","gc.lang.http",msg);
        return "/gc/lang/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值