简介:
RabbitMQ是基于AMQP(Advanced Message Queuing Protocol)的一款消息中间件管理系统
安装及使用
软件安装
使用Centos7虚拟机中使用Docker来安装
# 1. 下载rabbitmq镜像
[root@itcast ~]# docker pull rabbitmq:3.8-management
# 2. 运行容器
[root@itcast ~]# docker run -d -p 15672:15672 -p 5672:5672 --name mq -v mq-plugins:/plugins --hostname mq rabbitmq:3.8-management
创建空间
RabbitMQ提供了管理界面:访问地址(本机为例):http://192.168.248.128:15672
默认的账号和密码都是 guest
要想使用RabbitMQ,首先创建出空间(名称自定):
创建用户
为了能够可以通过java程序操作RabbitMQ,需要创建一个账号,我们统一设置为root
空间授权
当空间和用户创建完毕之后,需要将空间交给用户管理
Basic Queue简单消息模型
生产者
① 在application.yml中添加MQ配置
spring:
rabbitmq:
host: 192.168.136.131 # 主机名
port: 5672 # 端口
virtual-host: alibaba # 虚拟主机
username: root # 用户名
password: root # 密码
② 编写测试类SpringAmqpTest
并利用RabbitTemplate实现消息发送
@SpringBootTest
@RunWith(SpringJUnit4ClassRunner.class)
public class SpringAmqpTest {
@Autowired
private RabbitTemplate rabbitTemplate;
//发送简单消息
@Test
public void testSimpleQueue() {
//参数一: 队列名称(次队列需要是提前创建好的) 参数二: 消息内容
rabbitTemplate.convertAndSend("p2p", "hello,spring amqp!");
}
}
消费者
① 在application.yml中添加MQ配置
spring:
rabbitmq:
host: 192.168.136.131 # 主机名
port: 5672 # 端口
virtual-host: alibaba# 虚拟主机
username: root # 用户名
password: root # 密码
② 创建com.alibaba.listener.SpringRabbitListener
@Component
public class SpringRabbitListener {
//简单类型消息
@RabbitListener(queues = "p2p")//声明队列名称
public void listenSimpleQueueMessage(String msg) {
System.out.println("消费者接收到消息:【" + msg + "】");
}
}
测试
启动consumer服务,然后在publisher服务中运行测试代码,发送MQ消息