前言:
作者简介:热爱编程的小七,致力于C、Java、Python等多编程语言,热爱编程和长板的运动少年!
相关专栏Java基础语法,JavaEE初阶,数据库,数据结构和算法系列等,大家有兴趣的可以看一看。
有兴趣的话关注博主一起学习,一起进步吧!
异步调用常见实现就是事件驱动模式。
优势一:服务解耦
优势二:提升性能和吞吐量
优势三:服务没有强依赖,不担心联机失败
优势四:流量削峰填谷
劣势如下:
1.依赖于Broker的可靠性、安全性、吞吐能力(中间件出现问题导致程序无法运行)
2.架构复杂了,业务没有明显的流程线,不好追踪管理
MQ (MessageQueue),中文是消息队列,字面来看就是存放消息的队列。也就是事件驱动架构中的Broker。
RabbitMQ是基于Erlang语言开发的开源消息通信中间件,官网地址:RabbitMQ: easy to use, flexible messaging and streaming — RabbitMQ
publisher:消息发布者,将消息发送到队列queue
queue:消息队列,负责接受并缓存消息
consumer:订阅队列,处理队列中的消息
实现步骤:
- 导入课前资料中的demo工程
- 运行publisher服务中的测试类PublisherTest中的测试方法testSendMessage()
- 查看RabbitMQ控制台的消息
- 启动consumer服务,查看是否能接收消息
基本消息队列的消息发送流程:
基本消息队列的消息接收流程: