RabbitMQ篇(基本介绍)
目录
一、MQ
1. 什么是MQ
2. 为什么要用MQ【业务场景】
2.1. 异步
2.2. 应用解耦
2.3. 流量削峰
3. MQ的分类
(1)ActiveMQ
(2)Kafka
(3)RocketMQ
(4)RabbitMQ
4. MQ 的选择
二、RabbitMQ
1. 简介
2. 作用
3. AMQP协议
AMQP核心概念
4. 工作原理
5. 工作模式
(1)普通模式
(2)Worker模式
(3)PubSub模式
(4)Rounting模式
(5)Topic模式
(6)RPC模式
(7)Publisher Confirms模式
一、MQ
1. 什么是MQ
MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队 列中存放的内容是
message 而已,还是一种跨进程的通信机制,用于上下游传递消息。 在互联网架构中,MQ 是一种非常常见的上
下游“逻辑解耦+物理解耦”的消息通信服 务。使用了 MQ 之后,消息发送上游只需要依赖 MQ,不用依赖其他
服务。
2. 为什么要用MQ【业务场景】
2.1. 异步
如: 用户注册发送,注册邮件、注册短信
传统做法 :
(1)、串行 (先发送邮件、再发短信)。问题:持续时间长
(2)、并行(将注册信息写入数据库后,同时发送邮件、短信),速度快、但不能满足高 吞吐需求
消息队列做法 :
将数据写入数据库、同时发送消息给发送邮件和注册,异步处理
2.2. 应用解耦
如:双十一购物节,用户下单后、订单系统通知库存系统。
传统做法 :
订单系统调用库存系统接口。问题:库存接口故障,订单就会失败,而损失大量订单
消息队列做法
订单系统:下单,订单系统完成持久化,将消息写入队列,返回下单成功给用户 库存系统:订阅下单的消息,获
取下单消息,进行库操作,就算库存系统故障,消息队 列也能保证消息可靠投递,不会导致消息丢失。
2.3. 流量削峰
如:秒杀活动、一般会因为流量过大,导致应用挂掉,一般在应用前端加入消息队列。 作用: 1、可以控制活动
人数,超过一定阈值,订单直接丢弃 2、可以缓解短时间的高流量压垮应用(应用程序按自己的最大处理能力获取
订单)
3. MQ的分类
(1)ActiveMQ
优点:单机吞吐量万级,时效性 ms 级,可用性高,基于主从架构实现高可用性, 消息可靠性较高,概率丢失数
据低
缺点: 官方社区现在对 ActiveMQ 5.x 维护越来越少,高吞吐量场景较少使用。
(2)Kafka
大数据的杀手锏,谈到大数据领域内的消息传输,则绕不开 Kafka,这款为大数据 而生的消息中间件, 以其百万
级 TPS 的吞吐量名声大噪,迅速成为大数据领域的宠 儿,在数据采集、传输、存储的过程中发挥着举足轻重的作
用。目前已经被 LinkedIn, Uber, Twitter, Netflix 等大公司所采纳。
优点: 性能卓越,单机写入 TPS 约在百万条/秒,最大的优点,就是吞吐量高。时 效性 ms 级可用性非常高,
kafka 是分布式的,一个数据多个副本,少数机器宕机,不 会丢失数据,不会导致不可用,消费者采用 Pull 方式获
取消息, 消息有序, 通过控制能够 保证所有消息被消费且仅被消费一次; 有优秀的第三方Kafka Web 管理界面
KafkaManager;在日志领域比较成熟,被多家公司和多个开源项目使用;功能支持: 功能较 为简单,主要支持
简单的 MQ 功能,在大数据领域的实时计算以及日志采集被大规模使 用
缺点:Kafka 单机超过 64 个队列/分区,Load 会发生明显的飙高现象,队列越多, load 越高,发送消息响应时
间变长,使用短轮询方式,实时性取决于轮询间隔时间,消 费失败不支持重试;支持消息顺序, 但是一台代理宕
机后,就会产生消息乱序,社区更 新较慢;
(3)RocketMQ
RocketMQ 出自阿里巴巴的开源产品,用 Java 语言实现,在设计时参考了 Kafka, 并做出了自己的一些改进。
被阿里巴巴广泛应用在订单,交易,充值,流计算,消息推 送,日志流式处理,binglog 分发等场景。
优点: 单机吞吐量十万级, 可用性非常高,分布式架构, 消息可以做到 0 丢失, MQ 功能较为完善,还是分布式的,
扩展性好, 支持 10 亿级别的消息堆积,不会因为堆积导 致性能下降, 源码是 java 我们可以自己阅读源码,定制自
己公司的 MQ
缺点:支持的客户端语言不多,目前是 java 及 c++,其中 c++不成熟;社区活跃度 一般,没有在MQ核心中去实
现 JMS 等接口,有些系统要迁移需要修改大量代码
(4)RabbitMQ
2007 年发布,是一个在AMQP(高级消息队列协议)基础上完成的,可复用的企业消息 系统,是当前最主流的消息
中间件之一。
优点: 由于 erlang 语言的高并发特性,性能较好;吞吐量到万级,MQ 功能比较完 备,健壮、稳定、易用、跨平
台、支持多种语言 如:Python、Ruby、.NET、Java、 JMS、C、PHP、ActionScript、XMPP、STOMP 等,支
持 AJAX 文档齐全;开源提供 的管理界面非常棒,用起来很好用,社区活跃度高;
更新频率相当高 https://www.rabbitmq.com/news.html
缺点:商业版需要收费,学习成本较高
4. MQ 的选择
(1)Kafka
主要特点是基于Pull 的模式来处理消息消费,追求高吞吐量,一开始的目的 就是用于日志收集和传输,适合产生
大量数据的互联网服务的数据收集业务。大型公司 建议可以选用,如果有日志采集功能, 肯定是首选 kafka 了。
(2)RocketMQ
天生为金融互联网领域而生,对于可靠性要求很高的场景,尤其是电商里面的订单扣 款,以及业务削峰,在大量
交易涌入时,后端可能无法及时处理的情况。RoketMQ 在 稳定性上可能更值得信赖,这些业务场景在阿里双 11
已经经历了多次考验,如果你的 业务有上述并发场景,建议可以选择 RocketMQ。
(3)RabbitMQ
结合 erlang 语言本身的并发优势,性能好时效性微秒级,社区活跃度也比较高,管 理界面用起来十分方便,如果
你的数据量没有那么大,中小型公司优先选择功能比较完 备RabbitMQ。
二、RabbitMQ
1. 简介
RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。
最初起源于金融系统,适用于对数据的一致性、稳定性和可靠性要求比较高的场景。
2. 作用
缓解高并发场景的压力;对流量进行削峰;实现解耦;提高系统的可靠性
3. AMQP协议
AMQP高级消息队列协议(Advanced Message Queueing Protocol),是面向消息的中间件的开放标准应用层
协议,AMQP的特征是消息导向,排队,路由(包括点对点和发布和订阅),可靠性和安全性。
AMQP要求消息传递提供商和客户端的行为在不同供应商实现可互操作的情况下,以与SMTP,HTTP,FTP等相
同的方式创建了可互操作的系统。
AMQP协议是具有现代特征的二进制协议。一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协
议的一个开发标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中
间件不同产品,不同开发语言等条件的限制。
AMQP是一种二进制应用层协议,旨在有效地支持各种消息应用和通信模式。
AMQP核心概念
AMQP协议模型
Server
又称作Broker,用于接受客户端的连接,实现AMQP实体服务;
Connection
连接,应用程序与Broker的网络连接;
Channel
网络信道,几乎所有的操作都在Channel中进行,Channel是进行消息读写的通道。客户端可建立多个Channel,每个Channel代表
一个会话任务;
Message
消息,服务器和应用程序之间传送的数据,有Properties和Body组成。Properties可以对消息进行修饰,比如消息的优先级、延迟等高级特性;Body则是消息体内容,即我们要传输的数据;
仅仅创建了客户端到Broker之间的连接后,客户端还是不能发送消息的。需要为每一个Connection创建Channel,AMQP协议规定
只有通过Channel才能执行AMQP的命令。一个Connection可以包含多个Channel。之所以需要Channel,是因为TCP连接的建立
和释放都是十分昂贵的,如果一个客户端每一个线程都需要与Broker交互,如果每一个线程都建立一个TCP连接,暂且不考虑TCP
连接是否浪费,就算操作系统也无法承受每秒建立如此多的TCP连接。RabbitMQ建议客户端线程之间不要共用Channel,至少要保
证共用Channel的线程发送消息必须是串行的,但是建议尽量共用Connection。
Virtual Host
虚拟地址,是一个逻辑概念,用于进行逻辑隔离,是最上层的消息路由。一个Virtual Host里面可以有若干个Exchange和Queue,
同一个Virtual Host里面不能有相同名称的Exchange或者Queue;
Virtual Host是权限控制的最小粒度;
Exchange
交换机,用于接收消息,可根据路由键将消息转发到绑定的队列;
Binding:
Exchange和Queue之间的虚拟连接,Exchange在与多个Message Queue发生Binding后会生成一张路由表,路由表中存储着
Message Queue所需消息的限制条件即Binding Key。当Exchange收到Message时会解析其Header得到Routing Key,
Exchange根据Routing Key与Exchange Type将Message路由到Message Queue。Binding Key由Consumer在Binding
Exchange与Message Queue时指定,而Routing Key由Producer发送Message时指定,两者的匹配方式由Exchange Type决定
Routing Key:
一个路由规则,虚拟机可用它来确定如何路由一个特定的消息;
Queue:
也称作Message Queue,即消息队列,用于保存消息并将他们转发给消费者;
RabbitMQ整体架构图
4. 工作原理
Broker:接收和分发消息的应用,RabbitMQ Server 就是 Message Broker
Virtual host:出于多租户和安全因素设计的,把 AMQP 的基本组件划分到一个虚 拟的分组中,类似于网络中的
namespace 概念。当多个不同的用户使用同一个 RabbitMQ server 提供的服务时,可以划分出多个 vhost,每
个用户在自己的 vhost 创建 exchange/queue 等
Connection:publisher/consumer 和 broker 之间的 TCP 连接
Channel:如果每一次访问 RabbitMQ 都建立一个 Connection,在消息量大的时候 建立 TCP Connection 的开
销将是巨大的,效率也较低。Channel 是在 connection 内部建立的逻辑连接,如果应用程序支持多线程,通常
每个 thread 创 建单独的 channel 进行通讯,AMQP method 包含了 channel id 帮助客户端和 message
broker 识别 channel,所以 channel 之间是完全隔离的。Channel 作为轻 量级的Connection 极大减少了操作
系统建立 TCP connection 的开销
Exchange:message 到达 broker 的第一站,根据分发规则,匹配查询表中的 routing key,分发消息到
queue 中去。常用的类型有:direct (point-to-point), topic (publish-subscribe) and fanout (multicast)
Queue:消息最终被送到这里等待 consumer 取走
Binding:exchange 和queue 之间的虚拟连接,binding 中可以包含 routing key, Binding 信息被保存到
exchange 中的查询表中,用于 message 的分发依据
简单来说:
1、生产者发送消息到MQ交换机
2、交换机根据定义的绑定规则和传过来的key将消息放到不同队列中
3、消费者从队列中取出消息进行消费
5. 工作模式
让我们看看官网:https://www.rabbitmq.com/tutorials/tutorial-one-java#hello-world
经过官网文档介绍,我们知道RabbitMQ的工作模式有七种
Hello Wold 简单模式/普通模式
Work queues 工作队列模式
Publish/Subscribe 发布订阅模式
Routing 路由模式
Topics 主题模式
RPC 远程调用模式
Publisher Confirms 发布确认模式
(1)普通模式
(2)Worker模式
类似于RocketMQ集群模式,发送消息只有一个消费者去消费。prefetchCount默认预取250个
消息,可以在配置文件中配置预取消息数量,实现各个节点多劳多得。消费速度快的就可以消费更多的消息。
spring.rabbitmq.listener.simple.prefetch=自定义预取数量
(3)PubSub模式
类似于RocketMQ广播模式,所有消费者都会收到消息。
生产者需要指定交换机,不需要指定队列。type ="fanout"
(4)Rounting模式
根据指定的交换机及路由key来发送消息,
即消费者绑定了与生产者发布的消息相同的路由key时才可以收到消息。
(5)Topic模式
Rounting模式的一种,交换机根据key的规则模糊匹配到对应的队列,由队列的监听消费者接收消息消费
(6)RPC模式
远程过程调用或RPC
(7)Publisher Confirms模式
相关文章:
RabbitMQ篇(基本介绍)
目录 一、MQ 1. 什么是MQ 2. 为什么要用MQ【业务场景】 2.1. 异步 2.2. 应用解耦 2.3. 流量削峰 3. MQ的分类 (1)ActiveMQ (2)Kafka (3)RocketMQ (4)RabbitMQ 4. MQ 的选…...
浅谈网络通信中的透传和非透传
在网络通信中,透传(Transparent Transmission)和非透传(Non-Transparent Transmission)是两种不同的数据传输模式,尤其在使用ESP8266这类WiFi模块时,这两种模式有其特定的应用场景: …...
影视cms泛目录用什么程序?苹果cms二次开发泛目录插件
影视CMS泛目录一般使用的程序有很多种,(maccmscn)以下是其中几种常见的程序: WordPress:WordPress是一个非常流行的开源内容管理系统,可以通过安装一些插件来实现影视CMS泛目录功能。其中,一款常…...
IP6537_C_30W20V--移动设备快充的得力助手,集成 14 种快充协议的降压 SoC
IP6537_C_30W20V是一款集成同步开关的降压转换器、支 持 14 种输出快充协议、支持 Type-C 输出和 USB PD2.0/PD3.0(PPS)协议的 SoC,为车载充电器、 快充适配器、智能排插提供完整的解决方案。 IP6537_C_30W20V支持 USB Type-C 或者 USB A 输出, 5V 输出功…...
【hot100-java】【寻找两个正序数组的中位数】
二分查找篇 如果使用之前的两个指针分别遍历再合并的话就已经超过时间复杂度了。。 class Solution {public double findMedianSortedArrays(int[] nums1, int[] nums2) {int mnums1.length;int nnums2.length;if(m>n){return findMedianSortedArrays(nums2,nums1);}int tot…...
C++七种异常处理
在C++中,使用异常机制可以提高程序的健壮性和可维护性。异常是在程序运行时发生的一个事件,它会打断正在执行的程序的正常流程。C++异常处理机制可以使程序在出现异常时,进行异常处理,而不是退出程序。 基本的异常处理 #include <iostream> using namespace std;int …...
【C语言系统编程】【第三部分:网络编程】3.3 实践与案例分析
3.3 实践与案例分析 在本章节中,我们将通过一些具体的案例来展示如何在实际项目中进行网络编程。这些案例不仅能帮助你理解各个概念,还能提升你的实践技能,并为你将来的项目提供参考。 3.3.1 案例分析:简单的聊天室 聊天室是网…...
Unity3D播放GIF图片 插件播放
系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、效果图👉二、使用方法1.代码如下👉三、壁纸分享👉总结👉前言 unity播放gif图片,本身是不支持的,但是可以使用其他方法来实现,有一种使用System.Drawing来实现播放的,一种是让UI把图片导出成帧动画图片,…...
基于STM32的远程工业控制系统架构设计:MQTT通信、React界面与FreeRTOS优化的综合应用
一、项目概述 项目目标和用途 本项目旨在开发一个基于STM32单片机的远程工业控制系统。该系统能够通过互联网监控和控制工业设备,实时采集环境和设备状态数据,并将数据上传至云端以便进行数据分析和可视化。用户可以通过移动应用或网页界面远程操作设备…...
墙绘艺术在线交易平台:SpringBoot技术详解
4 系统设计 墙绘产品展示交易平台的设计方案比如功能框架的设计,比如数据库的设计的好坏也就决定了该系统在开发层面是否高效,以及在系统维护层面是否容易维护和升级,因为在系统实现阶段是需要考虑用户的所有需求,要是在设计阶段没…...
VMware中Ubuntu系统Docker正常运行但网络不通(已解决)
问题描述:在VMware中的Ubuntu系统下部署了Docker,当在docker容器中运行Eureka微服务时,发现Eureka启动正常,但无法通过网页访问该容器中Eureka。 解决办法如下: 1、创建桥接网络:test-net sudo docker n…...
【web安全】——文件包含漏洞
1. 文件包含基础 和SQL注入等攻击方式一样,文件包含漏洞也是一种注入型漏洞,其本质就是输入一段用户能够控制的脚本或者代码,并让服务端执行。 1.1. 文件包含简介 什么叫包含呢?以PHP为例,我们常常把可重复使用的函…...
游戏如何对抗改包
游戏改包是指通过逆向分析手段及修改工具,来篡改游戏包内正常的设定和规则的行为,游戏包被篡改后,会被植入/剔除模块进行重打包。 本期图文我们将通过实际案例分析游戏改包的原理,并分享游戏如何应对改包问题。 安卓平台常见的改…...
12.梯度下降法的具体解析——举足轻重的模型优化算法
引言 梯度下降法(Gradient Descent)是一种广泛应用于机器学习领域的基本优化算法,它通过迭代地调整模型参数,最小化损失函数以求得到模型最优解。 通过阅读本篇博客,你可以: 1.知晓梯度下降法的具体流程 2.掌握不同梯度下降法…...
GPT对话知识库——C、C++,还有Java,他们之间有什么区别
目录 1,问: 1,答: 1. 语言特性与设计理念 C 语言: C 语言: Java 语言: 2. 内存管理 3. 运行效率 C 和 C: Java: 4. 程序的执行方式 C 和 C: Jav…...
华为GaussDB数据库之Yukon安装与使用
一、Yukon简介 Yukon(禹贡),基于openGauss、PostgreSQL、GaussDB数据库扩展地理空间数据的存储和管理能力,提供专业的GIS(Geographic Information System)功能,赋能传统关系型数据库。 Yukon 支…...
Linux命令:用于显示 Linux 发行版信息的命令行工具lsb_release详解
目录 一、概述 二、用法 1、基本用法 2、选项 3、获取帮助 三、示例 1. 显示所有信息 2. 只显示发行版名称 3. 只显示发行版版本号 4. 只显示发行版代号 5. 只显示发行版描述 6. 只显示值,不显示标签 四、使用场景 1、自动化脚本 2、诊断问题 3、环…...
sbb-classes 元素
sbb-classes 元素 在 JAIN SLEE(服务级别事件扩展)中,sbb-classes 元素用于定义服务边界组件(SBB)的类结构及其相关配置。这是每个 SBB 的必备部分,包含多个子元素,负责描述 SBB 的抽象类、接口…...
(作业)第三期书生·浦语大模型实战营(十一卷王场)--书生入门岛通关第3关Git 基础知识
任务编号 任务名称 任务描述 1 破冰活动 提交一份自我介绍。 2 实践项目 创建并提交一个项目。 破冰活动 提交一份自我介绍。 每位参与者提交一份自我介绍。 提交地址:https://github.com/InternLM/Tutorial 的 camp3 分支~ 安装并设置git 克隆仓库并…...
12.数据结构和算法-栈和队列的定义和特点
栈和队列的定义和特点 栈的应用 队列的常见应用 栈的定义和特点 栈的相关概念 栈的示意图 栈与一般线性表有什么不同 队列的定义和特点 队列的相关概念...
15分钟学 Python 第34天 :小项目-个人博客网站
Day 34: 小项目-个人博客网站 1. 引言 随着互联网的普及,个人博客已成为分享知识、体验和见解的一个重要平台。在这一节中,我们将使用Python的Flask框架构建一个简单的个人博客网站。我们将通过实际的项目来学习如何搭建Web应用、处理用户输入以及管理…...
从零开始实现RPC框架---------项目介绍及环境准备
一,介绍 RPC(Remote Procedure Call)远程过程调⽤,是⼀种通过⽹络从远程计算机上请求服务,⽽不需要 了解底层⽹络通信细节。RPC可以使⽤多种⽹络协议进⾏通信, 如HTTP、TCP、UDP等, 并且在 TCP/…...
论文阅读:PET/CT Cross-modal medical image fusion of lung tumors based on DCIF-GAN
摘要 背景: 基于GAN的融合方法存在训练不稳定,提取图像的局部和全局上下文语义信息能力不足,交互融合程度不够等问题 贡献: 提出双耦合交互式融合GAN(Dual-Coupled Interactive Fusion GAN,DCIF-GAN&…...
java基础 day1
学习视频链接 人机交互的小故事 微软和乔布斯借鉴了施乐实现了如今的图形化界面 图形化界面对于用户来说,操作更加容易上手,但是也存在一些问题。使用图形化界面需要加载许多图片,所以消耗内存;此外运行的速度没有命令行快 Wi…...
cpp,git,unity学习
c#中的? 1. 空值类型(Nullable Types) ? 可以用于值类型(例如 int、bool 等),使它们可以接受 null。通常,值类型不能为 null,但是通过 ? 可以表示它们是可空的。 int? number null; // …...
HTML增加文本复制模块(使用户快速复制内容到剪贴板)
增加复制模块主要是为了方便用户快速复制内容到剪贴板,通常在需要提供文本信息可以便捷复制的网页设计或应用程序中常见。以下是为文本内容添加复制按钮的一个简单实现步骤: HTML结构: 在文本旁边添加一个复制按钮,例如 <butto…...
Spring Cloud面试题收集
Spring Cloud Spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。…...
观测云对接 SkyWalking 最佳实践
简介 SkyWalking 是一个开源的 APM(应用性能监控)和可观测性分析平台,专为微服务、云原生架构和基于容器的架构设计。它提供了分布式追踪、服务网格遥测分析、度量聚合和可视化一体化的解决方案。如果您的应用中正在使用SkyWalking …...
AI少女/HS2甜心选择2 仿天刀人物卡全合集打包
内含AI少女/甜心选择2 仿天刀角色卡全合集打包共21张 下载地址:https://www.51888w.com/408.html 部分演示图:...
MISC - 第11天(练习)
前言 各位师傅大家好,我是qmx_07,今天继续讲解MISC的相关知识 john-in-the-middle 导出http数据文件里面logo.png 是旗帜图案,放到stegsolve查看 通过转换颜色,发现flag信息 flag{J0hn_th3_Sn1ff3r} [UTCTF2020]docx 附件信息…...
网站策划培训/优化落实疫情防控新十条
2019独角兽企业重金招聘Python工程师标准>>> 1. 下载文件: unlocker208、darwin.iso、Yosemite Install10.10.3(14D131).cdr 2. 解压:unlocker208(英文路径) win-install.cmd(右键)——管理员身份运行 3. 新建虚拟机 具…...
xuzhou公司网站制作/软文代发代理
在 Linux 中,如果你需要通过命令行终止一个进程(无论什么原因),你可以使用 kill 命令,但是你需要输入欲终止进程的 PID 。有没有不需要进程 PID 的命令方式终止进程的方法?是的,有一个命令行工具,称为 pkil…...
网站维护怎么做/青岛快速排名
1.跨平台需求显然,如果您的目标是拥有一个应该能够跨平台(Windows,Linux和MacOS)运行的应用程序(Web /服务),那么.NET生态系统中的最佳选择就是使用 . NET Core作为其运行时(CoreCLR)和库是跨平台的 . 另一种选择是使用Mono项目 . 这两种选择…...
苏州专业网站建设的公司/江北seo页面优化公司
目录 命令格式 一、常用操作以及概念 快捷键 求助 1. --help 2. man 3. info 4. doc 关机 1. who 2. sync 3. shutdown PATH sudo 包管理工具 1. 发行版 VIM 三个模式 1. 离开或保存 GNU 二、磁盘 磁盘接口 1. IDE 2. SATA 3. SCSI 4. SAS 磁盘的文…...
seo好wordpress主题/南通seo网站优化软件
员工管理和激励是一个复杂的事情,有时让管理者摸不着头脑,甚至感到头疼。销售管理往往并非现场管理,遥控管理无形之中增加了管理的难度。轻松一下,看看以下的十个经典故事,也许你会从中受到启发。 一、分工一位年轻的炮…...
兰州网站建设报价/武汉网站排名提升
湖南农大机械制图下册题库0102B06、将机件部分的结构,用大于————所采用的比例画出的图形称为局部放大图。局部放大图上方标注的比例是指局部放大图的————与其————相应要素的线性尺寸之比。0102B07、画局部放大图时应注意:局部放大图可画成—…...