如何全局设置gRPC的max_receive_message_length参数?
如何在grpc-dynamic-gateway中全局设置max_receive_message_length参数
直接给grpc对象赋值max_receive_message_length是无效的,这个参数属于gRPC客户端实例的配置项,需要通过修改gRPC客户端的默认全局配置来实现。
解决方法
修改grpc.Client的default_options属性,将消息长度配置合并到默认选项中,这样所有基于该grpc对象创建的客户端都会自动继承这个设置:
const grpc = require('grpc'); // 全局设置最大接收消息长度为100MB grpc.Client.default_options = Object.assign( {}, grpc.Client.default_options, { 'grpc.max_receive_message_length': 1024 * 1024 * 100 } ); app.use('/', grpcGateway( ['api.proto'], '0.0.0.0:5051', grpc.credentials.createInsecure(), true, process.cwd(), grpc // 传入已配置全局选项的grpc对象 ));
说明
grpc.Client.default_options是gRPC客户端的默认配置集合,所有新创建的客户端实例都会复用这些配置。- 使用
Object.assign合并原有默认选项和新配置,避免覆盖其他默认参数。 - 配置键必须使用
'grpc.max_receive_message_length'这种带前缀的字符串格式,这是gRPC官方规定的配置键命名方式。
内容的提问来源于stack exchange,提问作者Adam B
相关产品推荐
相关产品推荐

