.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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章