动态

详情 返回 返回

Python之RPC開發講解第14篇:gRPC,Protocol Buffers - 动态 详情


🚀🚀🚀本篇主要內容

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 头像 zero_dev 头像 hashdata 头像 ccVue 头像 DingyLand 头像 it1042290135 头像 nzbin 头像 junxiudetuoba 头像 apacheiotdb 头像 quanzhikeji 头像 danjuanfe 头像 alisecued 头像
点赞 26 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.