文章目录
一. 前言二. RabbitMq简介:三. Springboot集成 RabbitMq1. pom.xml 文件引入jar包:2. application.yml加入RabbitMq的配置:3. 创建一个RabbitMq消息队列:4. 创建RabbitMq消息队列接收方:5. 创建消息队列发送方:
四. 获取源码:五. 主流消息队列对比:
一. 前言
你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。 消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC)。本文将要介绍的RabbitMQ就是当前最主流的消息中间件之一。
二. RabbitMq简介:
AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。 AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 下面将介绍Spring boot结合RabbitMq的步骤:
三. Springboot集成 RabbitMq
1. pom.xml 文件引入jar包:
<dependency>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-starter-amqp
</artifactId>
<version>2.1.0.RELEASE
</version>
</dependency>
2. application.yml加入RabbitMq的配置:
spring:
rabbitmq:
host : 127.0.0.1
port : 5672
username: guest
password: guest
3. 创建一个RabbitMq消息队列:
package com
.plugs
.RabbitMq
;
import org
.springframework
.amqp
.core
.Queue
;
import org
.springframework
.context
.annotation
.Bean
;
import org
.springframework
.context
.annotation
.Configuration
;
@Configuration
public class RabbitConfig {
@Bean
public Queue
helloQueue() {
return new Queue("topic_name");
}
}
4. 创建RabbitMq消息队列接收方:
package com
.plugs
.RabbitMq
;
import com
.alibaba
.fastjson
.JSONObject
;
import com
.enjoypark
.model
.DemoOrder
;
import org
.springframework
.amqp
.rabbit
.annotation
.RabbitHandler
;
import org
.springframework
.amqp
.rabbit
.annotation
.RabbitListener
;
import org
.springframework
.stereotype
.Component
;
@Component
@RabbitListener(queues
= "topic_name")
public class ReceiverMQ {
@RabbitHandler
public void process(String reciverStr
) {
try {
System
.out
.println(reciverStr
);
} catch (Exception e
) {
e
.printStackTrace();
}
}
}
5. 创建消息队列发送方:
package com
.plugs
.RabbitMq
;
import org
.springframework
.amqp
.core
.AmqpTemplate
;
import org
.springframework
.beans
.factory
.annotation
.Autowired
;
import org
.springframework
.stereotype
.Component
;
@Component
public class SenderMQ {
@Autowired
private AmqpTemplate rabbitTemplate
;
public void send(String context
) {
System
.out
.println("Sender : " + context
);
this.rabbitTemplate
.convertAndSend("topic_name", context
);
}
}
四. 获取源码:
获取完整源码地址: https://download.csdn.net/download/penggerhe/11670196公众号关注,免费领取:
五. 主流消息队列对比:
https://blog.csdn.net/penggerhe/article/details/108404243