diff --git a/docs/dev_guide/dynamic_config_manager.md b/docs/dev_guide/dynamic_config_manager.md index 9e05839c..c3365138 100644 --- a/docs/dev_guide/dynamic_config_manager.md +++ b/docs/dev_guide/dynamic_config_manager.md @@ -136,7 +136,8 @@ EXPIRED_TOPIC_CONFIG 配置Value: ```json { - "minExpiredDay": 30, #过期时间大于此值才显示 + "minExpiredDay": 30, #过期时间大于此值才显示, + "filterRegex": ".*XXX\\s+", #忽略符合此正则规则的Topic "ignoreClusterIdList": [ # 忽略的集群 50 ] diff --git a/kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/entity/ao/config/expert/TopicExpiredConfig.java b/kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/entity/ao/config/expert/TopicExpiredConfig.java index d68dc2ba..be49cb18 100644 --- a/kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/entity/ao/config/expert/TopicExpiredConfig.java +++ b/kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/entity/ao/config/expert/TopicExpiredConfig.java @@ -10,6 +10,8 @@ import java.util.List; public class TopicExpiredConfig { private Integer minExpiredDay = 30; + private String filterRegex = ""; + private List ignoreClusterIdList = new ArrayList<>(); public Integer getMinExpiredDay() { @@ -28,10 +30,19 @@ public class TopicExpiredConfig { this.ignoreClusterIdList = ignoreClusterIdList; } + public String getFilterRegex() { + return filterRegex; + } + + public void setFilterRegex(String filterRegex) { + this.filterRegex = filterRegex; + } + @Override public String toString() { return "TopicExpiredConfig{" + "minExpiredDay=" + minExpiredDay + + ", filterRegex='" + filterRegex + '\'' + ", ignoreClusterIdList=" + ignoreClusterIdList + '}'; } diff --git a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/ExpertServiceImpl.java b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/ExpertServiceImpl.java index d0b34e3d..94f00d2c 100644 --- a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/ExpertServiceImpl.java +++ b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/ExpertServiceImpl.java @@ -22,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; +import java.util.regex.Pattern; /** * @author zengqiao @@ -240,9 +241,11 @@ public class ExpertServiceImpl implements ExpertService { return new ArrayList<>(); } + //获取满足条件的过期Topic List filteredExpiredTopicList = new ArrayList<>(); for (TopicExpiredDO elem: expiredTopicList) { - if (config.getIgnoreClusterIdList().contains(elem.getClusterId())) { + //判定是否为忽略Cluster或者判定是否为忽略Topic名,使用正则来过滤理论上不属于过期的Topic + if (config.getIgnoreClusterIdList().contains(elem.getClusterId()) || Pattern.matches(config.getFilterRegex(), elem.getTopicName())) { continue; } filteredExpiredTopicList.add(elem);