结合RabbitMQ基础的入门案例演示
1.引入依赖
在父工程mq-demo中引入依赖,因为无论publisher还是consumer都要这个依赖
<!--AMQP依赖,包含RabbitMQ--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>
2.消息发送
首先配置MQ地址,在publisher服务的application.yml中添加配置:
spring:rabbitmq:host: 192.168.150.101 # 主机名port: 5672 # 端口virtual-host: / # 虚拟主机username: itcast # 用户名password: 123321 # 密码
然后在publisher服务中编写测试类SpringAmqpTest,并利用RabbitTemplate实现消息发送:
package cn.itcast.mq.spring;@RunWith(SpringRunner.class)@SpringBootTestpublic class SpringAmqpTest {@Autowiredprivate RabbitTemplate rabbitTemplate;@Testpublic void testSimpleQueue() {// 队列名称String queueName = "simple.queue";// 消息String message = "hello, spring amqp!";// 发送消息rabbitTemplate.convertAndSend(queueName, message);}}
3.处理消息
首先配置MQ地址,在consumer服务的application.yml中添加配置:
spring:rabbitmq:host: 192.168.150.101 # 主机名port: 5672 # 端口virtual-host: / # 虚拟主机username: itcast # 用户名password: 123321 # 密码
然后在consumer服务中新建一个类SpringRabbitListener,代码如下:
package cn.itcast.mq.listener;@Componentpublic class SpringRabbitListener {@RabbitListener(queues = "simple.queue")public void listenSimpleQueueMessage(String msg) throws InterruptedException {System.out.println("spring 消费者接收到消息:【" + msg + "】");}}
启动consumer服务,就会在控制台看到输出,因为之前我们在publisher里面测试发送个一个消息给mq,现在启动这个项目,监听到了simple.queue队列的消息,就处理了。
publisher一直发消息给mq,consumer能实时监听
