syhleo commented on PR #8469: URL: https://github.com/apache/rocketmq/pull/8469#issuecomment-2283513528
> Good idea. I have a question: how will this solution do when we need more than one gray environment? > > Like Git branch, we may have several active branches and each of them runs in its independent gray environment. First of all, thank you very much for your response and for asking the question. This solution also effectively addresses this issue when multiple grayscale environments are required. In project development, it is true that there are multiple active branches or environments. For this, the proposed solution is: 1. different environment processing: in different environments (e.g. dev/test/stage/prod), the environment suffix can be added for the same topic or group. This kind of processing has been widely used. For example, the topic name can be topic-{environment}, such as pt-order-completed-stage, and the group name can be GID-open-service-stage. 2. Multiple branches in the same environment: In the same environment (e.g., test environment), there may also exist multiple branch environments, such as test1/test2/test3. In conjunction with this scenario, a grayscale partitioning approach can be used during grayscale release in a given environment. This approach ensures that messages sent by grayscale producers are accurately consumed by grayscale consumers, while messages from non-grayscale producers are processed by non-grayscale consumers. In this way, it ensures both grayscale validation of MQ message changes, as well as a friendly solution to the switchover interface from grayscale to the normal environment once the grayscale validation is passed. In fact, most enterprises want to perform gray-scale validation of MQ messages in a low-cost and convenient way in an all-link gray-scale publishing scenario. However, when MQ does not support grayscale messages, it involves a change in consumption logic, and developers often need to add a lot of compatibility logic to the code. Nonetheless, these logics can only ensure that the new business does not affect the online, but cannot ensure that the grayscale traffic accurately enters the grayscale consumption client, thus preventing strict grayscale validation. With this solution, these problems can be effectively solved. -- 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 For queries about this service, please contact Infrastructure at: us...@infra.apache.org