gRPC(Java):服务器与多服务器服务器的多个实例

问题描述:

因此,gRPC api在我看来好像在一个应用程序中拥有多个服务的预期方式是在io.grpc.Server实例上构建并添加尽可能多的根据需要提供服务。gRPC(Java):服务器与多服务器服务器的多个实例

是否有任何理由(关于健壮性/性能/可用性/错误恢复能力)知道为什么人们希望使用多个io.grpc.Server实例来托管不同的服务?

我特别想对基准测试感兴趣,但也希望链接到文档和或有关该主题的讨论。

通常,所有服务都是单个io.grpc.Server的一部分。

多个io.grpc.Servers根据访问权限分开服务可能是最有用的。例如,如果您需要额外的“特殊”开放端口,例如允许管理员访问额外的防火墙规则或仅限本地主机。或者如果你想要多个Unix域套接字,每个都有自己的用户/组访问权限。

但它也可以简单地使用,如果你想多次听。例如,如果您想要在普通IP端口上侦听,而且在Unix域套接字上侦听,也是有用的。

从客户端角度来看,连接多个服务器意味着创建多个通道,而通道是昂贵的资源。如果相关的服务可以在一个服务器中,那么客户端只需要创建一个通道来调用所有的服务。