mirror of
https://github.com/php-win-ext/grpc.git
synced 2026-04-28 11:33:19 +02:00
40870a9f26
Closes #37591 PiperOrigin-RevId: 670722178
29 lines
1.0 KiB
Markdown
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 |