文章目录
第一章 说明
Spring Boot Messaging
Spring框架提供了与消息传递系统集成的广泛支持,从使用JmsTemplate简化JMS API到异步接收消息的完整基础结构。Spring AMQP为高级消息队列协议提供了类似的特性集。Spring Boot还为RabbitTemplate和RabbitMQ提供了自动配置选项。Spring WebSocket本身就支持STOMP消息传递,Spring Boot通过启动器和少量的自动配置支持这一点。Spring Boot也支持Apache Kafka。
AMQP
高级消息队列协议(Advanced Message queue Protocol, AMQP)是面向消息中间件的平台无关的、线级协议。Spring AMQP项目将核心Spring概念应用于基于AMQP的消息传递解决方案的开发。Spring Boot为通过RabbitMQ使用AMQP提供了一些便利,包括Spring-Boot-Starter-AMQP“Starter”。
RabbitMQ 扩展
RabbitMQ是一个基于AMQP协议的轻量级、可靠、可伸缩和可移植的消息代理。Spring使用RabbitMQ通过AMQP协议进行通信。
第二章 编写代码
2.1 启动 RabbitMQ
安装 RabbitMQ 服务,以 Mac 为例
brew install rabbitmq
等待安装完成后,进入安装目录 ‘/usr/local/Cellar/rabbitmq/3.7.4/sbin’,启动
cd /usr/local/Cellar/rabbitmq/3.7.4/sbin
./rabbitmq-server
如果启动成功,将会看到
## ##
## ## RabbitMQ 3.7.4. Copyright (C) 2007-2018 Pivotal Software, Inc.
########## Licensed under the MPL. See http://www.rabbitmq.com/
###### ##
########## Logs: /usr/local/var/log/rabbitmq/rabbit@localhost.log
/usr/local/var/log/rabbitmq/rabbit@localhost_upgrade.log
Starting broker...
completed with 6 plugins.
2.2 代码
2.2.1 文件结构
src/
+- main/
+- java/
+- com/
+- lee/
+- springbootdemo/
+- config
+- RabbitMQConfig.java
+- pojo/
+- Receiver.java
+- Runner.java
+- SpringBootDemoApplication.java
+- resources/
+- <other resource>
2.2.2 创建 RabbitMQ 消息接受
src/main/java/com/lee/springbootdemo/pojo/Receiver.java
package com.lee.springbootdemo.pojo;
import org.springframework.stereotype.Component;
import java.util.concurrent.CountDownLatch;
@Component
public class Receiver {
private CountDownLatch latch = new CountDownLatch(1);
public void receiveMessage(String message) {
System.out.println(