当前位置: 首页 > news >正文

RPC项目解析(1)

分布式通信框架:让远程方法调用和调用进程内方法一样简单

RPC通信原理

rpc:远程过程调用(远程能够调用其他模块的方法)
在rpc中需要发送时候,对发送的信息进行序列化,在服务端对接收到的信息进行反序列化。

序列化:将一个rpc调用序列化成一个字节流
反序列化:从网络接收的字节流反序列化成一个rpc调用

在这里插入图片描述
黄色部分:设计rpc方法参数的打包和解析,也就是数据的序列化和反序列化,使用Protobuf。

绿色部分:网络部分,包括寻找rpc服务主机,发起rpc调用请求和响应rpc调用结果,使用muduo网络库和zookeeper服务配置中心(专门做服务发现)。

protobuf

protobuf(protocol buffer)是google 的一种数据交换的格式,它独立于平台语言。
google 提供了protobuf多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。
由于它是一种二进制的格式,比使用 xml(20倍) 、json(10倍)进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。

  • 1.protobuf是二进制存储的;xml和json都是文本存储的
  • 2.protobuf不需要存储额外的信息,相比json节省较多空间
http://www.lryc.cn/news/165158.html

相关文章:

  • 点云从入门到精通技术详解100篇-基于 RGB 图像与点云融合的三维点云分割算法及成像系统
  • JDK8新特性
  • X86_64函数调用汇编程序分(2)
  • 组件传值之ref(解决父传子动态绑定问题)
  • vscode-server
  • ubuntu 20.04安装开发环境总结_安装python
  • 尚硅谷_宋红康_IntelliJ IDEA 常用快捷键一览表
  • Java设计模式之建造者模式详解(Builder Pattern)
  • TCP的滑动窗口与拥塞控制
  • MySQL更新语句执行过程
  • Matlab图像处理-彩色图像基础
  • MATLAB算法实战应用案例精讲-【数模应用】数据中台
  • el-form动态检验无法生效问题(已解决)
  • 【python】代码学习过程问题总结
  • Qt应用开发(基础篇)——菜单 QMenu
  • MySQL-DDL语句
  • 总结987
  • 【服务器 | 测试】如何在centos 7上面安装jmeter
  • 20.04部署cartographer
  • djangoMTV初探
  • Minecraft--基于云服务器搭建自己的服务器--简易搭建
  • 【数据结构与算法】十大经典排序算法
  • Android 12.0 SystemUI下拉状态栏定制化之隐藏下拉通知栏布局功能实现(一)
  • 665. 非递减数列-先改后验法
  • 调教 文心一言 生成 AI绘画 提示词(Midjourney)
  • 半导体制造工艺(一)光刻
  • 【海思SS626 | 开发环境】VMware17安装Ubuntu 18.04.6
  • Vue知识系列(3)每天10个小知识点
  • Java基础入门·多线程·线程池ThreadPool篇
  • Trinitycore学习之在vscode查看远端服务器上源码配置