SpringBoot整合消息服务组件

在进行分布式系统设计时,经常会使用消息服务组件进行系统整合与异步服务通信,其基本结构为生产者与消费者处理,如图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的消费者进行消息消费。

5.3.3 SpringBoot整合Kafka消息组件

Kafka是新一代的消息系统,也是目前性能最好的消息组件,在数据采集业务中被广泛应用。本程序中配置的Kafka将基于Kerberos认证实现消息组件处理。
1.【操作系统-Windows】定义一个Kerberos客户端文件,路径为d:kafka_client_jaas.conf。

 2.【mldnboot-integration项目】修改pom.xml配置文件,追加依赖库配置。

 3.【mldnboot-integration项目】修改application.yml配置文件,进行Kafka配置项编写。

 4.【mldnboot-integration项目】定义消息业务发送接口。

5.【mldnboot-integration项目】使用Kafka消息机制实现消息发送接口。

 6.【mldnboot-integration项目】建立一个Kafka消息的消费程序类。

 7.【mldnboot-integration项目】由于此时Kafka采用Kerberos认证,因此需要修改程序启动主类。

 此时,可以通过测试程序调用IMessageProducer接口进行消息发送,由于Kafka已经配置了自动创建主题,所以即使现在主题不存在,也不影响程序执行。

原文地址:https://www.cnblogs.com/callbin/p/15343538.html