Stories

Detail Return Return

Python之RPC開發講解第14篇:gRPC,Protocol Buffers - Stories Detail


🚀🚀🚀本篇主要內容

gRPC

  • 簡介
  • HTTP/2協議
  • gRPC的接口類型
  • Protocol Buffers
  • 服務器與客户端案例編寫

Protocol Buffers

Protocol Buffers 是一種與語言無關,平台無關的可擴展機制,用於序列化結構化數據。使用Protocol Buffers 可以一次定義結構化的數據,然後可以使用特殊生成的源代碼輕鬆地在各種數據流中使用各種語言編寫和讀取結構化數據。

現在有許多框架等在使用Protocol Buffers。gRPC也是基於Protocol Buffers。 Protocol Buffers 目前有2和3兩個版本號。

在gRPC中推薦使用proto3版本。

1 文檔結構

1) Protocol Buffers版本

Protocol Buffers文檔的第一行非註釋行,為版本申明,不填寫的話默認為版本2。

syntax = "proto3";
或者
syntax = "proto2";
2)Package包

Protocol Buffers 可以聲明package,來防止命名衝突。 Packages是可選的。

package foo.bar;
message Open { ... }

使用的時候,也要加上命名空間,

message Foo {
  ...
  foo.bar.Open open = 1;
  ...
}

**注意:對於Py

2 註釋

Click 文檔

Protocol Buffers 提供以下兩種註釋方式。

// 單行註釋
/* 多行註釋 */

3 數據類型

3.1 基本數據類型

.proto 説明 Python
double float
float float
int32 使用變長編碼,對負數編碼效率低, 如果你的變量可能是負數,可以使用sint32 int
int64 使用變長編碼,對負數編碼效率低,如果你的變量可能是負數,可以使用sint64 int/long
uint32 使用變長編碼 int/long
uint64 使用變長編碼 int/long
sint32 使用變長編碼,帶符號的int類型,對負數編碼比int32高效 int
sint64 使用變長編碼,帶符號的int類型,對負數編碼比int64高效 int/long
fixed32 4字節編碼, 如果變量經常大於2^{28} 的話,會比u
user avatar Dream-new Avatar zero_dev Avatar hashdata Avatar ccVue Avatar DingyLand Avatar it1042290135 Avatar nzbin Avatar junxiudetuoba Avatar apacheiotdb Avatar quanzhikeji Avatar danjuanfe Avatar alisecued Avatar
Favorites 26 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.