微服务技术栈(十) - MQ(RabbitMQ)

一、同步通讯

1. 同步调用的问题

        同步调用的优点: 时效性较强,可以立即得到结果

        微服务间基于Feign 的调用就属于同步方式,存在一些问题。

二、异步通讯

 异步调用方案:

事件驱动优势:

优势一:服务解耦

优势二:性能提升,吞吐量提高

优势三:服务没有强依赖,不担心级联失败问题

优势四:流量削峰

异步通信的缺点:

        1. 依赖于Broker的可靠性、安全性、吞吐能力

        2. 架构复杂了,业务没有明显的流程线,不好追踪管理

三、MQ 常见框架

1. 初识MQ

        MQ (MessageQueue),中文是消息队列,字面来看就是存放消息的队列。也就是事件驱动架构中的Broker。

四、RabbitMQ快速入门

        RabbitMQ是基于Erlang语言开发的开源消息通信中间件,官网地址:https://www.rabbitmq.com/

RabbitMQ的结构和概念

channel:操作MQ的工具

exchange:路由消息到队列中

queue:缓存消息

virtual host:虚拟主机,是对queue、exchange等资源的逻辑分组

常见消息模型

        MQ的官方文档中给出了5个MQ的Demo示例,对应了几种不同的用法:

基本消息队列(BasicQueue)

 

 

 

 

 

总结:

1. 基本消息队列的消息发送流程:

        (1)建立connection

        (2)创建channel

        (3)利用channel声明队列

        (4)利用channel向队列发送消息

2. 基本消息队列的消息接收流程:

        (1)建立connection

        (2)创建channel

        (3)利用channel声明队列(避免队列不存在)

        (4)定义consumer的消费行为handleDelivery()(回调函数,异步处理机制)

        (5)利用channel将消费者与队列绑定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值