兼容jb阿里云top格式都是实例id%Topic,consumer格式GID_consumer统一修改

This commit is contained in:
hzj
2026-05-11 09:03:18 +08:00
parent c12d0b3107
commit 4cfed98139
3 changed files with 26 additions and 2 deletions

View File

@@ -27,10 +27,23 @@ public class EnvironmentIsolationConfig implements BeanPostProcessor {
if(bean instanceof DefaultRocketMQListenerContainer){
DefaultRocketMQListenerContainer container = (DefaultRocketMQListenerContainer) bean;
// 修改 ConsumerGroup增加前缀例如 dev_原始Group
if(rocketEnhanceProperties.isEnabledIsolation() && StringUtils.hasText(rocketEnhanceProperties.getEnvironment())){
container.setTopic(String.join("_", container.getTopic(),rocketEnhanceProperties.getEnvironment()));
}
//兼容jb阿里云top格式都是实例id%Topicconsumer格式GID_consumer
if(rocketEnhanceProperties.isEnabledIsolation() && StringUtils.hasText(rocketEnhanceProperties.getTopicPrefix())){
container.setTopic(String.join("%",rocketEnhanceProperties.getTopicPrefix(), container.getTopic()));
}
if(rocketEnhanceProperties.isEnabledIsolation() && StringUtils.hasText(rocketEnhanceProperties.getConsumerGroupPrefix())){
String originalGroup = container.getConsumerGroup();
String isolatedGroup = String.join("_", rocketEnhanceProperties.getConsumerGroupPrefix(),originalGroup);
container.setConsumerGroup(isolatedGroup);
}
return container;
}
return bean;

View File

@@ -21,4 +21,9 @@ public class RocketEnhanceProperties {
* 当前环境test、dev 或者 hainan beijing hebei
*/
private String environment;
private String consumerGroupPrefix;
private String topicPrefix;
}

View File

@@ -47,10 +47,16 @@ public class RocketMQEnhanceTemplate {
* @param topic 原始topic
*/
private String reBuildTopic(String topic) {
String result =topic;
if(rocketEnhanceProperties.isEnabledIsolation() && StringUtils.hasText(rocketEnhanceProperties.getEnvironment())){
return topic +"_" + rocketEnhanceProperties.getEnvironment();
result = result +"_" + rocketEnhanceProperties.getEnvironment();
}
return topic;
//兼容jb阿里云top格式都是实例id%Topi
if(rocketEnhanceProperties.isEnabledIsolation() && StringUtils.hasText(rocketEnhanceProperties.getTopicPrefix())){
result = String.join("%",rocketEnhanceProperties.getTopicPrefix(), result);
}
return result;
}
/**