java - Grpc-java中有没有自动版本的流量控制?

标签 java grpc grpc-java flow-control backpressure

我的服务器可以处理 10000qps,但是当它达到 11000qps 时,它就过载了。这最终会导致内存不足。

我想知道 grpc-java 如何处理服务器过载。找了好久,没有找到可配置的版本(max-in-flight-messages等参数)。

grpc-java examples中只有手动版本.

你能给我一些建议吗?提前致谢。

最佳答案

查看 maxConcurrentCallsPerConnection[1]。您需要显式使用 NettyServerBuilder。但无论如何,你最有可能在幕后使用那个。 (如果您不控制客户端(数量),这可能还不够)

您还可以查看https://github.com/Netflix/concurrency-limits 。它很可能会解决您的并发问题。

[1] https://grpc.github.io/grpc-java/javadoc/io/grpc/netty/NettyServerBuilder.html#maxConcurrentCallsPerConnection-int-

关于java - Grpc-java中有没有自动版本的流量控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58835027/

相关文章:

Java SWT : apply key events from List to Text field

java - 与 gRPC 的混淆

microservices - grpc 给出 "INTERNAL: Connection closed with unknown cause"

java - System.setProperty 和 Security.setProperty 的区别

Java动态适配器

Python grpc-tools 在我安装后立即被声明为丢失

go - 如何从 grpc-server 流式传输结果以及如何从 goroutines grpc server-stream 返回结果以将结果传递给 api

java - gRPC-java 服务器在负载下处理请求和发送响应的延迟

java - build().perform() 和 Perform() 之间有什么区别

go - 如何从 Go 客户端获取 gRPC 服务器 IP