天津小程序网站开发公司,湖北强涛建设工程有限公司网站,wordpress 后头,网站模板购买参考
https://www.nowcoder.com/discuss/389810396381683712?sourceSSRsearch
这里是b站对应的csdn博客#xff0c;比较详细的介绍grpc相关原理说明#xff0c;首先是大概的一个流程图说明。 什么是 RPC #xff1f;
远程过程调用#xff08;RPC#xff09;是计算机科…参考
https://www.nowcoder.com/discuss/389810396381683712?sourceSSRsearch
这里是b站对应的csdn博客比较详细的介绍grpc相关原理说明首先是大概的一个流程图说明。 什么是 RPC
远程过程调用RPC是计算机科学中的一个深入研究的概念它允许一个程序在远程地址空间中执行代码就好像是本地操作一样。在其核心RPC主要涉及两个关键方面函数调用的透明性 和 底层的通信机制的抽象。
在 RPC 中客户端和服务器都有一个称为 stub 的实体它充当中介转换或“序列化”函数调用及其参数使其能够在网络上发送。序列化过程将数据结构或对象转换为可在网络上发送的字节流在接收端此流被“反序列化”回其原始格式。这种序列化和反序列化过程可以使用多种格式如 XML、JSON 或更高效的格式如 Protocol Buffers。
通信层可以基于各种协议如 TCP、UDP 或 HTTP/2。尽管这些细节对于调用者来说是透明的但底层的实现确保数据的完整性和顺序并处理网络的不稳定性如超时、延迟和错误。 为什么要用 RPC
当我们的业务越来越多、应用也越来越多时自然的我们会发现有些功能已经不能简单划分开来或者划分不出来。
此时可以将公共业务逻辑抽离出来将之组成独立的服务 Service 应用而原有的、新增的应用都可以与那些独立的 Service 应用 交互以此来完成完整的业务功能。
所以我们急需一种高效的应用程序之间的通讯手段来完成这种需求RPC 大显身手的时候来了 常用的 RPC 框架
gRPC一开始由 google 开发是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。Thriftthrift是一个软件框架用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎以构建在 C, Java,Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript,Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的、高效的服务。DubboDubbo 是一个分布式服务框架以及 SOA 治理方案Dubbo自2011年开源后已被许多非阿里系公司使用。Spring CloudSpring Cloud 由众多子项目组成如 Spring Cloud Config、Spring Cloud Netflix、Spring Cloud Consul 等提供了搭建分布式系统及微服务常用的工具。 RPC 的调用流程
要让网络通信细节对使用者透明我们需要对通信细节进行封装我们先看下一个 RPC 调用的流程涉及到哪些通信细节 服务消费方client调用以本地调用方式调用服务client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体client stub找到服务地址并将消息发送到服务端server stub收到消息后进行解码server stub根据解码结果调用本地的服务本地服务执行并将结果返回给 server stubserver stub将返回结果打包成消息并发送至消费方client stub接收到消息并进行解码服务消费方得到最终结果。
RPC 的目标就是要 2~8 这些步骤都封装起来让用户对这些细节透明下面是网上的另外一幅图感觉一目了然