网络协议——RPC协议

网络协议——RPC协议网络协议——RPC协议远程调用协议,用于定义服务之间的接口调用规范标准1、RPC调用标准1.1、RPC结构客户端(服务端):执行逻辑进行本地调用Stub:对参数进行封装/解封装RPCRuntime:发送/接收请求/响应1.2、ONCRPC最早的RPC框架之一1.2.1、外部数据表示法(XDR)规定交互协议的文件,包括:XID:一对请求/响应的唯一标识CALL:请求为0,响应为1RPCVersion:RPC协议的版本号ProgramNumber:服务端程序的编号Ve

大家好,又见面了,我是你们的朋友全栈君。

网络协议——RPC协议


远程调用协议,用于定义服务之间的接口调用规范标准

1、RPC调用标准

1.1、RPC结构

  • 客户端(服务端):执行逻辑进行本地调用
  • Stub:对参数进行封装/解封装
  • RPCRuntime:发送/接收请求/响应

1.2、ONC RPC

最早的RPC框架之一

1.2.1、外部数据表示法(XDR)

规定交互协议的文件,包括:

  • XID:一对请求/响应的唯一标识
  • CALL:请求为0,响应为1
  • RPC Version:RPC协议的版本号
  • Program Number:服务端程序的编号
  • Version Number:服务端程序的版本号
  • Procedure Number:调用的方法
  • Credential、Verifier:认证鉴权
  • Remote Procedure Parameters:参数列表

1.2.2、端口映射器(PortMapper)

服务提供方的RPC程序启动时将自己的服务端口注册在PortMapper中,服务调用方从PortMapper中找映射的端口,然后再和服务提供方建立连接

2、简单对象访问协议(SOAP)

与古老的RPC协议相比,双方的SOAP协议没必要完全一致(参数顺序、参数个数等),更加灵活

2.1、Web服务描述语言(WSDL)

也是一个XML,描述了方法名、服务名、端口、请求参数等信息,通过在服务地址后加”?wsdl”查看

2.2、统一描述、发现和集成协议(UDDI)

以SOAP协议为基础的RPC服务,将自己的wsdl文件放到UDDI中,供服务调用方封装成本地调用

3、RESTful格式的API

全称叫表述性状态转移,基于HTTP协议的请求通过方法类型(GET、POST等)确定请求动作,数据以JSON文本格式传输

4、二进制类RPC协议

将数据压缩成二进制,减少带宽占用

Hessian2

Dubbo中默认的序列化协议

服务调用方根据Hessian2协议的规则,只记录类文件中类名、方法名、字段等信息的名称和字符长度等,压缩成二进制作为自描述,同时将参数的长度和值压缩成二进制,与自描述一同传输

服务提供方通过Hessian2协议的统一规则,对接受的二进制流进行解析,获得真正的请求

5、跨语言类RPC协议

不同的需求使用不同的编程语言,主要为了适应跨语言调用

Protocal Buffers

使用TLV(Tag,Length,Value)的存储办法将请求数据压缩

  • Tag:根据类文件中字段的唯一标识field_num,和字段类型的标识wire_type生成
  • Length:字段值的长度
  • Value:字段值

Envoy

一种动态的负载均衡器,有4个基础配置:

  • listener:监听端口接入请求
  • endpoint:目标IP地址和端口,请求转发的目的地
  • cluster:一组相同的endpoint,可以通过轮询进行负载和健康检查
  • route:通过route规则,跳到不同版本的cluster,或根据条件进行流量分配
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144454.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 一文让你彻底搞懂最小二乘法(超详细推导)「建议收藏」

    一文让你彻底搞懂最小二乘法(超详细推导)「建议收藏」1.要解决的问题因果关系,观测值与预测值

    2022年5月13日
    52
  • 简单实现Android平台多语言

    简单实现Android平台多语言

    2022年1月6日
    42
  • 0元搭建卡盟主站_万能卡盟

    0元搭建卡盟主站_万能卡盟删除对象功能说明删除指定桶中的对象。方法定义1.ObsClient->deleteObject(array$parameter)1.ObsClient->deleteObject(array$parameter,callable$callback)请求参数删除桶功能说明删除桶,待删除的桶必须为空(不包含对象、历史版本对象或分段上传碎片)。方法定义1.Ob…

    2022年8月12日
    5
  • 最小二乘法 原理_高斯最小二乘法原理

    最小二乘法 原理_高斯最小二乘法原理概念:最小二乘法是一种熟悉而优化的方法。主要是通过最小化误差的平方以及最合适数据的匹配函数。作用:(1)利用最小二乘法可以得到位置数据(这些数据与实际数据之间误差平方和最小)(2)也可以用来曲线拟合实例讲解:有一组数据(1,6),(3,5),(5,7),(6,12),要找出一条与这几个点最为匹配的直线:y=A+Bx有如下方程:6=A+B5=A+3B…

    2025年8月5日
    2
  • 二进制、八进制、十进制、十六进制关系及转换[通俗易懂]

    二进制、八进制、十进制、十六进制关系及转换[通俗易懂]二进制,八进制,十进制,十六进制之间的关系是什么?浮点数是什么回事?本文内容参考自王达老师的《深入理解计算机网络》一书<中国水利水电出版社>一、数制解释:1、编程中经常使用的数制分类(“你编程时能使用的数制全部在这里了”):⑴、十进制十进制是我们生活中使用得最频繁的进制了。十进制的基数是10,也就是说,十进制有10个数字符

    2022年10月17日
    3
  • Python处理Excel数据-pandas篇

    Python处理Excel数据-pandas篇Python处理Excel数据-pandas篇非常适用于大量数据的拼接、清洗、筛选及分析在计算机编程中,pandas是Python编程语言的用于数据操纵和分析的软件库。特别是,它提供操纵数值表格和时间序列的数据结构和运算操作。它的名字衍生自术语“面板数据”(paneldata),这是计量经济学的数据集术语,它们包括了对同一个体的在多个时期上的观测。它的名字是短语“Pythondataanalysis”自身的文字游戏。目录Python处理Excel数据-pandas篇一、安装环境1、打开以下文

    2025年7月1日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号