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">