Grpc java中是否有流量控制的自动版本?
我的服务器可以处理10000qps,但当它达到11000qps时,它会过载。这最终会导致内存不足 我想知道GRPCJava是如何处理服务器过载的。我搜索了很长时间,没有找到可配置的版本(参数如飞行消息中的最大值) 中只有手动版本Grpc java中是否有流量控制的自动版本?,java,grpc,grpc-java,flow-control,backpressure,Java,Grpc,Grpc Java,Flow Control,Backpressure,我的服务器可以处理10000qps,但当它达到11000qps时,它会过载。这最终会导致内存不足 我想知道GRPCJava是如何处理服务器过载的。我搜索了很长时间,没有找到可配置的版本(参数如飞行消息中的最大值) 中只有手动版本 你能给我一些建议吗?提前感谢。查看maxConcurrentCallsPerConnection[1]。您需要明确使用NettyServerBuilder。但不管怎样,你最有可能在引擎盖下使用它。(如果您不控制客户端(数量),这可能不够) 你也可以看看。它很可能会解决您
你能给我一些建议吗?提前感谢。查看maxConcurrentCallsPerConnection[1]。您需要明确使用NettyServerBuilder。但不管怎样,你最有可能在引擎盖下使用它。(如果您不控制客户端(数量),这可能不够) 你也可以看看。它很可能会解决您的并发问题
[1] 另一个选项是grpc反应流:
它将提供更好的背压和流量控制。谢谢,
maxConcurrentCallsPerConnection
在一元呼叫中工作良好。顺便说一句,为什么http2连接流控制窗口不能作为默认选项使用?流控制不适用于一元调用,因为grpc库每h2流只发送一条消息。使用maxConcurrentCallsPerConnection并缓慢响应是避免服务器过载的一元调用的正确解决方案。我强烈推荐Netflix并发限制。应用它很容易,而且在使系统响应方面效果很好(通过丢弃多余的请求)。