コンテンツへスキップ
uencoder

Protobuf Stream

Protobufストリーミングは、長さプレフィックス付きのProtobufメッセージを複数連結する方式で、ストリーム転送とメッセージ単位の解析を可能にする。

目的

TCPやgRPCのストリーム上で複数のProtobufメッセージを転送する際、varint長プレフィックスで各メッセージの境界を区切る。

メカニズム

各メッセージは、varint長プレフィックスとProtobufバイト列としてエンコードされる。受信側はvarint長を読み、そのバイト数だけ読み取って1メッセージを解析し、これを繰り返す。gRPCのフレーム形式もこの仕組みである。

ユースケース

  • gRPCストリーミングRPC
  • KafkaでのProtobufメッセージ
  • ログストリーム転送

関連ツール

References