4

假设我有一个托管服务器的 gRPC Java 服务。

因此,当客户想要调用此服务时,他们使用:

ManagedChannel channel = ManagedChannelBuilder
        .forAddress(grpcHost, grpcPort)
        .usePlaintext(true)
        .build();

没问题。

现在,如果我想从同一个 JVM 调用我的服务怎么办?这甚至可能吗?或者这可能是完全无效的?

4

1 回答 1

4

您可以自由地使用 plainManagedChannelBuilder连接到同一个 JVM。它会像平常一样工作。

如果你想优化这种情况,因为它可能经常发生并且在同一个 ClassLoader 中(例如,它在 Servlet 之间不起作用),你可以使用进程内传输。进程内传输的开销相对较低,甚至可以避免对 Protobuf 进行序列化/反序列化。

于 2017-09-20T00:47:23.467 回答