什么是RPC?RPC框架dubbo的核心流程

      最后更新:2022-05-11 19:03:40 手机定位技术交流文章

      推荐学习

      • 1658页“Java采访和采访核心”
      • SpringCloud+SprintCloud Alibaba在互联网上都是微型服务结构的关键。

      I. 休息和爱国者同盟

      1. REST和RPC协议的具体内容是什么?

      在单体应用中,计算机语言一级的方法函数使模块间调用。另一方面,分配系统是由若干机器操作的。一般来说,每个服务样本代表一个程序。为了相互交流,各服务机构必须采用程序间通信协议。RPC和RET协议是最常用的通信协议。

      (1)REST:

      REST基于HTTP的实施。HTTP 协议用于处理数据传输。更加标准化与通用,因为HTTP协议得到两种语言的支持。其它接口指标准 http API 。REST是一种结构类型。这是一系列结构性限制和原则。" 更新 " 是指符合 " 无害环境技术 " 概念的应用或设计。改头换面地认为任何事物都是一种资源。REST强调互动组件的扩散、接口兼容性、组件和中间器的自主部署,以减少互动延迟。它强化安全,也能封装遗留系统。

      (2)RPC:

      远程服务中心是一个流程到流程的通信机制,它使远程服务可以被称作当地服务,通信协议通常是二元的。

      2. RPC和REST比较

      (1) RPC转让协议和性能:RPC转让协议有适应性。可使用TCP这样做。因为TCP协议 是在交易的底部,它能够进一步定制协议字段。这个故事是我们对2011年埃及抗议的特别报导的一部分。减少网络开销,为了提高传输性能和缩短传输时间,不断增加的吞吐量和梳理量。关于无害环境技术的最高一级协定是HTTP协定。发送内容相同的数据,请求中包含了许多毫无意义的信息摄取的字节数量大于TCP传输所需的字节数量。因此在同等网络下,HTTP数据传输的效率将低于TCP数据传输的效率。传输耗时更长,不仅如此,JSON 用于大多数的REST HTTP。测序和使用成本要高得多。但若是HTTP2, 这个项目是我们独家报导埃及2011年抗议活动的一部分。然后,它可用作区域竞争委员会。

      (2) 灵活性、开放性和互操作性:例如,对HTTP进行再培训。其规定性更强,范围更广。HTTP协议得到两种语文的支持。因此, " 无害环境技术 " 很容易被援引和检验。遗憾的是,在使用RPC方面有若干限制。如果RPC必须接触公众,需要进一步处理,REST比灵活性更灵活。

      3) 场景使用:REST在开放的各类环境中最常用。和从网络浏览器打来电话一样Api 接口调用,第三方接口调用等。RPC主要用于公司内部服务电话。性能消耗低,传输效率高,特别是大型的网站,当存在若干内部子系统和接口时,RPC适合于使用。

      二、RPC 框架

      在微观服务设计中,经常使用REST和REPC。微服务的好处之一,它既是服务提供者不使用的技术,也是服务提供者确实使用的技术。可以想象,大公司之间的多组技术联系是可行的。 但是,如果没有连贯一致的通信结构,每个服务提供团队必须完成一套“停业”技术任务,如顺序、反顺序、网络框架、连接的集合、收发机、加班费处理、国家机器等等。造成整体的低效。所以,统一的通信结构包括了前面所说的“企业的退出”技术劳动力以及技术劳动力。首先,服务是一个令人关切的问题。

      1. 区域常委会框架的具体内容是什么?

      区域方案框架的目标是使远程服务更加容易和透明。在最底层,RPC框架负责阻断测序、传输和通信细节。开发人员在使用时,只需知道谁供应哪个地点的远程服务接口。没有必要关注最小的来文细微之处或呼叫程序。区域方案框架是微观服务结构的基本组成部分。它有可能大幅度降低设计中的微服务费用。打电话者和服务供应商提高研发效率。

      2. RPC框架的技术结构

      下图显示,在典型的RPC使用情况下,主要组成部分是服务发现、负载、容忍度、网络传输、顺序等,而RPC议定书则指明服务如何顺序和联网,这也是RPC的基本功能。

      • Dubbo和Google GrPC是应用级RPC框架。
      • Netty的通讯结构
      • RMI、Socket、SOAP(HTTP XML)、RET(HTTP JSON)是远程通信协议的例子。

      3. RPC框架呼吁程序

      三.1. 以下是区域方案框架的基本组成部分:

      (1) 服务电话:客户。

      (2) 客户根:保存服务地址信息,将客户请求参数数据嵌入网络信息,并通过网络传输将其传送到服务器。

      (3) 港口根服务(Server Stub):接受客户的要求,并在与当地部门联系处理之前拆包。

      (4) 服务终了服务(服务员):实际服务提供者。

      三.2. RPC呼叫程序:

      (1) 服务客户(客户)通过电话请求提供消费者服务。

      (2) 客户根(Client Stub)负责在接通电话后将(组装)技术、入口等测序(技术、入口等)纳入能够进行网络传输的电文机

      (3) 客户 Stub 定位远程服务地址并通过网络向服务器发送信息。

      (4) 收到电文后,执行服务器 Stub 解码和反顺序。

      (5) 根据解码结果,港口根服务公司(Server Stub)援引当地服务进行处理。

      (6) 服务端(服务端)采用特定商业逻辑,并将处理结果提供给服务端根(服务端 Stub)。

      (7) 服务端根(Server Stub) 返回序列结果并通过网络将其传送给消费者。

      (8) 客户Stub接受信息、解码和反后果。

      (9) 服务用户的最终结果;

      另一方面,RPC框架的目标是对上文步骤2-10进行加密,即对调用、编码/编码过程进行加密,使用户在调用远程服务时感到他们是否正在调用当地服务。

      4. 如何建立区域竞争和消费者保护框架?

      首先,如果我们成功地建立了区域常委会框架呢?为了建立一个区域常委会框架,我们只需要处理以下基本问题:

      四.1. 我们如何通过互联网沟通?

      远程调用中,客户和服务联系是通过互联网进行的。因此,第一步是建立通信联系。此连接将请求的数据的字节流发送到服务器 。然后,顺序回答将返回客户。在这个通讯过程中,它采用一项无限制的协议。能完成传输就行,但首先,我们必须考虑两个问题:如何选择网络协议以及如何构建连接。

      (1) 网络协议选择:大多数RPC框架使用TCP作为传输协议。然而,民主联盟有能力这样做。此外,HTTP的选择也很有限。例如,GRPC利用HTTP2。然而,不同的协议提供了利弊。TCP 更加高效,HTTP在使用上更适应性强。这是关于你如何利用现场, 以及如何利用现场。如何选择最佳网络传输协议 以满足你的需求

      (2) 建立通信连接:所有RPC数据均通过这一连接传输。此连接可按需创建( 如果您需要拨打, 您可以提前拨打) 。一旦呼吁结束,就失败了。也可以是长期连接的(客户和服务器连接的时间很长)。此时此刻,我不在乎箱子是否被运走可以结合心跳测试机制,定期评估已形成的连接的可行性。 )若干遥远的任务需要一个共同的连接。

      四.2,怎样才能找到服务线?

      解决寻址的问题,这是指客户如何决定援引的职能。在本地调用中,函数指针直接指定函数。但是在远程调用中,函数指针是不行的,因为这两个过程的地址空间是如此不同。所以在远程调用中,客户端和服务端需要分别维护一个【ID -> 函数】的映射表,在所有程序中,身份证是唯一已经查明的身份证。当客户呼唤一个遥远的过程,附上这个ID,服务端通过查表,确定客户必须援引何种职能,然后运行相关函数的代码。

      地点问题可以通过使用注册中心来解决,此后,服务供应商能够披露相关功能并在注册中心注册,然后服务消费者从注册中心找到服务,然后通过相关方式与服务商联系。

      (1) 从服务提供者的角度来看:

      当服务提供人能够提供服务时,其服务必须在指定的登记中心登记,以便服务消费者可以查询服务登记。

      当服务供应商出于若干原因停止提供服务时,要求服务提供者每月向服务登记中心传送心跳测试,以取消终止的服务。如果服务登记中心在很长一段时间内得不到服务提供者的脉冲,它可用作服务提供者。据认为,该服务提供商已经停止运营。注册中心不再提供这项服务。

      (2) 从打电话者的观点来看:

      以服务供应商所订阅的服务为基础,在服务登记簿上查询服务供应商的地址等,从而启动服务电话;

      注册中心通知呼叫者该服务是否可用,无论是在线服务还是离线服务。

      当服务呼叫器离线时,订阅终止。

      四.3. 如何反顺序和顺序排列?

      在本地调用中,我们现在要做的就是把参数存储在记忆中然后让函数从存储中读取它 。但是,当远程程序被引用时,客户和服务提供者是两个不同的过程。无法关闭临时文件夹:%s。因此,远程进程正在呼唤。如果客户与服务机构相互沟通,方法的设置和结果必须通过TCP等基层网络协议发送。使用网络协议是不可行的,因为它是二进制的(只有二进制数据可以通过网络传输)。因此,这些数值必须以二元形式排序。使用二进制序列化,通过位置和传输发送目标服务器。当目标服务器收到数据时,数据必须逆序排列。远程通话的效率也可能受到测序和反测序速度的影响。

      • 顺序是指将项目转换成二进制流的过程。
      • 反顺序是将二元流转化为对象的过程。

      5. 如何选择最佳PRC网络传输协议?

      利用区域通信中心,网络通信有几种可能性。例如,考虑TCP、UDP和HTTP协议。每项协定对总体业绩和效率的影响不同。那么,如何选择最合适的网络传输协议?针对这个问题,第一步是了解RPC的转让方法如何运作:

      • 以TPCP为基础的协定提出的RPC请求因为TCP协议 是在交易的底部,它能够进一步定制协议字段。这个故事是我们对2011年埃及抗议的特别报导的一部分。减少网络开销,为了提高传输性能和缩短传输时间,不断增加的吞吐量和梳理量。因此,格瑞尔人必须关注最底层的复杂细节。实现的代价更高,同时对不同平台,如安卓,iOS 等,有必要重新开发若干工具包,以便要求发送和评估结果。工作量大,要迅速回应并满足用户的要求是困难的。
      • 以HTTP协议为基础的RPC可以使用JSON和XML表格中的要求和对数据的答复。JSON和XML是通用格式标准(HTTP协议也需要排序和反排序),然而,这不是协定要求我们做的事情。一个成熟的网络程序测序材料已经完成。开放源码分辨率工具开发完善。二级发展将非常简单和直接。然而,由于HTTP协议是更高一级的协议,发送内容相同的数据,请求中包含了许多毫无意义的信息摄取的字节数量大于TCP传输所需的字节数量。因此在同等网络下,HTTP数据传输的效率将低于TCP数据传输的效率。传输耗时更长,当然压缩数据,能够缩小这一差距。

      (三) 权利审查委员会框架

      到底是什么,杜博?

      前面讲到,在微观服务结构中,经常使用RPC。而 区域方案框架是微观服务结构的基本组成部分。它有可能大幅度降低设计中的微服务费用。打电话者和服务供应商提高研发效率。Dubbo是Alibabaha以爪哇为基地的RPC分发服务框架。创建高性能和透明度的远程服务访问应用程序,SOA服务治理方案以及SOA服务治理方案另外,Alibaba技术旅馆以春云为基地。
      杜博技术由弹簧球菌覆盖这个项目建在Spring Cloud Alibaba的Nacos登记中心,该项目包括一个Dubbo和Spring Cloud集成方案。这个故事是我们对2011年印度抗争的特别报导的一部分。因此,服务范围内的RPC协议基本上不需要修改。以RPC为基础的服务电话成功。

      2. Dubbo执行程序

      2.1. Dubbo进程概览:

      • 紫点线表示起始函数。
      • 在整个行动期间对称部署蓝色点点功能
      • 蓝线:在程序执行时完成功能,同步调用

      二.一. 整个杜博安装方法概述如下:

      (1) 使容器起动、装载和启动服务供应商。

      (2) 在运营开始时,服务提供者向登记中心登记自己的服务。

      (3) 在登记中心开始时,服务用户登记使用自己的服务。

      (4) 注册中心将服务供应商地址清单归还给消费者,当消费者得到时,它仍留在当地,如果内容变化,注册中心在漫长的连接中将变更数据传送给消费者。

      (5) 服务用户根据软负载平衡算法从供应商地址列表中选择一个供应商,如果呼叫失败,则选择另一个电话。

      (6) 每分钟,消费者和服务提供者以及向控制中心提交统计数字,以及累积的记忆时间和时间。

      消费者使用代理模式, 并建立了供货商代理。 供货商的真正功能是通过代理获取的, 它保护供货商的真正功能 。

      二.一.二 整个杜博执行过程可被视为生产者-消费者模式加上注册中心+监测中心,同时考虑到以下目标:

      • 消费者和提供者的脱钩,双方可以横向增长或减少节点的数量
      • 注册中心可以创建自己的同侪集群,动态地增加或删除节点,并在一个节点被消除后转换为另一个节点。
      • 为了集中,任何一方在登记中心都不应该懒惰,即使登记中心只是临时的,也不会影响对服务的号召。
      • 服务提供者的特征是无能。

      二.2. Dubbo的同步呼叫原则

      2.2.1.1. Dubbo调用过程同步:

      (1) 客户管道要求远程接口在目前的线条为“暂停”时向服务提交请求,即线条不能向后执行,必须能够获取服务结果才能向后处理。

      (2) 应客户要求,服务处处理请求,并将结果退还客户。

      (3) 客户收到结果,目前的线索反转。

      Dubbo利用Socket建造长链路、数据传输等等。底部与阿帕奇水稻框架相连接。阿帕奇米纳以反应堆示范通信框架为基础。基于tcp长连接。你知道我在说什么吗?这是远程通话的一步步程序换句话说,鉴于目前的线条,将请求发送出来,其后可加上这一行。至于服务端的结果,这是在该进程结束后发生的。信息以信息形式传递给客户。现在有两个问题:

      (1) 当结果返回并颠倒时,目前的线条如何“暂停”:

      Obj先生成为目标(ID, obj) 放在全球地图中然后,要获得 obj锁,使用同步。重新调用。 等待 () 导致当前线索等待 。然后又一个窃听器 等待服务结果抱歉, 地图。 Get( ID) 定位 Obj,然后,使用同步, 获得boj锁。再次调用。 通知All( ) 会唤醒您前面的等候队列 。

      (2) 套接字通信是一种全时、双轨通信模式。当许多线索同时通过远程方法被引用时,客户端和服务器之间的套接字连接的两端都会发送信件 。序列也可能是无条理的在结果处理后,Clit接收结果信息。阴蒂充斥着信息您如何确定初始线索生成了什么消息?

      使用 ID, 让它是唯一的, 然后把它提供给服务器, 服务器返回, 使我们能够确定它是哪一行 。

      二、二、二、二、二、二 二、二、二

      (1) 客户使用一条线进入远程接口,以便制作一个独特的IDDubbo,该IDDubbo是用原子线从0收集的。

      (2) 电话详情(例如界面名称、方法名称、引号列表等),按包装技术和结果处理回回召对象分类

      (3) 在此插入 ConcronentHashMap( ID, 对象) 。

      (4) 包装方法,将ID打入与Iosession.Write(请求)Astral Send out的物体请求。

      (5) 当前线条被重新用于回调的 feed() 功能, 试图获取远返回的结果 。在get()内部,第一步是利用同步获得回声对象回响的锁。已经测试了这些结果,以确定是否获得这些结果。如果没有,然后引用回调等候() 函数 。释放回击的锁,保持当前线条处于等待状态 。

      (6) 在收到和处理请求后,结果(包括独特的身份证)还给客户。客户端插座连接到一条专用于收听留言的线, 然后连接到新闻上。分析结果,取到ID,将自己放在ConcenthHashMap前面。于是我们发现了回调。将调用方法结果设置为调回对象。

      (7) 最后一行监听,然后接收回击对象的同步锁(由于前一次呼叫等待(),导致回击释放),这是首先使用的锁。第一步是使用通知All()来唤醒任何等待线,然后继续前进。因此,回调获得()功能仍然用于检索呼叫结果。至此,整个过程结束

      必须指出的是,本案的反弹旨在为每个通话产生一个新的无法共享的电话,并且必须保证身份证是唯一连接Socket的身份证。

      3. Dubbo负载平衡法

      (1) 随机调用策略(默认) : 随机选择的服务器节点越多,对不同的服务器示例可以分配不同的权重,流量分布就越均匀。

      (2) 呼叫战略:请求在机器中分布均匀,如果机器有不同的性能,很容易超载低性能机器,因此现在应该改变重量,使低性能机器的载荷减少,交通量减少。

      (3) 最低活动编号战略:根据服务器的运行状态选择服务。如果计算机性能差,收到的请求越少,收到的请求就越少,收到的请求越少,收到的请求就越少,被分配给性能差的非活动机器的请求就越少。

      (4) 哈希方法的一致性:对相同参数的要求总是分配给固定服务器节点;当服务器节点挂起时,剩余流流在虚拟节点的基础上均匀分布,摇动的方法一致性不是太严重:对相同参数的要求总是分配给固定服务器节点;当服务器节点挂起时,其余流流在虚拟节点的基础上平均分布,摇动并不严重。

      4. Dubbo的误差容忍法

      失效( 默认) : 自动开关失败。 发生故障时, 在另一个服务器上再试一次; 默认是两个。 它通常用于读取活动, 但重试可能导致较长的延迟 。

      快速失败: 快速失败, 仅启动一次呼叫, 并报告快速失败。 通常用于非指令性写作任务, 比如添加新记录 。

      失败是安全的,任何异常都会被完全忽略。 经常被写入审计日志等。

      失败回溯: 自动恢复失败, 无法要求定期重印后台记录。 无法清除临时文件夹:%s

      叉车: 同时调用许多服务器, 只要一个成功就返回。 通常实时用于高需求阅读活动, 尽管浪费了更多的服务资源。 Forks=2 设置了最大的平行次数 。

      广播: 电台逐个联络所有供应商, 其中任何一个都是错误的。 通常用来通知所有供应商需要更新本地资源信息, 如缓存或日志 。

      5. Dubbo支持哪些协议和背景?

      (1) 杜博:与不对称国家信息组织通信的单一长长连接,一种能够处理大量和少量数据的服务。客户比供应商大得多。传输协议 TCP,黑塞人联合连级化Dubbo正式推荐Dubbo协议。但是,dubbo协议不是为了处理大量数据而设计的。比如传文件,传视频等,除非请求量很低

      (2) 马绍尔群岛:完成了使用约旦王国标准马绍尔群岛协议的工作。在爪哇使用通常的测序法,完成可序列化界面、传输参数和返回参数对象。使用阻塞式短连接,转移包件大小混合物,客户和供应商的数量是可比的。可传文件,传输协议 TCP。多个短连接,根据TCP协议传输,同步传输,使用标准的远程服务电话和RMI兼容性。通用组合软件包版本低。Java系列化中存在安全缺陷。

      (3) 网络服务:基于网络服务的远程电话协议。CXF 实现一体化,提供与原始网络服务的兼容性 。多个短连接,与HTTP通讯,同步传输,使用系统一体化和多语种电话。

      (4) HTTP:基于提供的 HTTP表格的远程呼叫协议。HttpInvoke 实施中使用了弹簧。多个短连接,HTTP 传输协议,传入参数大小混合,供应商比客户多。必须调用该应用程序和浏览器JS。

      (5) 赫西安语:综合的赫西安语服务。它使用HTTP通讯。通过使用服务接触服务,当Dubbo将Jetty作为服务器时,这是默认的。提供与Hession服务的互操作性。多个短连接,同步 HTTP 传输,赫森语顺序,等等。传入参数较大,提供者大于消费者,提供者压力较大,可传文件。

      (6) Redis:通过Redis达成的RPC协议。

      (7) Memcache:基于Memcache的RPC协定。

      6. Dubbo通信框架:

      Dubbo的默认通信框架是Netty。

      7. Dubbo结构设计:

      7.1、图例说明

      • 左边的浅蓝色背景界面是服务消费者的,右边的浅绿色背景界面是服务提供者的,中轴界面是双方的。
      • 图形分为10层,全部为单向依赖,右侧的黑箭头表示各层之间的依赖关系,其中任何一层可从上层移走,服务和配置层为API,其他层为SPI。
      • 图表中的绿色块是扩展界面,蓝色块是分类,图中仅显示用于连接图中层图块的实际类别是扩展界面,蓝色块是分类,图中仅显示连接层的实际类别。
      • 此图的蓝色点线代表启动程序, 即绿线代表时间集合链的开始, 而红线代表调用进程, 即紫三角箭头代表继承, 子类则被视为父节点, 线条文字表示调用方法 。

      7.2、各层说明:

      (1) 接口服务级别(服务):这一层与实际商业逻辑相连,与基于供应商和消费者商业设计的接口和实现有关。

      (2) 配置层( Config):服务 Config和Refence Config提供外部配置接口。

      (3) 服务代理(Proxy):服务接口透明度代理,创建服务客户Stub和服务终端Skeleton,中心在服务程序,扩大与代理工具的接口。

      (4) 服务登记(登记):封存服务地址登记和发现中心是服务网址,包括登记厂、登记处和登记处的扩展接口。

      (五) 线路层(通道层):封装若干供应商的路线和负载平衡,以及一座桥梁入口登记中心,由进口者作为Closter、目录、路由器和loadBlancce的核心和延伸界面。

      (6) 监测层(监测层):辐射防护中心根据斯坦立论进行电话和呼叫时间监测,加强与监测、监测和监测服务的接口。

      (7) 远程呼叫层:封装RPC电话,侧重于索引和结果,并增加Protocal、 Invoker和Exporter界面。

      (8) 信息交流层(交换):处理请求回复模式。同步转异步。在请求和答复的中间,交易所、汇兑频道、汇兑服务器和汇兑服务器是扩展界面。

      (9) 网络转让层(运输):将内部和网内合并为一个接口。讯息的核心是频道、传送器、客户、服务器和编码器是扩展接口的例子。

      (10) 数据定序层(序列):序列化、对象输入、对象输出和线索pool是扩大界面的一些可重复使用的工具。

      作者:张维鹏

      原文链接:
      https://blog.csdn.net/a745233700/article/details/122445199

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/24562.html

          热门文章

          文章分类