兼容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){
|
if(bean instanceof DefaultRocketMQListenerContainer){
|
||||||
|
|
||||||
DefaultRocketMQListenerContainer container = (DefaultRocketMQListenerContainer) bean;
|
DefaultRocketMQListenerContainer container = (DefaultRocketMQListenerContainer) bean;
|
||||||
|
// 修改 ConsumerGroup(增加前缀,例如 dev_原始Group)
|
||||||
|
|
||||||
if(rocketEnhanceProperties.isEnabledIsolation() && StringUtils.hasText(rocketEnhanceProperties.getEnvironment())){
|
if(rocketEnhanceProperties.isEnabledIsolation() && StringUtils.hasText(rocketEnhanceProperties.getEnvironment())){
|
||||||
container.setTopic(String.join("_", container.getTopic(),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 container;
|
||||||
}
|
}
|
||||||
return bean;
|
return bean;
|
||||||
|
|||||||
@@ -21,4 +21,9 @@ public class RocketEnhanceProperties {
|
|||||||
* 当前环境,test、dev 或者 hainan beijing hebei
|
* 当前环境,test、dev 或者 hainan beijing hebei
|
||||||
*/
|
*/
|
||||||
private String environment;
|
private String environment;
|
||||||
|
|
||||||
|
private String consumerGroupPrefix;
|
||||||
|
|
||||||
|
private String topicPrefix;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,10 +47,16 @@ public class RocketMQEnhanceTemplate {
|
|||||||
* @param topic 原始topic
|
* @param topic 原始topic
|
||||||
*/
|
*/
|
||||||
private String reBuildTopic(String topic) {
|
private String reBuildTopic(String topic) {
|
||||||
|
String result =topic;
|
||||||
if(rocketEnhanceProperties.isEnabledIsolation() && StringUtils.hasText(rocketEnhanceProperties.getEnvironment())){
|
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