网络协议——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)
上一篇 2022年5月19日 下午3:20
下一篇 2022年5月19日 下午3:20


相关推荐

  • 关于一个网站FLASH导航条的制作

    关于一个网站FLASH导航条的制作http shineday nease net 这里的代码是抄袭过来的 根本是为了说明问题和解决问题 vardrag 0 1 震动参数 varflex 0 7 震动参数 mc y 20 mc goalX 10 nbsp 装入动画后影片剪辑 也就是滑块 首先出现的位置 mc onEnterFrame function nbsp nbsp this Step this Step

    2026年3月17日
    2
  • DDoS攻击模拟与Metasploitable渗透

    DDoS攻击模拟与Metasploitable渗透DDoS攻击模拟与Metasploitable渗透Part.1DDoS介绍和发展史1.DDoS:DistributedDenialofService,分布式拒绝服务攻击。2.带宽消耗型攻击,所谓带宽消耗型攻击就是攻击者将提供网络服务的正常的带宽消耗殆尽,带宽消耗殆尽后就会造成网络堵塞,从而当正常的用户与服务器进行通信时无法提供正常服务。举vps的例子,vps服务器一般都有固定的带宽,…

    2022年10月21日
    15
  • Apache服务器配置多个站点

    Apache服务器配置多个站点Apache服务器配置多个站点

    2022年4月23日
    46
  • petalinux笔记[通俗易懂]

    petalinux笔记[通俗易懂]记录一下这两天用正点原子开发板学petalinux的过程,众所周知,ZYNQ可以跑逻辑的FPGA,也可以跑裸机的SDK代码,还能跑个linux系统。在SDK开发中,只是在塔好的FPGA上跑一些简单的c代码,还没有安装上一个系统。1.首先是petalinux2018.3版本的安装建议参考正点原子的安装方法,注意事项就是使用ubuntu16.04版本而不是ubuntu18。要么就用ubuntu16.04配上petalin2018.3版本,要么就是ubuntu18配上pet…

    2025年10月27日
    6
  • docker启动mysql容器失败_docker容器

    docker启动mysql容器失败_docker容器什么是Docker?Docker是一种工具,它让容器创建,部署和运行应用程序变得更加容易。容器使开发人员可以将应用程序与所需的所有部分(如库和其他依赖项)打包在一起,并将其作为一个包进行部署。这样,借助容器,开发人员可以放心,该应用程序可以在任何其他Linux机器上运行,而不用管该机器的环境配置。安装DockerDesktop前往官方网站:www.docker.com/get-started根据操作系统,下载并安装对应的DockerDesktop。验…

    2022年10月5日
    5
  • 静态iP与权限更改[通俗易懂]

    静态iP与权限更改[通俗易懂]静态iP与权限更改

    2022年4月22日
    45

发表回复

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

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