Estoy usando grpc para pasar mensajes y estoy probando un servidor y un cliente simples. Cuando el tamaño de mi mensaje supera el límite, aparece este error.
grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with (StatusCode.INVALID_ARGUMENT, Received message larger than max (7309898 vs. 4194304))>¿Cómo aumento el tamaño del mensaje en el lado del servidor y del cliente?
Cambiar la longitud del message_length para enviar y recibir hará el truco.
channel = grpc.insecure_channel( 'localhost:50051', options=[ ('grpc.max_send_message_length', MAX_MESSAGE_LENGTH), ('grpc.max_receive_message_length', MAX_MESSAGE_LENGTH), ], )Tuve este problema, lo resolví configurando 'grpc.max_send_message_length' y 'grpc.max_receive_message_length' tanto en el cliente como en el servidor:
En el cliente (crédito a @Dumbo por este fragmento de código):
channel = grpc.insecure_channel( 'localhost:50051', options=[ ('grpc.max_send_message_length', MAX_MESSAGE_LENGTH), ('grpc.max_receive_message_length', MAX_MESSAGE_LENGTH), ], )En servidor:
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10), options = [ ('grpc.max_send_message_length', MAX_MESSAGE_LENGTH), ('grpc.max_receive_message_length', MAX_MESSAGE_LENGTH) ])Además de las respuestas existentes, puede encontrar una lista de todas las opciones de par clave-valor en el repositorio de github; consulte a continuación
Del grpc-Glosario
channel_arguments Una lista de pares clave-valor para configurar el objeto de servidor o canal de gRPC Core subyacente. Los argumentos de canal están destinados a usos avanzados y contienen API experimentales (algunos pueden no estar etiquetados como experimentales). La lista completa de argumentos de canal disponibles y la documentación se puede encontrar en la sección "grpc_arg_keys" del archivo de encabezado "grpc_types.h" ( https://github.com/grpc/grpc/blob/v1.43.x/include/grpc/ impl/codegen/grpc_types.h ). Por ejemplo, si desea deshabilitar la reutilización del puerto TCP, puede construir argumentos de canal como: options = (('grpc.so_reuseport', 0),).