diff --git a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/TopicManagerService.java b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/TopicManagerService.java index 5a1fc11b..cfa2920f 100644 --- a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/TopicManagerService.java +++ b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/TopicManagerService.java @@ -22,6 +22,8 @@ import java.util.Map; public interface TopicManagerService { List listAll(); + List getByClusterIdFromCache(Long clusterId); + List getByClusterId(Long clusterId); TopicDO getByTopicName(Long clusterId, String topicName); diff --git a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/TopicManagerServiceImpl.java b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/TopicManagerServiceImpl.java index 6ee9a499..1d761eb8 100644 --- a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/TopicManagerServiceImpl.java +++ b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/TopicManagerServiceImpl.java @@ -95,6 +95,14 @@ public class TopicManagerServiceImpl implements TopicManagerService { return new ArrayList<>(); } + @Override + public List getByClusterIdFromCache(Long clusterId) { + if (clusterId == null) { + return new ArrayList<>(); + } + return topicDao.getByClusterIdFromCache(clusterId); + } + @Override public List getByClusterId(Long clusterId) { if (clusterId == null) { diff --git a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/TopicServiceImpl.java b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/TopicServiceImpl.java index 5dea0561..63191888 100644 --- a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/TopicServiceImpl.java +++ b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/TopicServiceImpl.java @@ -381,7 +381,7 @@ public class TopicServiceImpl implements TopicService { return new ArrayList<>(); } - List topicDOList = topicManagerService.getByClusterId(clusterId); + List topicDOList = topicManagerService.getByClusterIdFromCache(clusterId); if (ValidateUtils.isNull(topicDOList)) { topicDOList = new ArrayList<>(); } diff --git a/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/TopicDao.java b/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/TopicDao.java index 64e089a6..9a4511a5 100644 --- a/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/TopicDao.java +++ b/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/TopicDao.java @@ -15,6 +15,8 @@ public interface TopicDao { TopicDO getByTopicName(Long clusterId, String topicName); + List getByClusterIdFromCache(Long clusterId); + List getByClusterId(Long clusterId); List getByAppId(String appId); diff --git a/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/impl/TopicDaoImpl.java b/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/impl/TopicDaoImpl.java index 58a989c6..fa61734f 100644 --- a/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/impl/TopicDaoImpl.java +++ b/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/impl/TopicDaoImpl.java @@ -62,11 +62,16 @@ public class TopicDaoImpl implements TopicDao { } @Override - public List getByClusterId(Long clusterId) { + public List getByClusterIdFromCache(Long clusterId) { updateTopicCache(); return new ArrayList<>(TOPIC_MAP.getOrDefault(clusterId, Collections.emptyMap()).values()); } + @Override + public List getByClusterId(Long clusterId) { + return sqlSession.selectList("TopicDao.getByClusterId", clusterId); + } + @Override public List getByAppId(String appId) { return sqlSession.selectList("TopicDao.getByAppId", appId);