1. 程式人生 > >RabbitMQ實戰篇8-在庫存服務中配置RabbitMQ,實現訊息接收

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 
[email protected]
*/ @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