亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

全部開發者教程

RabbitMQ 入門教程

RabbitMQ 簡介
RabbitMQ 簡介
首頁 慕課教程 RabbitMQ 入門教程 RabbitMQ 入門教程 消息轉換器概念講解與基本屬性介紹

消息轉換器概念講解與基本屬性介紹

1. 前言

Hello,大家好。本小節會為同學們介紹 RabbitMQ 在 Spring 生態中的消息轉換器,消息轉換器是 RabbitMQ 在 Spring 生態中的又一核心元素,是對消息適配器的補充,通過配合消息適配器的使用,可以實現針對不同的消息接收格式進行處理,以滿足不同業務場景的需要。

本節主要內容:

  • 消息轉換器基礎概念概述;

  • 消息轉換器基礎配置介紹。

2. 消息轉換器基礎概念概述

基礎概念:

我們在上一小節中,已經對消息適配器有了一個基礎的認識,去并且在介紹消息適配器的同時,也引入了消息轉換器,就是代碼中的 MessageConverter 類。

在經過上節消息適配器代碼的實操之后,相信大家對消息轉換器的感念已經不是那么陌生了,想必在各位同學的心里,已經對消息轉換器有一個初步的認知了。

同樣地,在介紹什么是消息轉換器時,還是和消息適配器那樣,將消息和轉換器兩個概念拆開來介紹,但是,消息這一名詞已經在消息適配器小節中做了介紹,這里不再贅述,我們直接從轉換器開始。

我們先拋開計算機這一專業領域來說,在我們的日常生活中,轉換器的例子隨處可見,這里我們還拿在上節中提到的筆記本電腦的例子繼續介紹。

我們都知道,隨著筆記本電腦行業的飛速發展,筆記本的功能也是越來越強大,那么,筆記本電腦提供給我的接入端口也在發生著強大的變化,傳統的 USB 端口在最新的筆記本電腦中甚至已經看不見了,越來越多的則是 Type-C 或 Light 形式的接入端口。

試想一下,如果我們需要使用移動硬盤來連接電腦,進行工作數據的處理,移動硬盤只有一個普通的 USB 端口,但是我們的筆記本電腦只有一個 Type-C 的接入端口,那么此時我們又應該如何將移動硬盤來連接電腦呢。這種情況,我們就需要一條轉接線來發揮作用了。

就上述例子而言,轉接線提供了一種在移動硬盤和筆記本電腦之間,由于接入端口的不同,移動硬盤和筆記本電腦可以進行接入的橋梁。轉接線的一端連接電腦的 Type-C 端口,另一端則通過 USB 端口的形式連接移動硬盤,以達到不同的端口之間移動硬盤可以繼續連接筆記本電腦的目的。而這一轉接線在移動硬盤和筆記本電腦之間就發揮了轉換器的作用。

說白了,轉換器其實就是為了在兩種不同的物品之間,通過一定的媒介,使這兩種不同的物品可以繼續進行互聯互通的一種技術手段,而這種技術手段可以是技術實物(比如轉換線),也可以是一種可以在空氣中進行傳播的介質(Wifi投屏)。

消息轉換器亦是如此,在 Spring-AMQP 中,消息適配器指的就是,將我們接收的消息進行不同格式的轉換,從而可以解決數據在不同業務場景下所需要的格式的不同的問題,即 RabbitMQ 中的消息轉換器就是將 RabbitMQ 中的消息進行不同格式的轉換。

在介紹完消息轉換器的基礎概念之后,下面讓我們來看一下如何對消息轉換器進行簡單的配置吧。

3. 消息轉換器基礎配置介紹

還是像上節小節一樣,要想在 Spring 中使用消息轉換器,需要將 Spring-AMQP 和 AMQP-Stater 的依賴先引入進來,方便起見,同學們可以直接拷貝下放代碼:

3.1 引入消息轉換器

以 Maven 引入方式為例,引入代碼如下所示:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
  <groupId>com.rabbitmq</groupId>
  <artifactId>amqp-client</artifactId>
  <version>3.6.5</version>
</dependency>

在將這兩個依賴進行引入之后,我們就可以對消息轉換器進行配置了。

3.2 初始化消息轉換器

在 Spring-AMQP 中,存在很多不同類型的消息轉換器,我們需要根據我們不同的業務需求,來選擇使用哪種類型的消息轉換器,當然,如果 RabbitMQ 提供的消息轉換器不能夠滿足我們的業務需求,我們也可以自定義消息轉換器。

本部分會以 Jackson2JsonMessageConverter 消息轉換器來介紹,在使用消息轉換器前的準備工作,并在下一小節中對常用類型的消息轉換器進行代碼實操。

初始化 Jackson2JsonMessageConverter 消息轉換器

像 RabbitAdmin 和 RabbitTemplate 一樣,要想使用消息轉換器,需要先對消息轉換器進行初始化,這個初始化過程非常簡單,初始化 Jackson2JsonMessageConverter 消息轉換器的代碼如下所示:

代碼實現:

// 省略連接 RabbitMQ-Server 的步驟
Jackson2JsonMessageConverter jsonConverter = new Jackson2JsonMessageConverter();

代碼解釋:

1-2 行,我們使用了 new Jackson2JsonMessageConverter 的方式,來對 Jackson2JsonMessageConverter 消息轉換器進行實例化,在實例化的同時,我們調用了 Jackson2JsonMessageConverter 消息轉換器通用的構造方法,來初始化了 Jackson2JsonMessageConverter 消息轉換器。

在我們使用消息轉換器時,通常來講,我們并不需要向消息轉換器中傳遞任何參數,我們只需要在我們的消息適配器的實現中,聲明好消息轉換器所需的轉換格式即可。

通過上述兩行代碼,我們就完成了 Jackson2JsonMessageConverter Jackson2JsonMessageConverter 消息轉換器中的屬性或方法。

Tips: 消息轉換器需要配合消息適配器來同時使用才行,消息轉換器不能單獨使用,但是,消息適配器可以單獨使用,可以不在消息適配器中配置消息轉換器。

4. 小結

本小節通過日常生活中的一個例子,為同學們詳細介紹了消息轉換器這一概念,包括什么是轉換器,以及最后的什么是 RabbitMQ 消息轉換器這一概念。在介紹完相關概念之后,又以 Jackson2JsonMessageConverter 消息轉換器為例,為同學們概述了 RabbitMQ 中消息轉換器的基礎使用,以及初始化方法。

通過基礎概念與基礎使用相結合的方式,旨在希望同學們可以通過本節的學習對 RabbitMQ 中的消息轉換器這一概念有一個簡單清楚的認識,以及了解一些消息轉換器的基礎使用方法,這樣我們在下節才會很好地掌握消息轉換器中的使用。