RabbitMQ实战篇8-在库存服务中配置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服务挂了,那么消息岂不是都丢失了吗?

如何保证消息的可靠性,保证消息的正确消费,等等。这都是我们接下来需要讨论的。欢迎继续关注下节



源码:https://github.com/zhuzhegithub/rabbitmq

回到目录

转载请务必保留此出处(原作者):https://blog.csdn.net/zhuzhezhuzhe1


版权声明:本文为原创文章,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。

https://blog.csdn.net/zhuzhezhuzhe1


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值