springboot整合RabbitMQ
一. 消息中间件产生的背景
1、在网络通讯中,Http请求默认采用同步请求方式,基于请求与响应模式;
2、客户端与服务器进行通讯时,客户端调用服务接口后,必须等待服务端完成处理后返回结果给客户端才能继续执行,这种情况属于同步调用方式;
3、如果服务器端发生网络延迟、不卡大的情况,可能客户端也会受到影响;
二. 消息中间件的作用
消息队列中间件是分布式系统中重要的组件,主要解决“应用解耦”、“异步消息”、“流量削峰等问题”,实现高性能、高可用、可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、metaMQ、RocketMQ等;
三. springboot同RabbitMQ的整合
使用idea按照如下格式创建工程:其中rabbit-mq为父工程,并闯将两个子工程:rabbitmq_consumser和rabbitmq_producer;
对于生产者工程:
1. pom.xml 文件添加依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 添加springboot对RabbitMQ的依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
<version>1.5.2.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.40</version>
</dependency>
</dependencies>
2.application.yml文件修改
注意,此处请自行安erlang和RabbitMQ;并添加相关用户及virtual-host
spring:
rabbitmq:
#rabbitMQ服务器地址
host: 127.0.0.1
#服务器端口号
port: 5672
#用户名
username: yangpeng
#密码
password: 123qwe123
#virtual_host名称
virtual-host: /admin_yangpeng
3.注入相关配置文件(该配置文件主要是创建queue(队列),创建Exchange(交换机),并将队列绑定到交换机上);且此处用的是RabbitMQ的fanout(发布订阅)模式