RabbitMQ实战-在服务中配置RabbitMQ实现消息接收

上节介绍了如何实现消息的发送,这节我们接着上节说说如何实现消息的接收。

添加依赖,进行配置
同样的,消息消费者也需要添加RabbitMQ的依赖,配置连接信息。

因为在上一节已经说过了,这里过于依赖和连接信息的配置就不在赘述了。

订阅消息
新建一个OrderConsumer,用于订阅和消费消息

package com.space.rbq.store.consumer;
 
import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
 
import java.io.IOException;
 
/**
 * 负责接收处理订单服务发送的消息
 * @author zhuzhe
 * @date 2018/6/7 10:09
 * @email 1529949535@qq.com
 */
@Slf4j
@Component
public class OrderConsumer {
 
    /*对列名称*/
    public final String QUEUE_NAME1 = "first-queue";
 
    /**
     * queues  指定从哪个队列(queue)订阅消息
     * @param message
     * @param channel
     */
    @RabbitListener(queues = {QUEUE_NAME1})
    public void handleMessage(Message message,Channel channel) throws IOException {
        try {
            // 处理消息
            System.out.println("OrderConsumer {} handleMessage :"+message);
            System.out.println(new String(message.getBody()));
        }catch (Exception e){
            log.error("OrderConsumer  handleMessage {} , error:",message,e);
        }
    }
}
通过@RabbitListener订阅消息,queues参数指定从哪个队列订阅消息。

我们从first-queue(也就是上一节中消息发布到的队列)中订阅消息。

Message 消息 ; Channel  进行一些后续处理(这个会在后面的章节讲到)

测试
现在生产者和消费者都有了,我们来进行测试

启动两个服务

使用postman请求saveOrder接口

可以看到已经成功收到返回。发送执行成功。

我们看看消费者的控制台打印:

证明消息已经成功的被消费者接受。

这样,消息的生产和消费我们就基本实现了。但是,显然在真正的项目开发中是远远不能满足的。

比如消息如果没有成功消费掉又该怎么处理呢?

如果RabbitMQ服务挂了,那么消息岂不是都丢失了吗?

如何保证消息的可靠性,保证消息的正确消费,等等。这都是我们接下来需要讨论的。欢迎继续关注下节
--------------------- 
作者:朱_哲 
来源:CSDN 
原文:https://blog.csdn.net/zhuzhezhuzhe1/article/details/80704672 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值