兼容jb阿里云top格式都是实例id%Topic,consumer格式GID_consumer统一修改
This commit is contained in:
@@ -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%Topic,consumer格式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;
|
||||
|
||||
@@ -21,4 +21,9 @@ public class RocketEnhanceProperties {
|
||||
* 当前环境,test、dev 或者 hainan beijing hebei
|
||||
*/
|
||||
private String environment;
|
||||
|
||||
private String consumerGroupPrefix;
|
||||
|
||||
private String topicPrefix;
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user