👽System.out.println(“👋🏼嗨,大家好,我是代码不会敲的小符,双非大四,Java实习中…”);
📚System.out.println(“🎈如果文章中有错误的地方,恳请大家指正!共同进步,共同成长✊”);
🌟System.out.println(“💡如果文章对您有所帮助,希望您可以三连支持一下博主噢🔥”);
🌈System.out.println("🚀正在完成计划中:接下来的三个月里,对梦想的追逐 ");
文章目录
RabbitMQ 整体架构
消息发送者发送消息到交换机,交换机路由转发给队列
消费者消费队列中的消息
虚拟主机:数据隔离
快速入门 控制台演示
需求:在RabbitMQ的控制台完成下列操作
- 新建队列hello.queue1和hello.queue2
- 向默认的amp.fanout交换机发送一条消息
- 查看消息是否到达hello.queue1和hello.queue2
数据隔离
需求:在RabbitMO的控制台完成下列操作
- 新建一个用户hmall
- 为hmall用户创建一个virtual host
- 测试不同virtualhost之间的数据隔离现象
AMQP 消息通信协议 和Spring AMQP
Advpnced Message Queuing Protocol,是用于在应用程序之间传递业务消息的开放标准。该协议与语言和平台无关,更符合微股务中独立性的要求。
Spring AMQP是基于AMQP协议定义的一套API规范,提供了模板来发送和接收消息。包含两部分,其中spring-amgp是基础抽象,spring-rabbit是底层的默认实现。
Spring AMQP
Spring AMQP 中文文档
快速入门
需求如下
- 利用控制台创建队列simple.queue
- 在 publisher 服务中,利用 SpringAMQP 直接向 simple.queue 发送消息
- 在 consumer 服务中,利用 SpringAMQP 编写消费者,监听 simple.queue 队列
SpringAMQP 提供了 RabbitTemplate 工具类,类似于 RedisTemplate,帮助我们封装好,直接调用api即可。
引入依赖
<!-- amqp协议,包含rabbitmq--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId><version>2.1.7.RELEASE</version></dependency>
发送者
@SpringBootTestpublicclassSpringAmqpTest{@AutowiredprivateRabbitTemplate rabbitTemplate;@TestpublicvoidtestSendMessage2TestQueue(){String queueName ="test.queue";String msg ="hello, amqp";
rabbitTemplate.convertAndSend(queueName, msg);}}
消费者
@Component@Slf4jpublicclassRabbitListener{@RabbitListener(queues ="test.queue")publicvoidlistenTestQueueMessage(String msg){
log.info("consumer accept message: {}", msg);
log.info("message success!");}}
最后
慢慢的来,别着急!学会有质量的走过每一步
我是代码不会敲的小符,希望认识更多有经验的大佬,也在努力摸索出自己的道路
欢迎添加小符微信:A13781678921,一起加油
版权归原作者 代码不会敲 所有, 如有侵权,请联系我们删除。