mobaijaavaer opened a new issue, #8370: URL: https://github.com/apache/rocketmq/issues/8370
### Before Creating the Enhancement Request - [X] I have confirmed that this should be classified as an enhancement rather than a bug/feature. ### Summary I hope to provide a scalable strategy and implementation to achieve canary releases under client-rebalance mode using the RMQ client. ### Motivation Currently, most projects use the canary release model to control the impact of version releases. For regular request traffic, precise traffic control can be effectively achieved through various gateway request headers. However, there is no perfect solution in the community for RMQ in this regard. Changes in consumer logic versions cannot utilize canary releases, which is a significant pain point. ### Describe the Solution You'd Like Based on the ideas provided by the community and my understanding of RMQ, I have published an article on implementing canary deployments for RMQ in the community. This design approach has been widely used and validated in our internal projects, confirming that it is reliable and safe. The general design idea is as follows: Provide an extensible algorithm that allows users to define which queues under a specific topic are designated as canary queues and under what conditions the current environment is considered a canary environment. Utilize the RMQ clientId mechanism to append identifiers to distinguish between canary clients and regular clients, such as xxx@canary for canary clients and xxx@default for regular clients. Design a balancing strategy that extends AbstractAllocateMessageQueueStrategy. The core idea is to differentiate between canary and non-canary clients using the clientId identifier from step one during rebalancing, ensuring that canary clients consume from canary queues and non-canary clients consume from non-canary queues. Consumers need to specify the balancing strategy designed in step three. The sender needs to filter out the canary queues based on the algorithm from step one before selecting which queue to send messages to. detail link: [RMQ canary solution](https://blog.csdn.net/qq_35323137/article/details/140133376) ### Describe Alternatives You've Considered / ### Additional Context / -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@rocketmq.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org