gRPC服务器是否为每个传入请求跨越一个单独的线程?
我认为,prometheus有助于监控传入和放大传出流量。但是,如何监视gRPC服务器,如线程(空闲/活动),内存使用(堆),IO,会话等?
最后,关于gRPC Server内部的任何文档都会有所帮助。
答案 0 :(得分:0)
默认情况下,服务器使用缓存的线程池,但我们可以在构建服务器实例时提供另一个。
ServerBuilder<?> builder = ServerBuilder.forPort(port)
.executor(Executors.newFixedThreadPool(10))
// ...
;
来自javadoc“executor”方法:
/ ** *提供自定义执行程序。
这是一个可选项 参数。如果用户在服务器时没有提供执行程序 构建后,构建器将使用静态缓存线程池。
服务器不会获取给定执行程序的所有权。它的 调用者有责任关闭执行程序 期望。
@return这个
@since 1.0.0
公共抽象T执行者(@Nullable Executor executor);
您可以为游泳池和游戏提供一些名称。尝试使用VisualVM监视活动