Files
Eugene Ostroukhov 40870a9f26 [samples] Server flow control example (#37591)
Closes #37591

PiperOrigin-RevId: 670722178
2024-09-03 15:14:04 -07:00

29 lines
1.0 KiB
Markdown

gRPC Flow Control Example
=====================
# Overview
Flow control is relevant for streaming RPC calls.
The underlying layer will make the write wait when there is no space to write
the next message. This causes the request stream to go into a not ready state
and the method invocation waits.
# Server flow control
In server case, gRPC will pause the server implementation that is sending the
messages too fast. Server implementation is in
[server_flow_control_server.cc](server_flow_control_server.cc). It will write
a specified number of responses of a specified size as fast as possible.
As client-side buffer is filled, the write operation will block until the buffer
is freed.
A client implementation in [server_flow_control_client.cc](server_flow_control_client.cc)
will delay for 1s before starting a next read to simulate client that does not
have resources for handling the replies.
# Related information
Also see [gRPC Flow Control Users Guide][user guide]
[user guide]: https://grpc.io/docs/guides/flow-control