RabbitMQ之入门那些事儿
1)RabbitMQ的安装。
安装步骤比较简单,在这里就不多说,不会的小伙伴可以按照以下链接来安装:RabbitMQ的安装教程
2)RabbitMQ是什么?
RabbbitMQ是基于AMQP消息队列的一种,具有跨平台性的特点,传输的类型为json格式
3)为什么要用RabbitMQ?
当两个进程相互通信的时候,更改一个进程会引起另一个进程的变化,为了解决这个问题,在中间加入消息队列,降低耦合度,双方只需要跟消息队列交互。具体的场景:(1)异步消息处理。(2)多个系统之间的解耦。
4)如何使用RabbitMQ?
工作流程:A方以消息+路由键(msg+rout key)的形式发送到服务器交换机 (Exchange),服务器上的虚拟主机的交换机(Exchange)根据路由键(rout key)把消息绑定到到对应的消息队列Queues,然后发送一个tcp包,在里边建立多个信道,提高消息传输效率,B方接收消息。
Springboot代码:
//pom依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
//配置文件 application.properties
spring.rabbitmq.host=localhost
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.rabbitmq.port=5672
//测试代码
@Test //发送消息
public void contextLoads() {
Map map = new HashMap();
map.put("msg","这是一个Mq");
map.put("data", Arrays.asList("nice","meet"));
rabbitTemplate.convertAndSend("queues.news","queues",map);
consumer();
}
@Test //接收消息
public void consumer(){
Object o = rabbitTemplate.receiveAndConvert("myQueues");
System.out.println(o.getClass());
System.out.println(o);
}