0

.Net 8.0 下的新RPC,IceRPC之接口定义语言 [Slice] VS [Protobuf] - xlgwr

 1 month ago
source link: https://www.cnblogs.com/xlgwr/p/18090842
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
  • 很高兴啊,我们来到了接口定义语言(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

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK