淄博地区如何优化马鞍山网站以提高搜索引擎排名?
摘要:淄博抖音关键词优化,马鞍山网站seo,网页设计学生实训报告总结,goodwork wordpressrpc通信原理浅析 rpc(remote procedure call),即远程过程调用&#x
淄博抖音关键词优化,马鞍山网站seo,网页设计学生实训报告总结,goodwork wordpressrpc通信原理浅析
rpc(remote procedure call)#xff0c;即远程过程调用#xff0c;广泛用于分布式或是异构环境下的通信#xff0c;数据格式一般采取protobuf。
protobuf#xff08;protocol buffer#xff09;是google 的一种数据交换的格式#xff0c;它独立于平台语…rpc通信原理浅析
rpc(remote procedure call)即远程过程调用广泛用于分布式或是异构环境下的通信数据格式一般采取protobuf。
protobufprotocol buffer是google 的一种数据交换的格式它独立于平台语言。 google 提供了protobuf多种语言的实现java、c#、c、go 和 python每一种实现都包含了相应语言的编译器以及库文件。 由于它是一种二进制的格式比使用 xml20倍 、json10倍进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式可以用于诸如网络传输、配置文件、数据存储等诸多领域。 protobuf比json、xml块是毋庸置疑的一方面前者是二进制存储后两者是纯文本存储且还需要存取一些额外的数据信息例如xml需要存取标签、json需要存取key-vale。
上一节说到分布式环境下不同服务器上的节点想要完成服务的互相调用离不开rpc远程调用这里简单分析一下调用过程。 step1local调用一个service即一个method该method有方法名、方法的参数以及返回值首先如何知道这个服务在哪个分布式节点上这就要实现服务注册和服务发现(例如zookeeper)分布式各节点先将自身拥有的一些服务注册到服务中心那么local调用某个服务的时候就先去服务中心去找这个注册的服务在哪台节点上注册的找到这个节点后那么说明我要通过该结点返回这个服务所执行的结果。 step2拥有该服务的分布式节点如何知道调用者需要哪个服务显然local需要自己将要调用的服务的一些标识信息(方法名、参数、返回值)通过网络传输给该结点这里local采取protobuf来序列化服务的标识信息然后通过网络发送给对端。 step3拥有该服务的节点接收到local发送过来的数据之后需要反序列化出服务的标识信息这样才知道需要调用哪个服务调用完成之后得到该服务的结果那么和调用的过程类似先将这个结果序列化然后发送给对端当然如果该服务没有调用成功那么可以序列化错误信息返回表示调用失败。 step4local端接收到服务调用的结果同样采取反序列化的方式得到需要的结果local再根据结果做下一步操作或是返回错误整个rpc调用过程结束。 黄色部分设计rpc方法参数的打包和解析也就是数据的序列化和反序列化使用Protobuf。 绿色部分网络部分包括寻找rpc服务主机发起rpc调用请求和响应rpc调用结果。
