全部开发者教程

RabbitMQ 入门教程

RabbitMQ 简介
RabbitMQ 简介
首页 慕课教程 RabbitMQ 入门教程 RabbitMQ 入门教程 消息适配器概念讲解与基本属性介绍

消息适配器概念讲解与基本属性介绍

1. 前言

Hello,大家好。本小节会为同学们介绍 RabbitMQ 在 Spring 生态中的消息适配器,消息适配器是 RabbitMQ 在 Spring 生态中的又一核心元素,通过针对不同的业务场景,设置不同的消息适配器,可以实现对不同业务场景下的消息进行不同方式的处理的目的。

本节主要内容:

  • 消息适配器基础概念概述;

  • 消息适配器基础配置介绍。

2. 消息适配器基础概念概述

基础概念:

消息适配器,可能一说这个名词,大家就感觉有点陌生,我们可以把消息适配器拆开来进行理解。

首先,消息这一名词就不用多说了,消息在我们的应用程序中指的就是应用程序中的数据,在 RabbitMQ 中,指的就是在 RabbitMQ 中流转的消息,也就是说,我们应用程序中的数据在 RabbitMQ 中就被称为消息。

最后,我们再来看适配器。和之前一样,我们先从日常生活中举个例子,比如我们的笔记本电脑,在笔记本电脑上存在不同的对外暴露的类似USB形式的端口,这些端口不仅仅只有USB这一种类型,还有Type-C,以及Light端口等,根据我们的需要来连接这些端口所用的工具就可以看做是一个适配器。

当我们需要将自己的电脑与大屏或投影仪设备相连接时,此时,我们需要一根连接在电脑和大屏或投影仪设备之间的连线,这根线我们通常称为数据线,在有了这根数据线之后,我们就可以建立起一个在电脑和大屏或投影仪设备之间的连接,就可以将电脑的屏幕投影到大屏或投影仪设备上,这个过程就是我们的电脑适配大屏或投影仪设备的一个过程,而这中间的数据线就被可以被称为适配器。

如果我们没有这个数据线来作为电脑与大屏或投影仪设备之间的适配器,那么通常情况下我们就不能将电脑屏幕来进行投影了(Wifi投影的情况除外)。在这一例子中,我们也可以这样说:即需要一根数据线来将我们的电脑屏幕与大屏或投影仪设备进行适配,以达到投影电脑屏幕的目的。

说白了,适配器其实就是为了适配两种不同物品,来达到两种或多种物品之间的协同工作的目的的一种技术手段,而这种技术手段可以是技术实物(比如数据线),也可以是一种可以在空气中进行传播的介质(Wifi投屏)。

消息适配器亦是如此,在 Spring-AMQP 中,消息适配器指的就是,为了监听 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 中,我们主要来介绍 MessageListenerAdapter 这一款消息适配器,因为这款消息适配器配置简单,容易上手,初学者在学起来也易于理解。

本节以 MessageListenerAdapter 消息适配器为例,主要介绍一下 MessageListenerAdapter 消息适配器在使用之前的操作方法。

初始化 MessageListenerAdapter 消息适配器

像 RabbitAdmin 和 RabbitTemplate 一样,要想使用消息适配器,需要先对消息适配器进行初始化,这个初始化过程非常简单,初始化 MessageListenerAdapter 消息适配器的代码如下所示:

代码实现:

// 省略连接 RabbitMQ-Server 的步骤
MessageListenerAdapter adapter = new MessageListenerAdapter(new MessageAdapter());

代码解释:

1-2 行,我们使用了 new MessageListenerAdapter 的方式,来对 MessageListenerAdapter 消息适配器进行实例化,在实例化的同时,通过向 MessageListenerAdapter 消息适配器的构造方法中传入我们自定义的消息适配器的实现,来将 MessageListenerAdapter 消息适配器进行初始化。

其中,MessageAdapter 是我们自定义的消息适配器的实现,这种方式有点类似我们的适配器设计模式,MessageListenerAdapter 消息适配器需要我们传递一个自定义的消息适配器的实现才能完成初始化操作。

通过上述两行代码,我们就完成了 MessageListenerAdapter 消息适配器的初始化操作,我们将在下节中为同学们介绍,MessageListenerAdapter 消息适配器中的属性或方法。

Tips: 1. MessageListenerAdapter 消息适配器,其全名为消息监听适配器,只不过我们习惯称为消息适配器,其主要目的就是为了代替传统的消息监听方式,即采用消息监听适配的方式来监听消息的变化,从而适配不同的业务场景;
2. 采用消息监听适配器的方式来监听消息并适配不同的业务场景,较采用传统的消息监听处理方法更灵活,代码思路更清晰,且支持复杂业务场景的消息适配处理。
3. 在实际的开发工作中,如果需要对 RabbitMQ 中的消息进行监听,那么我们一般都会选择采用 MessageListenerAdapter 消息监听适配器的方式来处理,很少会采用传统的消息监听方式来处理。

4. 小结

本小节通过日常生活中的一个例子,为同学们详细介绍了消息适配器这一概念,包括什么是消息、什么是适配器,以及最后的什么是 RabbitMQ 消息适配器这一概念。在介绍完相关概念之后,又为同学们概述了 RabbitMQ 中经常使用的 MessageListenerAdapter 消息适配器的基础使用,以及初始化方法。

通过基础概念与基础使用相结合的方式,旨在希望同学们可以通过本节的学习对 RabbitMQ 中的消息适配器这一概念有一个简单清楚的认识,以及了解一些消息适配器的基础使用方法,这样我们在下节才会很好地掌握消息适配器中常用方法的使用。