1.同步通讯和异步通信

(1)同步通信

同 步 调 用 的 问 题 
微 服 务 间 基 于 Feign 的 调 用 就 属 于 同 步 方 式 , 存 在 一 些 问 颈 。 
500ms 
50ms 
支 付 服 务 4 
同 志 , 快 醒 醒 ! 
还 有 个 需 求 要 加 进 去 
159TS 
订 单 服 务 
150Ts 
仓 储 服 务 
150ms 
短 信 服 务

另外,有服务停机时,影响其他服务的调用,级联失败

 

问题:

01 
耦 合 度 高 
02 
每 次 加 入 新 的 需 求 》 都 要 修 
改 原 来 的 代 码 
性 能 下 降 
调 用 者 需 要 等 待 服 务 揼 供 者 
洞 应 , 如 果 调 用 链 过 长 则 响 
应 时 间 等 于 每 次 调 用 的 时 间 
之 和 。 
05 
资 源 浪 费 
调 用 链 中 的 每 个 服 务 在 等 待 
的应过程中@ 不 能 释 放 请 求 
占 用 的资源@ 高 并 发 场 景 下 
会 度 浪 费 系 统 资 源 
04 
级 联 失 败 
如 果 服 务 提 供 者 出 现 问 題 》 
所 有 调 用 方 都 会 跟 着 出 同 题 , 
如 同 多 米 诺 骨 牌 一 样 , 迅 速 
导 致 整 个 微 服 务 群 故 障

 

(2)异步调用

异 步 调 用 方 案 
异 步 调 用 常 见 实 现 就 是 事 件 驱 动 模 式 
0 
支 付 服 务 
发 布 支 付 成 功 事 件 
订 单 id : 1661 
订 单 le 
支 付 了 , 
订 阅 事 件 
Broker 
订 单 服 务 
仓 储 服 务 
短 信 服 务

 

优势一:服务解耦  ,现在只需要订阅事件即可

Broker 
订 单 1901 
支 付 了 ! 
订 阅 事 件 
订 阅 事 件 
订 单 服 务 
仓 储 服 务 
短 信 服 务

 

优势二:性能提升,吞吐量提高,完成一个订单任务,只需要支付服务执行消耗即可

0 
0 
支 付 服 务 
Broker 
发 布 支 付 成 功 事 件 
订 里 id : 1061

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

优势四:流量削峰  ,服务请求过多时,压力由Braoker处理(秒杀高并发场景)

 

总结

异 步 通 信 的 优 点 . 
耦 合 度 低 
吞 吐 量 提 升 
故 障 隔 离 
流 量 削 峰 
异 步 通 信 的 缺 点 : 
依 赖 于 oker 的 可 靠 性 、 安 全 性 、 吞 吐 能 力 
架 构 复 杂 了 , 业 务 没 有 明 显 的 流 程 线 , 不 好 追 踪 管 理

 

 

2.RabbitMQ快速入门

( MessageQueue) 
RabbitMQ 
Rabbit 
Erlang 
AMQP, XMPP, SMTP, 
STOMP 
ActiveMQ 
Apache 
Java 
openwire,STOMP, 
RocketMQ 
Java 
EEXtm 
Kafka 
Apache 
Scala&Java 
EEXtDiX

 

(1)安装

查看安装文件

RabbitMQ结构

Publisher 
queue 
consumer 
exchange 
queue 
exchange 
queue 
consumer 
VirtualHost 
VirtualHost 
RabbitMQ server 
Broker

总结:

RabbitMQcP$jn•e: 
• channel: *ffMQåkJIR 
• exchqnge: 
• queue: 
• virtual host: RXjqueue, 
exchange*

(2)常见消息模型

• (BasicQueue) 
(WorkQueue) 
• (Publish, Subscribe) 
• Fanout Exchange: 
Direct Exch*nge: 
• Topic Exchange: 
1 "Hello World!" 
The simplest thing that does 
something 
3 Publish/ Subscribe 
Sending messages to many 
consumers at otu:e 
Distributing tasks among 
4 Routing 
5 Tepigs 
messages based 
Cm a pattern (topics)

  1. HelloWorld 案例

官 方 的 HelloWorId 是 基 于 最 基 础 的 消 息 队 列 模 型 来 实 现 的 , 只 包 括 三 个 角 色 : 
publisher: 消 息 发 布 者 , 将 消 息 发 送 到 队 列 queue 
queue: 消 息 队 列 , 负 责 接 受 并 缓 存 消 息 
consumer: 订 阅 队 列 , 处 理 队 列 中 的 消 息 
publisher 
C 0 n S um e 「

 

总结:

1. nüconnection 
2. €JEchannel 
3. 
2. 
3. 
4. 
5. 
nüconnection 
EXconsumerfijwmihhandleDeIivery()

 

 

 

 

 

 

 

 

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: RabbitMQ