一、消息
JMS
二、部分消息中间件
Kafka(一种高吞吐量的分布式发布订阅消息系统,提供实时消息功能)
消息案例——订单短信通知
订单Service接口
消息Service接口
订单Controller
消息Controller
未使用消息时:
订单接口实现
消息接口实现
ActiveMQ
启动服务:activemq.bat
访问服务器:http://127.0.0.1:8161/
服务端口:61616,管理后台端口:8161
初次访问用户名&密码:admin
SpringBoot整合ActiveMQ
# 导入SpringBoot整合ActiveMQ坐标
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
# 配置ActiveMQ(采用默认配置)
spring:
activemq:
broker-url: tcp://localhost:61616
jms:
pub-sub-domain: true
template:
default-destination: tttttt
Service实现
生产与消费消息(使用默认消息存储队列)
生产与消费消息(指定消息存储队列)
使用消息监听器对消息队列监听
RabbitMQ
启动服务:rabbitmq-service.bat start
关闭服务:rabbitmq-service.bat stop
查看服务状态:rabbitctl status
# 导入SpringBoot整合RabbitMQ坐标
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
# 配置RabbitMQ (采用默认配置)
spring:
rabbitmq:
host: localhost
port: 5672
1.点对点方式 (direct)
Service实现
2.话题发布方式 (topic)
Service实现
使用消息监听器对消息队列监听
RocketMQ
不同的业务服务器注册到命名服务器,这时生产者与消费者不用连接不同的业务服务器,只需连接命名服务器即可
# 导入SpringBoot整合RocketMQ坐标
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.2.1</version>
</dependency>
# 配置RocketMQ (采用默认配置)
rocketmq:
name-server: localhost:9876
producer:
group: group_rocketmq
生产同步消息
生产异步消息
使用消息监听器对消息队列监听
Kafka
# 导入SpringBoot整合Kafka坐标
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
# 配置Kafka (采用默认配置)
spring:
kafka:
bootstrap-servers: localhost:9092
consumer:
group-id: order
生产消息