at backyard

Color my life with the chaos of trouble.

gRPCでReceived message larger than maxというエラーメッセージにぶつかった際の対処法

gRPCで処理を書いていて下記のようなエラーメッセージが表示された。

Received message larger than max (<やり取りしようとしたファイルのサイズ> vs. 4194304

これはエラーメッセージの通りで、gRPCではデフォルトでやり取りできるファイルサイズの上限が決まっており( 4194304 )、それを超えるとこのようなエラーメッセージが出る。

このファイルサイズの上限は変更することが可能だが、そもそも大きなファイルサイズをgRPC通信で行うべきではないという記述もある。

developers.google.com

gRPCのファイルサイズの上限を変更する方法(Node.js)

ひとまずの上の話題は脇においておき、やり取りするファイルサイズ上限の変更方法について書き残しておく。

下記のように grpc.max_receive_message_length に上限のバイト数を設定することで変更できる。

// ファイルサイズ上限として設定したいバイト数を設定する
const MAX_RECEIVE_MEASSAGE_LENGTH = 1048576;

const client = new SampleServiceClient(
  '0.0.0.0:11111',
  grpc.credentials.createInsecure(),
  {"grpc.max_receive_message_length":MAX_RECEIVE_MEASSAGE_LENGTH}
);

参照したドキュメントは下記。

grpc.github.io