2017-09-19 2 views
0

私は、サーバーをホストしているgRPC Javaサービスを持っているとしましょう。gRPC - 同じサーバーにチャネルを作る

クライアントは、このサービスを呼び出すために望んでいるときに、彼らが使用する:

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

問題ありません。

今、同じJVMからサービスを呼びたい場合はどうすればよいですか?これも可能ですか?または、これは完全に無効なのでしょうか?

+0

可能ですが、正常に動作します。 InProcessServerとInProcessChanellに興味があるかもしれません。 https://github.com/grpc/grpc-java/blob/master/testing/src/main/java/io/grpc/testing/GrpcServerRule.java –

答えて

1

平文ManagedChannelBuilderを自由に使用して、同じJVMに接続できます。それは通常のように動作します。

頻繁に発生する可能性があり、同じClassLoader内にあるため(ケースではサーブレット間で動作しないように)、ケースを最適化する場合は、in-process transportを使用できます。インプロセストランスポートは比較的オーバーヘッドが少なく、Protobufsのシリアライズ/デシリアライズを避けることさえできます。

関連する問題