Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support reentrant pop orderly #6690

Closed
3 tasks done
xdkxlk opened this issue May 4, 2023 · 0 comments
Closed
3 tasks done

Support reentrant pop orderly #6690

xdkxlk opened this issue May 4, 2023 · 0 comments

Comments

@xdkxlk
Copy link
Contributor

xdkxlk commented May 4, 2023

Is Your Feature Request Related to a Problem? Please Describe It

For pop orderly, when we pop some messages from a message queue, this queue will be locked during invisible time. During this time period, the message will not be visible to other consumers.
However, in the event of an error such as a network disruption, the broker may mistakenly assume that some messages have been sent to the client when in fact they have not been received. In such cases, the messages can only be re-consumed after the invisible time has elapsed. This will lead to message delay.

Describe the Solution You'd Like

We can introduce a new parameter attemptId in PopMessageRequestHeader.
When the broker detects that the attemptId is same as the previous attemptId, this request can obtain the lock, even during the invisible time.
If a client encounters any network exceptions, it should retry to pop message with the same attemptId.

Describe Alternatives You've Considered

Additional Context

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant