Grpc connection semantics

29 views
Skip to first unread message

ravi....@gmail.com

unread,
Feb 26, 2020, 1:37:55 PM2/26/20
to grpc.io
As mentioned in the grpc documentation, a channel is backed by multiple HTTP/2 requests. I was wondering about the behaviour/details in below situations:
1) Does a channel have something like a failed HTTP/2 call even if the connection(tcp) is fine ?
2) If so, what happens to long running rpcs in such case.
3) Is a async streaming rpc served by a single HTTP/2 request over a single tcp connection ?
4) As mentioned in docs, a channel may retry to fix transient errors in the tcp connection, so for long running rpcs does this have any impact ?

Thanks

yas...@google.com

unread,
Feb 26, 2020, 1:58:38 PM2/26/20
to grpc.io
1) An HTTP/2 stream is what you are looking for. A stream can be terminated with a RST_STREAM frame. Please refer https://http2.github.io/http2-spec/#RST_STREAM
2) The RPC would also be terminated. The application would be able to retry/restart the RPC if necessary.
3) Yes
4) The RPCs are terminated with the status showing the proper error message. 
Reply all
Reply to author
Forward
0 new messages