码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • .Net 8.0 下的新RPC,IceRPC之接口定义语言 [Slice] VS [Protobuf]


    作者引言

    • 很高兴啊,我们来到了接口定义语言(IDL)篇,RPC之基石,有了它,可以在各种各种语言中实现RPC通讯。

    Slice 和 Protobuf 是什么?

    IceRPC的核心是一个面向字节bytes的RPC框架 : 它可以轻松地发送携带字节的请求requests,并接收携带更多字节的响应responses.

    IceRPC以字节为中心的体系结构和API,正是我们移动字节时所需要的框架。然而,如果想为RPC服务定义一个类型化的网络API,并不特别方便.

    在RPCs的上下文中,使用接口定义语言(IDL)来指定RPCs,是目前非常常见的. 这些
    定义也称为客户端和服务器之间的契约[contract]

    代码生成器,根据这些定义[contract]生成代码,有如下功能:

    • 通过选择的编程语言,提供类型化的API
    • 通过将类型化数据(整数、字符串、structs等)编码/解码encoding/decoding到字节流中,或从字节流中解码,来实现此API,以方便定义友好的结构格式

    使用IDL,完全不必担心如上细节。将数据结构,编码为可移植二进制格式和将其解码为可移植的二进制格式:
    所有这些都由代码生成器,及其支持库来处理.

    IceRPC 支持两个IDL,并完全实现对应序列化格式: Slice 与 Protobuf. 来看看,应该选哪个!

    Slice

    Slice是与IceRPC协同开发的现代IDL和序列化格式. 它充分利用了所有
    IceRPC的特性,并且在代码大小和带宽使用方面都非常紧凑.

    例如,IceRPC支持单向RPCs(One-Wey,发送后不理会),Slice提供单向操作
    映射到这些单向RPCs. 而Protobuf RPC方法总是返回一个响应,不支持使用Protobuf发送单向RPCs.

    可以将Slice视为IceRPC的默认IDL:除非有充分的理由使用Protobuf,否则请使用Slice.

    Protobuf

    Protobuf(Protocol Buffers)是Google创建的一种流行的IDL和序列化格式。这是一个常见的二进制JSON的替代方案,在谷歌内部广泛使用,目前国内也非常流行.

    如果已经熟悉Protobuf,或者您的应用程序与使用或发送的其他应用程序交互
    Protobuf消息,应该将IceRPC与Protobuf一起使用.

    作者结语

    • 从第一行翻译开始,查看各种翻译,比如 百度翻译,有道翻译,加上自已的理解,有点小累啊
    • 翻译的不好,请手下留情,人也要成长的,谢谢
    • 如果对我有点小兴趣,如可加我个人微信哦,大家交个朋友,一起探讨人生。
    • 觉得还不错的话,点个赞哦
      image
  • 相关阅读:
    Multihead Attention - 多头注意力
    刷题第3天(中等题):LeetCode707--设计链表--练习单链表和双链表的增删查操作
    SQL server中字段自增:IDENTITY、序列Sequence
    源码分析Mybatis拦截器(Interceptor)拦截saveBatch()获取不到实体id的原因
    yolo格式转labelme格式并验证
    JAX介绍
    css3对页面打印设置的一些特殊属性,如@page,target-counter等
    【重拾C语言】四、循环程序设计典例整理(最大公因数、阶乘求和、正整数翻译、打印字符方阵、斐波那契数列……)
    Kafka常见问题处理
    YOLOv5算法改进(12)— 如何去更换主干网络(1)(包括代码+添加步骤+网络结构图)
  • 原文地址:https://www.cnblogs.com/xlgwr/p/18090842
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号