在进行分布式系统设计时,经常会使用消息服务组件进行系统整合与异步服务通信,其基本结构为生产者与消费者处理,如图5-1所示。常用的消息组件主要包括两类:JMS标准(ActiveMQ)和AMQP标准(RabbitMQ、Kafka),本章将为读者讲解这两类组件与SpringBoot的整合。
5.3.1 SpringBoot整合ActiveMQ消息组件
ActiveMQ是Apache提供的开源组件,是基于JMS标准的实现组件。下面将利用SpringBoot整合ActiveMQ组件,实现队列消息的发送与接收。
1.【mldnboot-integration项目】修改pom.xml配置文件,追加spring-boot-starter-activemq依赖库。
2.【mldnboot-integration项目】修改application.yml配置文件,进行ActiveMQ的配置。
3.【mldnboot-integration项目】定义消息消费监听类。
4.【mldnboot-integration项目】定义消息生产者业务接口。
5.【mldnboot-integration项目】定义消息业务实现类。
6.【mldnboot-integration项目】定义JMS消息发送配置类,该类主要用于配置队列信息。
本例利用ActiveMQ实现了消息的发送与接收处理。每当有消息接收到时,都会自动执行MessageConsumer类,进行消息消费。
5.3.2 SpringBoot整合RabbitMQ消息组件
RabbitMQ是一个在AMQP基础上构建的新一代企业级消息系统,该组件由Pivotal公司提供,使用ErLang语言开发。本小节将为读者讲解如何使用SpringBoot实现指定RoutingKey的消息处理。
1.【mldnboot-integration项目】修改pom.xml配置文件,追加spring-boot-starter-amqp依赖包。
2.【mldnboot-integration项目】修改yml.xml配置文件,进行RabbitMQ的相关配置。
3.【mldnboot-integration项目】为了可以正常使用RabbitMQ进行消息处理,还需要做一个消息生产配置类。
4.【mldnboot-integration项目】建立消息发送接口。
5.【mldnboot-integration项目】建立消息业务实现子类。
6.【mldnboot-integration项目】建立一个消息消费端的配置程序类。
7.【mldnboot-integration项目】定义监听处理类。
此时程序实现了与RabbitMQ消息组件的整合,同时在整个程序中只需要调用IMessageProducer接口中的send()方法就可以正常发送,而后会找到设置同样ROUTINGKEY的消费者进行消息消费。