You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We recently encountered a case of consumption delay:
When the production traffic is low and discontinuous, the broker's SUCCESS response to client's PullMessage request may be delayed seconds than expected, resulting in messages consumption delay.
The following flowchart may simply show the process of pulling message in broker (based on the codes of PullMessageProcessor, PullRequestHoldService, NotifyMessageArrivingListener). Pull request will be responded immediately if there are ready messages, or it will be held until new messags arriving and a notify from store is received.
Normally, it works fine. But if a new message arrives after getMessage done and before the request is held, and no more messages for a while. In this case, the arrived message can only be read until next timed check (takes up to 5s) or a new message arriving before check.
If this trying analysis makes sense, can it be improved? For example, do a check if necessary after a request is held.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
We recently encountered a case of consumption delay:
When the production traffic is low and discontinuous, the broker's SUCCESS response to client's PullMessage request may be delayed seconds than expected, resulting in messages consumption delay.
The following flowchart may simply show the process of pulling message in broker (based on the codes of PullMessageProcessor, PullRequestHoldService, NotifyMessageArrivingListener). Pull request will be responded immediately if there are ready messages, or it will be held until new messags arriving and a notify from store is received.
Normally, it works fine. But if a new message arrives after getMessage done and before the request is held, and no more messages for a while. In this case, the arrived message can only be read until next timed check (takes up to 5s) or a new message arriving before check.
If this trying analysis makes sense, can it be improved? For example, do a check if necessary after a request is held.
Beta Was this translation helpful? Give feedback.
All reactions