前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网络协议——RPC协议

网络协议——RPC协议

作者头像
全栈程序员站长
发布2022-08-31 09:26:36
1.5K0
发布2022-08-31 09:26:36
举报

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

网络协议——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.cn/144454.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 网络协议——RPC协议
    • 1、RPC调用标准
      • 1.1、RPC结构
      • 1.2、ONC RPC
    • 2、简单对象访问协议(SOAP)
      • 2.1、Web服务描述语言(WSDL)
      • 2.2、统一描述、发现和集成协议(UDDI)
    • 3、RESTful格式的API
      • 4、二进制类RPC协议
        • 5、跨语言类RPC协议
        相关产品与服务
        负载均衡
        负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档