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

Recommended to use separate queues for QoS 2 publish messages and reliability (rel) messages #575

Open
xinyi-xs opened this issue Jun 3, 2023 · 0 comments

Comments

@xinyi-xs
Copy link
Contributor

xinyi-xs commented Jun 3, 2023

Massive qos 2 message in high rate will be bloked, emqx trace log give me hints that too many qos 2 publish message without rel response will cause error

2023-06-03T08:44:30+00:00 [SOCKET] [email protected]:50498 msg: socket_force_closed, reason: receive_maximum_exceeded
2023-06-03T08:44:30+00:00 [SOCKET] [email protected]:50498 msg: emqx_connection_terminated, reason: {shutdown,receive_maximum_exceeded}

It is generally recommended to use separate queues for QoS 2 publish messages and reliability (rel) messages. This is because QoS 2 publish messages require a higher level of assurance that they are delivered to the broker and subscribers, while reliability messages may have different requirements and characteristics.

Separating the queues allows for more granular control over the message delivery process, which can help ensure that QoS 2 messages are prioritized and handled in a timely manner. It can also help prevent reliability messages from clogging up the queue and potentially delaying the delivery of more important messages.

In addition, using separate queues can make it easier to monitor and troubleshoot message delivery issues, as each queue can be independently monitored and analyzed.

Overall, while it is possible to use a single queue for both QoS 2 publish messages and reliability messages, using separate queues is generally considered to be a best practice for optimizing message delivery and ensuring reliable communication.

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

No branches or pull requests

1 participant