我的服务器可以处理10000qps,但是当它达到11000qps时,它过载了。最终将导致内存不足。
我想知道grpc-java如何处理服务器重载。我搜索了很长时间,没有找到可配置的版本(诸如max-in-flight-messages之类的参数)。
grpc-java examples中只有手动版本。
您能给我一些建议吗?预先感谢。
我的服务器可以处理10000qps,但是当它达到11000qps时,它过载了。最终将导致内存不足。
我想知道grpc-java如何处理服务器重载。我搜索了很长时间,没有找到可配置的版本(诸如max-in-flight-messages之类的参数)。
grpc-java examples中只有手动版本。
您能给我一些建议吗?预先感谢。
看看maxConcurrentCallsPerConnection [1]。您需要显式使用NettyServerBuilder。但是无论如何,您最有可能在引擎盖下使用它。 (如果您不控制客户端的数量,可能还不够)
您还可以查看https://github.com/Netflix/concurrency-limits。它很可能会解决您的并发问题。
,另一种选择是grpc反应性流:https://github.com/salesforce/reactive-grpc
它将提供更好的背压和流量控制。