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

Reply via email to