最后更新:2021-11-08 16:13:00 手机定位技术交流文章
经常需要审查技术结构并搜索因特网地图(见http://dockone.org.io/article/696771):
将发现服务与网关/服务之间的联系,以便记录RPC、HTTP和两者之间的区别。
- 阅读本报告时,应参考“[稳定水平]网关水平和相关技术储存库”。
HTTP, 或超文本传输协议, 是协议 。
HTTP的核心是,它是客户和服务机构商定的通信格式。
由[计算机网络]测试器学习和整理HTTP可以推进详细的梳理工作。
RPC(远程制作呼叫)远程程序呼叫是分布式系统中典型的通信手段。 它允许程序调用另一个地址空间( 通常在同一网络的另一台机器上) 的进程或功能, 而不是程序员对远程调用细节的明确编码 。
VS 是本地进程呼叫。 呼叫远程进程
就像在古老的单板时代, 我们的服务呼叫是自我实现的, 本地的流程呼叫: 它们现在都是微服务, 根据商业模块的不同划分, 使用者类型的服务 并不来自我的团队, 我只是写订单。 但是我们需要使用用户信息 来提供服务, 所以我们叫用户群体服务, 代码变成:
可以看出,区域采购中心是一个基于网络的远程电话,订单服务是一个客户,用户服务是一种服务。
您如何告知机器, 如果 addAge () 方法在服务端, 而执行功能在运行过程中在远程机器上, 您如何通知机器它必须被调用?
远程程序电话需要互动,还需要商定一种格式,是否希望使用HTTP标准完全取决于你。
为什么要有RPC?
你有没有想过 为什么我们只是通过 WebClient 使用HTTP时 才会使用RPC?
在现实中,** RPC电话是同一公司内不同部门离职或相互沟通造成的。 **
当服务分割和独立启动时,服务之间的呼叫需要网络连接,而使用 WebClient 绝对可行,但更难操作。我们认为,即使服务分解了,使用应该像本地一样简单。因此,有RPC框架可以详细阻断这些底线呼叫,因此我们编码的精确度和我们以前当地呼叫的精确度相同。
由于HTTP协议的冗余,RPC都是内部的套件,所以只要公司内部有标准格式,就没有必要对互操作性做太多的麻烦。 因此,可以制定各种定制协议,提高通信效率。 因此,RPC经常要求内部服务,而HTTP的好处是普遍性的,而这一协议得到了所有人的承认。
原理图:
时序图:
以下阶段用于标志整个RPC呼叫过程:
当机器想要调用 B 机器时, 它必须首先建立通信连接 。 所有通过远程程序调用的数据交换都通过客户端和服务器之间的 TCP 连接传输 。
处理位置问题,即服务器 A 上的应用程序如何指导下方 RPC 框架, 如何连接到服务器 B (如主机地址或 IP 地址) 和特定端口, 以及该方法的名称
为了完成一次服务呼叫,我们通常需要提供一台B机器(主机名或IP地址)和某一端口,以及将要调用的方法或功能的名称,以及出入境信息。
可靠地点的搜索(主要是发现服务)是实现难民保护方案的基础,例如能够使用重新失能或动物饲养员登记服务。
难民保护方案的结构有三个关键角色:提供者、客户和登记中心。
- 服务提供者暴露在外。
- 呼叫者:拨打若干电话以获得远程服务的服务消费者。
- 登记中心:服务登记和发现。
从服务提供者的角度来看:
1. 在供应商开始提供服务时,他们必须自动向登记中心登记。
2. 当供应商的服务终止时,登记中心必须注销。
3. 供应商应定期向登记中心提交心跳报告,如果供应商不长期发送心跳报告,则认为供应商已停止服务并将相关服务从登记中心撤回,供应商应定期向登记中心提交心跳报告,如果供应商长期不发送心跳报告,则供应商被视为已停止服务,并将相应服务从登记中心撤回。
从调用者的角度看:
1. 在对话开始之前,打电话者必须订阅登记中心,从登记中心取得供应商的地址。
2. 如果有提供商,无论是在线还是离线,登记中心通知打电话者。
3. 在没有打电话者时,取消订阅。
B机器在当地(通过代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理代理B机器被调B机器,其返回价值的回报价值被收到并返还给A机器A机器。
常见的RPC框架
- GRPC是当代开放源码高性能RPC高性能框架,可在任何环境中发挥作用,它可以通过插接支持将数据中心内部和之间的服务有效地连接起来,以提供负载平衡、跟踪、操作状态检查和识别。它也适用于连接设备、移动应用程序和浏览器的最后一英里分布计算,用于后端服务。
- Trift是建造可扩展的跨语言服务的软件框架,它将复杂的软件堆和代码生成器结合起来,以建立在C++、Java、Python、PHP、Ruby、Errang、Perl、Haskell、C#、Coco、JavaScript、Node.js、Smalltalk和OOCaml上顺利整合和高效的服务。
- Dubbo是一个分布式服务框架和SOA治理应用程序,除其他外,其职能包括高性能的NIO通信和多协议一体化、动态地点和服务路线搜索、软负载平衡和容忍误差、依赖分析和降级。
- 春云由各种次级项目组成,包括春云配置、春云网和春云领事。
配置管理、服务发现、断路器、智能路由器、微试剂、控制总线、一次性象征性、全球锁、主选择、分布式会话和集束状态是设计分布式系统和微型服务通常使用的技术之一。 春云基于“ 春云 ” ( Spring Bot), 使得开发部署相对简单。
一种普遍的误解:HTTP协议比直言的TCP报告更昂贵,与连接设置和分离有关的费用较高。
第一是辩称,HTTP协议与Speak TCP报告协议不具有可比性,额外费用是由于连接设置和终止造成的。
- HTTP协议是允许连接池再利用,即产生一定数量的连接,在不经常创建和迁移的情况下保持开放。
- HTTP和Protobuf之间的区别是运输机制,可采用Protobuf等二进制编码方法编码内容。
REST通常以商业为导向,以相当基本的方式将就物体采取的行动映射成HTTP动词,利用浏览器进行扩展和传输,利用JSON数据完成客户与服务之间的通信,通过请求/答复直接便利通信,不需要中间代表,简化系统架构,仅通过互联网完成不同系统之间的数据传输,通常以商业为导向,以相当基本的方式将就物体采取的行动映射成HTTP动词,利用浏览器进行扩展和传输,利用JSON数据完成客户与服务之间的通信,通过请求/答复直接便利通信,不需要中间代表,简化系统架构,仅通过互联网完成不同系统之间的数据传输。
由于与RET有关的问题,GRPC,即谷歌开放源码RPC移动和HTTP/2结构框架,可以作为一种替代办法。
gRPC是一个基于二元的通信协议,它使得能够使用基于协议的缓冲 IDL定义的Grpc API,谷歌开发的一种语言中性排序机制,以提供顺序结构化数据,以及客户和服务提供方在HTTP/2上以协议缓冲格式交换二元信息。
gRPC的优势:
- gRPC通信采用有效的二进制电文格式原始软件进行排序,该软件在服务器和客户计算机上快速排序。 Protobuf的序列信息非常短,能够携带有效载荷,这对于诸如移动应用程序等限制带宽情况下至关重要。
- 代码生成:所有GRPC框架都提供一流代码生成能力。GRPC的核心文件是*.Proto,它描述了GRPC服务和信息的合同。根据该文件,GRPC框架将产生基于服务的课程、信息以及整个客户代码。
- 严格监管:《菲律宾妇女进步委员会守则》是菲律宾妇女进步委员会服务必须遵循的格式,消除分歧,为开发商节省时间,因为它在平台和各种成就上是统一的。
- 其他资料来源:https://ww.un.org/I'm sorry, cnblogs, cnblogs, cnblogs, cnblogs, cnblogs, cnblogs, cnblogs, cnblogs, cnblogs, cnblogs, cnblogs, cnblogs, cnblogs, cnblogs, cnblogs, cnblogs, blogs, cnblogs, cnblogs, cnblogs, cnblogs, nblogs, 。 https://ww.un.org/I'm sorry, https://ww.un.org/I'm sorry, cnblogs,
gRPC的弱点:
- 浏览器支持有限 : 目前, 直接从浏览器中拨打 gRPC 服务不可行 。 gRPC 严重依赖 HTTP/2 能力, 缺少浏览器来提供 GRPC 客户端 Web 请求所需的控制程度 。 例如, 浏览器不允许 HTTP/2, 或者提供访问底部 HTTP/2 框架的机会 。
- HTTP API 请求以文字形式传送,可以由人读懂和作出。 默认情况下, gRPC 信件使用 protobuf 编码。 虽然 Protobuf 在传输和接收时非常高效, 但是其二进制格式无法读取 。 Protobuf 需要 * 。 Proto 文件中提供的信息界面描述是适当的反顺序。 需要添加工具来分析线上的 Protobuf 有效载荷和手动构建请求 。
【部分内容参考自】
本文由 在线网速测试 整理编辑,转载请注明出处。