码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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节省较多空间
  • 相关阅读:
    基于Netty的WebSocket开发网页版聊天室
    多任务系统(操作系统)
    Qt 编译纯c的C99的项目, error: undefined reference to `f()‘
    DSPE-PEG-DBCO 磷脂-聚乙二醇-二苯并环辛炔供应 X-GF-0295-10k
    【已解决】微信小程序-苹果手机日期解析异常
    【selenium自动化过程中的api抓包】browsermobproxy的安装和配置
    流程自动化(RPA)的好处有哪些?
    期末测试——H5方式练习题
    Three.js Shader 与自定义材质—深入理解与应用
    从零开始实现一个MyBatis加解密插件
  • 原文地址:https://blog.csdn.net/qq_43458555/article/details/132841755
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号