# #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), )