RabbitMQ 实验入门

使用 spring-amqp 实验

发布订阅模型

fanoutExchange 实验

实验步骤:

  1. 编写定义 队列 和 交换机 绑定关系的代码
  2. 创建接口,模拟生产者,方便调试(接受参数 队列名、路由键、[消息])
  3. 定义消费者
    代码示例:
java 复制代码
@Configuration
public class FanoutConfig {
    @Bean
    public FanoutExchange fanoutexchange() {
        //创建广播模式交换机
        return new FanoutExchange("yoj.fanoutexchange");
    }
    // 创建队列
    @Bean
    public Queue fanoutQueue() {
        return new Queue("fanout.queue1");
    }
    // 绑定交换机和队列之间的关系
    @Bean
    public Binding bindingQueue1(Queue fanoutQueue1, FanoutExchange fanoutExchange) {
        return BindingBuilder.bind(fanoutQueue1).to(fanoutExchange);
    }
}
java 复制代码
 @GetMapping("/testMQ/{queueName}/{routingKey}")
    public BaseResponse<String> testMQ(@PathVariable("queueName") String queueName, @PathVariable("routingKey") String routingKey) {
        rabbitTemplate.convertAndSend(queueName, routingKey, "编译执行代码,返回结果");
        return ResultUtils.success("发送成功");
    }

实验效果

发消息

在队列中接受到了消息

direct 案例

  • 定义 关系
java 复制代码
 @RabbitListener(bindings = @QueueBinding(value=@Queue("direct.queue1"), exchange = @Exchange(name="direct.exchange", type = ExchangeTypes.DIRECT), key={"direct.key1"}))
    public void directQueue1Listen(String in) {
        System.out.println("direct.queue1:Received message: " + in);
    }

    @RabbitListener(bindings = @QueueBinding(value=@Queue("direct.queue2"), exchange = @Exchange(name="direct.exchange", type = ExchangeTypes.DIRECT),  key={"direct.key2"}))
    public void directQueue2listen(String in) {
        System.out.println("direct.queue2:Received message: " + in);
    }
相关推荐
过期动态6 小时前
【LeetCode 热题 100】移动零
java·数据结构·算法·leetcode·职场和发展·rabbitmq
phltxy14 小时前
RabbitMQ 发送方确认与重试机制
分布式·rabbitmq·ruby
未若君雅裁15 小时前
RabbitMQ 死信交换机与延迟队列:TTL、DLX、DelayExchange怎么理解
分布式·微服务·rabbitmq
phltxy2 天前
RabbitMQ高级特性-消息确认与持久性博客
分布式·rabbitmq·ruby
未若君雅裁2 天前
RabbitMQ 消息可靠性:生产者确认、持久化、消费者ACK与幂等消费
分布式·微服务·rabbitmq
小江的记录本2 天前
【Kafka核心】Kafka 3.0+ KRaft模式(替代ZooKeeper)核心原理与优势
java·数据库·分布式·后端·zookeeper·kafka·rabbitmq
phltxy3 天前
RabbitMQ SpringBoot消息队列与应用间通信
spring boot·rabbitmq·java-rabbitmq
过期动态3 天前
【RabbitMQ高级篇】生产者可靠性、MQ可靠性、消费者可靠性以及延迟队列的实现
java·数据结构·分布式·算法·rabbitmq·ruby
phltxy4 天前
RabbitMQ 工作模式与Java原生客户端案例
java·rabbitmq·java-rabbitmq
装不满的克莱因瓶4 天前
【项目亮点四】支付订单超时处理与状态补偿机制设计
java·开发语言·后端·rabbitmq·消息中间件