如果客户端在GRPC服务器端流中重新启动,如何继续流?

时间:2020-10-07 08:06:42

标签: java stream grpc server-side stub

    @Override
    public void response(RequestApp request, Grpc.Stub asyncStub) {

        StreamObserver<Dto> streamObserver = new StreamObserver<Dto>() {
            @Override
            public void onNext(Response response) {
                LOGGER.info("Response is received.");
            }

            @Override
            public void onError(Throwable thrwbl) {
                LOGGER.error("Get error.");
            }

            @Override
            public void onCompleted() {
                LOGGER.info("Stream is completed.");
            }
        };

        asyncStub.method(request, streamObserver);
}

Grpc客户端代码类似于上面的代码。这里有服务器端流。如果客户端重新启动,则在启动服务器端流之后,如何继续该流?

1 个答案:

答案 0 :(得分:0)

如果由于任何原因连接中断,您将无法继续进行中的流。如果希望服务器从数据流中的上一个点开始发送数据,则可以让客户端在请求中包含一个令牌,服务器可以将该令牌用作开始位置的指示。