RabbitMQ - 快速入门(一)

简介: RabbitMQ - 快速入门(一)

在Order服务中修改


1. 使用组件第一件事永远是先引入依赖


2. 配置mq(可以直接放到git上的order.test.yml上)


3. 写一个接收消息的方法MqReceiver,@RabbitListenner(queuesToDeclare=@Queue("myQueue")),process()


4. 写一个发送方 用到了AmqpTemplate,send()



Order

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
spring:
  rabbitmq:
    host: 127.0.0.1
    port: 5672
    username: guest
    password: guest
package com.imooc.order.message;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
/**
 * 接收mq消息
 */
@Slf4j
@Component
public class MqReceiver {
    //1. @RabbitListener(queues = "myQueue")
    //2. 自动创建队列 @RabbitListener(queuesToDeclare = @Queue("myQueue"))
    //3. 自动创建, Exchange和Queue绑定
    @RabbitListener(bindings = @QueueBinding(
            value = @Queue("myQueue"),
            exchange = @Exchange("myExchange")
    ))
    public void process(String message) {
        log.info("MqReceiver: {}", message);
    }
    /**
     * 数码供应商服务 接收消息
     * @param message
     */
    @RabbitListener(bindings = @QueueBinding(
            exchange = @Exchange("myOrder"),
            key = "computer",
            value = @Queue("computerOrder")
    ))
    public void processComputer(String message) {
        log.info("computer MqReceiver: {}", message);
    }
    /**
     * 水果供应商服务 接收消息
     * @param message
     */
    @RabbitListener(bindings = @QueueBinding(
            exchange = @Exchange("myOrder"),
            key = "fruit",
            value = @Queue("fruitOrder")
    ))
    public void processFruit(String message) {
        log.info("fruit MqReceiver: {}", message);
    }
}
package com.imooc.order;
import org.junit.Test;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
 * 发送mq消息测试
 */
@Component
public class MqSenderTest extends OrderApplicationTests {
    @Autowired
    private AmqpTemplate amqpTemplate;
    @Test
    public void send() {
        amqpTemplate.convertAndSend("myQueue", "now " + new Date());
    }
    @Test
    public void sendOrder() {
        amqpTemplate.convertAndSend("myOrder", "computer", "now " + new Date());
    }
} 

什么情况下用Exchange?

E.G. 订单可分为数码类订单和水果类订单,通过key的不同绑定myOrder消息队列。商场做大之后卖的比较多了,对多种商品可以下单。 订单,商家都有团队服务。 订单要根据不同的商品类型,发送不同消息。 这个时候要涉及到消息的分组,就是route的key就要产生变化了。exchanger不用变。 然后key就要变了。到了不同的消息队列也就是queue。


相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
消息中间件 Java 测试技术
快速入门RabbitMQ并且加入项目实战-kuai-su-ru-men-rabbitmq-bing-qie-jia-ru-xiang-mu-shi-zhan(二)
快速入门RabbitMQ并且加入项目实战-kuai-su-ru-men-rabbitmq-bing-qie-jia-ru-xiang-mu-shi-zhan
244 1
|
消息中间件 运维 Java
RabbitMQ快速入门(简单收发消息)
RabbitMQ快速入门(简单收发消息)
252 0
RabbitMQ快速入门(简单收发消息)
|
消息中间件 网络协议 Java
RabbitMQ消息中间件学习3:快速入门案例
rabbitmq是spring一个公司的,所以很多公司 企业选择用rabbitmq。
315 65
RabbitMQ消息中间件学习3:快速入门案例
|
消息中间件 存储 Java
RabbitMQ-同步和异步区别&快速入门
RabbitMQ-同步和异步区别&快速入门
717 1
|
消息中间件 Java Docker
快速入门RabbitMQ并且加入项目实战-kuai-su-ru-men-rabbitmq-bing-qie-jia-ru-xiang-mu-shi-zhan(一)
快速入门RabbitMQ并且加入项目实战-kuai-su-ru-men-rabbitmq-bing-qie-jia-ru-xiang-mu-shi-zhan
218 1
|
消息中间件 Java Kafka
【RabbitMQ】RabbitMQ快速入门 通俗易懂 初学者入门
【RabbitMQ】RabbitMQ快速入门 通俗易懂 初学者入门
524 0
|
消息中间件 SQL 负载均衡
RocketMQ快速入门 2
RocketMQ快速入门
403 0
|
消息中间件 Java Apache
RocketMQ快速入门 1
RocketMQ快速入门
359 0
|
消息中间件 Java Spring
RabbitMQ快速入门 3
RabbitMQ快速入门
194 0
|
消息中间件 存储 缓存
RabbitMQ快速入门 2
RabbitMQ快速入门
114 0

热门文章

最新文章