From 7b43fa7343057d26c1af27e024fc007a1dc3e799 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E6=99=93=E4=B8=9C?= <763795151@qq.com> Date: Tue, 2 Nov 2021 20:27:24 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 ++ .../console/controller/ConfigController.java | 18 ++++++++++- .../kafka/console/service/ConfigService.java | 16 ++++++++++ .../service/impl/ConfigServiceImpl.java | 32 +++++++++++++++++++ .../scala/kafka/console/ConfigConsole.scala | 6 +++- 5 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/xuxd/kafka/console/service/ConfigService.java create mode 100644 src/main/java/com/xuxd/kafka/console/service/impl/ConfigServiceImpl.java diff --git a/README.md b/README.md index 0d68727..3ec98c8 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ # kafka可视化管理平台 +一款轻量级的kafka可视化管理平台,安装配置快捷、简单易用。 +为了开发的省事,没有多语言支持,只支持中文展示。 +用过rocketmq-console吧,对,前端展示风格跟那个有点类似。 ## 功能支持 * 集群信息 * Topic管理 diff --git a/src/main/java/com/xuxd/kafka/console/controller/ConfigController.java b/src/main/java/com/xuxd/kafka/console/controller/ConfigController.java index 8f5b6e9..863c4bd 100644 --- a/src/main/java/com/xuxd/kafka/console/controller/ConfigController.java +++ b/src/main/java/com/xuxd/kafka/console/controller/ConfigController.java @@ -2,8 +2,10 @@ package com.xuxd.kafka.console.controller; import com.xuxd.kafka.console.beans.ResponseData; import com.xuxd.kafka.console.config.KafkaConfig; +import com.xuxd.kafka.console.service.ConfigService; import com.xuxd.kafka.console.utils.ConvertUtil; import java.util.Map; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -19,15 +21,29 @@ import org.springframework.web.bind.annotation.RestController; public class ConfigController { private final KafkaConfig config; + private final Map configMap; - public ConfigController(KafkaConfig config) { + private final ConfigService configService; + + public ConfigController(KafkaConfig config, ConfigService configService) { this.config = config; this.configMap = ConvertUtil.toMap(config); + this.configService = configService; } @GetMapping public Object getConfig() { return ResponseData.create().data(configMap).success(); } + + @GetMapping("/topic") + public Object getTopicConfig(String topic) { + return configService.getTopicConfig(topic); + } + + @GetMapping("/broker") + public Object getTopicConfig() { + return configService.getBrokerConfig(); + } } diff --git a/src/main/java/com/xuxd/kafka/console/service/ConfigService.java b/src/main/java/com/xuxd/kafka/console/service/ConfigService.java new file mode 100644 index 0000000..2350c4f --- /dev/null +++ b/src/main/java/com/xuxd/kafka/console/service/ConfigService.java @@ -0,0 +1,16 @@ +package com.xuxd.kafka.console.service; + +import com.xuxd.kafka.console.beans.ResponseData; + +/** + * kafka-console-ui. + * + * @author xuxd + * @date 2021-11-02 19:57:43 + **/ +public interface ConfigService { + + ResponseData getTopicConfig(String topic); + + ResponseData getBrokerConfig(); +} diff --git a/src/main/java/com/xuxd/kafka/console/service/impl/ConfigServiceImpl.java b/src/main/java/com/xuxd/kafka/console/service/impl/ConfigServiceImpl.java new file mode 100644 index 0000000..637fc81 --- /dev/null +++ b/src/main/java/com/xuxd/kafka/console/service/impl/ConfigServiceImpl.java @@ -0,0 +1,32 @@ +package com.xuxd.kafka.console.service.impl; + +import com.xuxd.kafka.console.beans.ResponseData; +import com.xuxd.kafka.console.service.ConfigService; +import java.util.List; +import kafka.console.ConfigConsole; +import org.apache.kafka.clients.admin.ConfigEntry; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * kafka-console-ui. + * + * @author xuxd + * @date 2021-11-02 19:57:57 + **/ +@Service +public class ConfigServiceImpl implements ConfigService { + + @Autowired + private ConfigConsole configConsole; + + @Override public ResponseData getTopicConfig(String topic) { + List configEntries = configConsole.getTopicConfig(topic); + return ResponseData.create().success(); + } + + @Override public ResponseData getBrokerConfig() { + List configEntries = configConsole.getBrokerConfig(); + return ResponseData.create().success(); + } +} diff --git a/src/main/scala/kafka/console/ConfigConsole.scala b/src/main/scala/kafka/console/ConfigConsole.scala index 129df67..deedee8 100644 --- a/src/main/scala/kafka/console/ConfigConsole.scala +++ b/src/main/scala/kafka/console/ConfigConsole.scala @@ -28,6 +28,10 @@ class ConfigConsole(config: KafkaConfig) extends KafkaConsole(config: KafkaConfi getConfig(ConfigType.Topic, topic) } + def getBrokerConfig() : List[ConfigEntry] = { + getConfig(ConfigType.Broker, "0") + } + def getConfig(entityType: String, entityName: String): List[ConfigEntry] = { getResourceConfig(entityType, entityName, true, false).asJava } @@ -49,7 +53,7 @@ class ConfigConsole(config: KafkaConfig) extends KafkaConsole(config: KafkaConfi (ConfigResource.Type.BROKER, Some(ConfigEntry.ConfigSource.DYNAMIC_DEFAULT_BROKER_CONFIG)) case _ => validateBrokerId() - (ConfigResource.Type.BROKER, Some(ConfigEntry.ConfigSource.DYNAMIC_BROKER_CONFIG)) + (ConfigResource.Type.BROKER, Some(ConfigEntry.ConfigSource.STATIC_BROKER_CONFIG)) } case BrokerLoggerConfigType => if (!entityName.isEmpty)