认识消息服务
在实际项目开发中,有时候需要与其他系统进行集成完成相关业务功能,这种情况最原始的做法是程序内部相互调用,除此之外,还可以使用消息服务中间件进行业务处理,使用消息服务中间件处理业务能够提升系统的异步通信和扩展解耦能力。Spring Boot对消息服务管理提供了非常好的支持。
在多数应用尤其是分布式系统中,消息服务是不可或缺的重要部分,它使用起来比较简单,同时解决了不少难题,例如异步处理、应用解耦、流量削锋、分布式事务管理等,使用消息服务可以实现一个高性能、高可用、高扩展的系统。
异步处理
应用解耦
流量削峰
分布式事务管理
RabbitMQ简介
RabbitMQ是基于AMQP协议的轻量级、可靠、可伸缩和可移植的消息代理,Spring使用RabbitMQ通过AMQP协议进行通信,在Spirng Boot中对RabbitMQ进行了集成管理。
RabbitMQ消息代理过程
RabbitMQ工作模式
- Work queues(工作队列模式)
- Publish/Subscribe(发布订阅模式)
- Routing(路由模式)
- Topics(通配符模式)
- RPC
- Headers较少使用,略
RabbitMQ的安装
下载安装
一般来说安装 RabbitMQ 之前要安装 Erlang (RabbitMQ依赖于Erlang),可以去Erlang官网下载。接着去RabbitMQ官网下载安装包,之后解压缩即可。为方便起见,提供Erlang和RabbitMQ的下载:
文件下载 | 文件名称:Erlang23.1 | 文件大小:90.26MB |
下载声明:本站文件大多来自于网络,仅供学习和研究使用,不得用于商业用途,如有版权问题,请联系博主! | ||
下载地址:Erlang下载 |
文件下载 | 文件名称: | 文件大小:17.06MB |
下载声明:本站文件大多来自于网络,仅供学习和研究使用,不得用于商业用途,如有版权问题,请联系博主! | ||
下载地址:RabbitMQ下载 |
此外,可设置为开机自启动,方便使用
RabbitMQ可视化效果展示
RabbitMQ可视化效果展示, RabbitMQ默认提供了两个端口号5672和15672,其中5672用作服务端口号,15672用作可视化管理端口号。在浏览器上访问http://localhost:15672/(用户名和密码默认均为guest)
若无法访问,是因为缺少插件,需在RabbitMQ的安装目录运行以下命令
rabbitmq-plugins enable rabbitmq_management
SpringBoot整合RabbitMQ环境搭建
导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
编写配置
spring:
rabbitmq:
host: 127.0.0.1
port: 5672
username: guest
password: guest
virtualHost: /
最后一行配置RabbitMQ虚拟主机路径/,默认可以省略