我应该在 gRPC Java 中重用 StreamObservers 吗?
Should I Reuse StreamObservers in gRPC Java?
我是 gRPC 的新手,正在编写一个应用程序,其中 8 个客户端每秒向 gRPC 服务器发送 50k 个异步请求。我知道我应该为每个客户端重用通道,但是 StreamObserver 怎么样?现在,每次客户端发出请求时,我都会创建一个新的 StreamObserver。这会成为瓶颈吗?如有任何回复,我们将不胜感激!
不,不需要为每个请求创建 StreamObserver。只需StreamObserver#onNext
发送请求,发送所有请求后,即可关闭。
StreamObserver<HelloMessage> requestObserver = stub.sayHello(streamObserver);
for (int i = 0; i < 100; i++) {
HelloMessage message = HelloMessage.newBuilder()
.setMessage(i + " Server Stream")
.build();
requestObserver.onNext(message);
}
requestObserver.onCompleted();
我是 gRPC 的新手,正在编写一个应用程序,其中 8 个客户端每秒向 gRPC 服务器发送 50k 个异步请求。我知道我应该为每个客户端重用通道,但是 StreamObserver 怎么样?现在,每次客户端发出请求时,我都会创建一个新的 StreamObserver。这会成为瓶颈吗?如有任何回复,我们将不胜感激!
不,不需要为每个请求创建 StreamObserver。只需StreamObserver#onNext
发送请求,发送所有请求后,即可关闭。
StreamObserver<HelloMessage> requestObserver = stub.sayHello(streamObserver);
for (int i = 0; i < 100; i++) {
HelloMessage message = HelloMessage.newBuilder()
.setMessage(i + " Server Stream")
.build();
requestObserver.onNext(message);
}
requestObserver.onCompleted();