Каково максимальное количество байтов, которое может быть указано в файле grpc.MaxCallSendMsgSize?

# #go #grpc #grpc-go

Вопрос:

Проблема:

Я получаю эту ошибку при получении сообщения в grpc:

 grpc: received message larger than max (11509754 vs. 4194304)  

Что я пытался:

Я дал возможность увеличить размер отправляемого сообщения, но оно по-прежнему выдавало ту же ошибку, что означает, что эта настройка максимального размера не работала:

 maxSizeOption := grpc.MaxCallSendMsgSize(50 * 1024 * 1024) if _, err := grpcClient.Foo(request, maxSizeOption); err != nil {  return err }  

Комментарии:

Я не понимаю, почему в сообщении об ошибке отображается 4194304(=4 МБ). Существует ли максимальное количество байтов, которое можно задать для grpc.MaxCallSendMsgSize?

Чтобы добавить, когда я передал 10 МБ в MaxCallSendMsgSize, я получил ошибку:

 trying to send message larger than max (11509754 vs. 10485760)  

Этого следовало ожидать.

Дополнение:

Когда я передал 10 МБ в MaxCallSendMsgSize и MaxCallRecvMsgSize, я получил ту же ошибку:

 size := 50* 1024 * 1024 maxSendSizeOption := grpc.MaxCallSendMsgSize(size) maxRecvSizeOption := grpc.MaxCallRecvMsgSize(size) if _, err := grpcClient.Foo(request,maxSendSizeOption,maxRecvSizeOption); err != nil {  return err }  

ошибка:

 grpc: received message larger than max (11509754 vs. 4194304)  

Комментарии:

1. Первая ошибка связана с получением, но вы устанавливаете максимальный размер отправки.

2. Я обновил свой пост. Когда я передал 10 МБ в MaxCallSendMsgSize и MaxCallRecvMsgSize, я получил ту же ошибку.

3. Вы должны настроить эти параметры с обеих сторон, клиент и сервер.

4. Thanks JimB and Зелёный! Я тоже установил эти параметры на сервере, и это работает.

Ответ №1:

Я тоже установил эти параметры на сервере, и это сработало. Thanks JimB and Зелёный!

 // server side size := 1024 * 1024 * 50 server := grpc.NewServer(  grpc.MaxSendMsgSize(size),  grpc.MaxRecvMsgSize(size), )