首页 > 其他分享 >RabbitMQ教程

RabbitMQ教程

时间:2023-10-30 16:06:36浏览次数:30  
标签:总结 异步 教程 级联 服务 RabbitMQ 优势

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()

 

 

 

 

 

 

 

 

标签:总结,异步,教程,级联,服务,RabbitMQ,优势
From: https://blog.51cto.com/u_16331472/8089445

相关文章

  • SQL Server数据库创建远程服务器备份计划(小白详细图文教程)
    一、前言最近项目系统做安全加固,以前是本地备份,现在需要做远程内网服务器数据库备份,后期也有可能做异地备份。下面以SQLServer2016内网服务器数据库备份为例,数据库服务器地址:192.168.10.200备份服务器地址:192.168.10.100二、创建存储文件夹192.168.10.100远程100服务器,创建......
  • 无涯教程-C语言 - 条件判断
    下面显示的是大多数编程语言中常见的典型决策结构的一般形式-C编程语言将任何非零和非空值假定为true,并且如果其值为零或null,则假定为false值Sr.No.Statement&描述1ifstatementif语句由布尔表达式和一个或多个语句组成。2if...elsestatement在if语句之后可......
  • 无涯教程-C语言 - 运算符
     C语言包含丰富的内置运算符,并提供以下类型的运算符-算术运算符关系运算符逻辑运算符按位运算符赋值运算符Misc运算符算术运算符下表显示了C语言支持的所有算术运算符。假设变量A=10,变量B=20,然后-运算符描述示例+相加A+B=30-相减A-B=-10*相乘A*B=20......
  • SQL Server2022安装图文教程
    一:下载(1)官网下载链接https://www.microsoft.com/zh-cn/sql-server/sql-server-downloadsSQLServer下载|Microsoft(2)在下载目录中找到下面这个小的安装包SQL2022-SSEI-Dev.exe,运行开始下载SQLserver;二:安装SqlServer2022服务端(3)双击安装包 【SQLServer2022-x64-CHS-Dev.iso......
  • 无涯教程-C语言 - 储存类
    我们在C程序中有四种不同的存储类-autoregisterstaticexternautoauto存储类是所有局部变量的默认存储类。{intmount;autointmonth;}上面的示例在同一存储类中定义了两个变量,"auto"只能在函数(即局部变量)中使用。register寄存器存储类用于定义应存储在......
  • 无涯教程-C语言 - 常量类型
    常数是指程序在执行过程中不得更改的固定值,常量与常规变量的处理方式相同,只不过其值在定义后无法修改。整数整数可以是十进制,八进制或十六进制常量。前缀指定基数或基数:十六进制为0x或0X,八进制为0。212/*有效*/215u/*有效*/0xFeeL/*有效*/078......
  • 实例教程:如何在应用中集成美狐直播美颜SDK
    随着直播和视频应用的兴起,用户对于视频质量和外貌自然度的要求越来越高。为了满足这一需求,开发者们可以通过集成直播美颜SDK来提供更吸引人的视频体验。本文将为您提供一个实例教程,以演示如何在您的应用中成功集成直播美颜SDK。无论您是一个有经验的开发者还是初学者,这个教程都将引......
  • Intellij IDEA安装与配置教程(Windows版)
    IntellijIDEA(简称IDEA)是Java语言的集成开发环境,在业界公认为是一款优秀的Java开发工具。分为Community社区版(免费)和Untimate终极版(付费)。IDEA是一款智能编译器。它可以进行智能代码补全、提供问题工具窗口、代码上下文检查操作、实时模板、项目级别代码重构、重复代码检测等功......
  • Metasploit使用教程
    Metasploit是一款广泛使用的漏洞评估和渗透测试框架,它可以用于测试网络的安全性,识别漏洞、攻击目标等。本篇教程将介绍如何使用Metasploit进行渗透测试,并对其相关功能进行详细说明。一、Metasploit简介Metasploit是一个开源框架,由Rapid7公司开发和维护,旨在帮助渗透测试人员和安......
  • 黑马程序员2023新版JavaWeb开发教程学习笔记
    前言该笔记灵感来源于B站《黑马程序员2023新版JavaWeb开发教程,实现javaweb企业开发全流程(涵盖Spring+MyBatis+Springboot》源视频地址:黑马程序员2023新版JavaWeb开发教程个人声明:本文记录个人在进行该视频学习中的知识总结,帮助大家能更快地进行对该视频内容的学习;由于该视频对......