首先我们得了解RabbitMQ 是做什么用的,然后对其下手,RabbitMQ 是一个消息中间件框架。现在市场得主流,基本都用的RabbitMQ 进行做消息队列等
它是一个什么样得框架呢,那我说道说道吧,举个例子吧,比如:你老爸在家种田收的稻谷,然后呢,你老爸是不是要把它卖给加工厂或粮仓。经过加工后,
随其卖给各地大城市得超市等地方,其后有我们进行购买消费。如图:
我们用到的 RabbitMQ 也是类似于一个流程:
上图可以说明一个原因:如A、B、C服务的消息发送给生产者进行去生产,然后消费进行消费给A1、B1、C1服务提供给他们消费,A1、B1、C1随他们消费A、B、C一个服务或多个服务
反正这个消息我RabbitMQ只是一个传达消息的人。RabbitMQ他起到的作用就是解耦,把耦合度降到最低。有一句话说来着,叫高内聚,低耦合。就是说把所有消息聚合起来,然后提供个每一个服务去进行读取所需要的东西。RabbitMQ 他的好处就是可以持久化,解耦,削峰等。
话不多说,上代码:
1、首先是加依赖:
<!-- RabbitMQ 必须-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<!-- jackson 你自己选择-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-json</artifactId>
</dependency>
2、yml文件的配置
spring:
rabbitmq:
addresses: 127.0.0.1:5672,127.0.0.1:5673 #MQ集群
#host: 127.0.0.1
#port: 5672
username: root
password: root
#virtual-host: /demo
#listener: #手动提交消息
# simple:
# acknowledge-mode: manual
# direct:
# acknowledge-mode: manual
publisher-confirm-type: correlated #确认消息已发送到交换机(Exchange)
publisher-returns: true #确认消息已发送到队列(Queue)
3、MQconfig配置
import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.boot.autocon