如何解决如果客户端在GRPC服务器端流中重新启动,如何继续流?
@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客户端代码类似于上面的代码。这里有服务器端流。如果客户端重新启动,则在启动服务器端流之后,如何继续该流?
解决方法
如果由于任何原因连接中断,您将无法继续进行中的流。如果希望服务器从数据流中的上一个点开始发送数据,则可以让客户端在请求中包含一个令牌,服务器可以将该令牌用作开始位置的指示。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。