You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by aa...@apache.org on 2022/09/16 08:38:17 UTC

[rocketmq-clients] branch master updated: WIP: add docs about flow control (#237)

This is an automated email from the ASF dual-hosted git repository.

aaronai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git


The following commit(s) were added to refs/heads/master by this push:
     new 14bd25a  WIP: add docs about flow control (#237)
14bd25a is described below

commit 14bd25a22c71c062433b1587e99f32abe14e9555
Author: Aaron Ai <ya...@gmail.com>
AuthorDate: Fri Sep 16 16:38:12 2022 +0800

    WIP: add docs about flow control (#237)
---
 .../artwork/message_receiving_in_push_consumer.png | Bin 402721 -> 445254 bytes
 docs/workflow.md                                   |  13 +++++++++++--
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/docs/artwork/message_receiving_in_push_consumer.png b/docs/artwork/message_receiving_in_push_consumer.png
index e237b63..8c73316 100644
Binary files a/docs/artwork/message_receiving_in_push_consumer.png and b/docs/artwork/message_receiving_in_push_consumer.png differ
diff --git a/docs/workflow.md b/docs/workflow.md
index 7cfa614..dbe0ba8 100644
--- a/docs/workflow.md
+++ b/docs/workflow.md
@@ -11,7 +11,9 @@ Different from previous clients, the new version adds some preparations during t
 
 Failure of any preparation will result in the failure of client startup.
 
-![Client Startup Process](./artwork/client_startup_process.png)
+<div align="center">
+<img src="./artwork/client_startup_process.png" width="80%">
+</div>
 
 In details, the **server-client telemetry** provides a channel to upload the local settings and to overwrite the client settings.
 
@@ -35,7 +37,7 @@ The workflow to publish a single message of NORMAL type. The message publishing
 <img src="./artwork/message_publishing_in_producer.png" width="70%">
 </div>
 
-The publishing process is as follows:
+The publishing procedure is as follows:
 
 1. Check if topic route is cached before or not.
 2. If topic route is not cached, then try to fetch it from server, otherwise go to step 4.
@@ -66,6 +68,13 @@ For TRANSACTIONAL messages, the publishing will not be retried if failure is enc
 <img src="./artwork/message_receiving_in_push_consumer.png" width="70%">
 </div>
 
+The receiving procedure is as follows:
+
+1. Fetch the latest queue assignment from server.
+2. If flow control occurs during message receiving, consumer will retry after 20 milliseconds, otherwise go to step3.
+3. Cache message and trigger the consumption(Once the lifecycle of message is over, it will removed from cache immmediately).
+4. Check the cache is full, consumer will try to receive message immediately, otherwise retry after 1 seconds.
+
 ### Message Consumption in Push Consumer(Non-FIFO)
 
 <div align="center">