1 Provider
消息生产者,就是投递消息的程序。
2 Consumer
消息消费者,就是接受消息的程序。
3 没有使用消息队列时消息传递方式
4 使用消息队列后消息传递方式
5 什么是队列?
队列就像存放了商品的仓库或者商店,是生产商品的工厂和购买商品的用户之间的中转站
6 队列里存储了什么?
在 rabbitMQ 中,信息流从你的应用程序出发,来到 Rabbitmq 的队列,所有信息可以只存储在一个队列中。队列可以存储很多信息,因为它基本上是一个无限制的缓冲区,前提是你的机器有足够的存储空间。
7 队列和应用程序的关系?
多个生产者可以将消息发送到同一个队列中,多个消息者也可以只从同一个队列接收数据。
创建一个SpringBoot项目,并添加如下依赖:
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-starter-amqp
在application.properties中添加RabbitMQ相关的配置
spring.application.name=springcloud-mq
spring.rabbitmq.host=192.168.88.150
spring.rabbitmq.port=5672
spring.rabbitmq.username=dpb
spring.rabbitmq.password=123
队列名称
mq.queue.name=hello-queue
目录结构
创建消息队列
/**
- @
【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 开源分享
program: springcloud-rabbitmq-demo
-
@description: 创建消息队列
-
@author: 波波烤鸭
-
@create: 2019-05-21 23:18
*/
@Configuration
public class QueueConfig {
@Value("${mq.queue.name}")
private String queueName;
@Bean
public Queue createQueue(){
return new Queue(queueName);
}
}
创建消费者
/**
-
@program: springcloud-rabbitmq-demo
-
@description: 消费者
-
@author: 波波烤鸭
-
@create: 2019-05-21 23:26
*/
@Component
public class Receiver {
/**
-
接收消息的方法,采用消息队列监听机制
-
@param msg
*/
@RabbitListener(queues = “${mq.queue.name}”)
public void process(String msg){
System.out.println(“recevier:”+msg);
}
}
创建提供者
/**
-
@program: springcloud-rabbitmq-demo
-
@description: 消息的发送者
-
@author: 波波烤鸭
-
@create: 2019-05-21 23:23
*/
@Component
public class Sender {
@Autowired
private AmqpTemplate rabbitAmqpTemplate;
@Value("${mq.queue.name}")
private String queueName;
/**
- 创建发送消息的方法
*/
public void send(String msg){
// 参数: 队列名称 和 消息内容
rabbitAmqpTemplate.convertAndSend(“hello-queue”,msg);
}
}
启动类
@SpringBootApplication