From 56621e0b8c4feae60829e687a7d6f80a625d4d5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E6=99=93=E4=B8=9C?= <763795151@qq.com> Date: Mon, 30 Jan 2023 21:40:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AE=A2=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=E9=99=90=E6=B5=81=E8=8F=9C=E5=8D=95=E9=A1=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../beans/dto/AlterClientQuotaDTO.java | 23 ++++++++ .../controller/ClientQuotaController.java | 13 +++++ .../console/service/ClientQuotaService.java | 3 + .../service/impl/ClientQuotaServiceImpl.java | 8 +++ .../console/scala/ClientQuotaConsoleTest.java | 8 +-- ui/src/App.vue | 2 + ui/src/router/index.js | 6 ++ ui/src/utils/api.js | 11 ++++ ui/src/views/quota/ClientQuota.vue | 57 +++++++++++++++++++ 9 files changed, 127 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/xuxd/kafka/console/beans/dto/AlterClientQuotaDTO.java create mode 100644 ui/src/views/quota/ClientQuota.vue diff --git a/src/main/java/com/xuxd/kafka/console/beans/dto/AlterClientQuotaDTO.java b/src/main/java/com/xuxd/kafka/console/beans/dto/AlterClientQuotaDTO.java new file mode 100644 index 0000000..07a367d --- /dev/null +++ b/src/main/java/com/xuxd/kafka/console/beans/dto/AlterClientQuotaDTO.java @@ -0,0 +1,23 @@ +package com.xuxd.kafka.console.beans.dto; + +import lombok.Data; + +import java.util.List; + +/** + * @author: xuxd + * @date: 2023/1/10 20:12 + **/ +@Data +public class AlterClientQuotaDTO { + + private List types; + + private List names; + + private String consumerRate; + + private String producerRate; + + private String requestPercentage; +} diff --git a/src/main/java/com/xuxd/kafka/console/controller/ClientQuotaController.java b/src/main/java/com/xuxd/kafka/console/controller/ClientQuotaController.java index a55aef9..144b42a 100644 --- a/src/main/java/com/xuxd/kafka/console/controller/ClientQuotaController.java +++ b/src/main/java/com/xuxd/kafka/console/controller/ClientQuotaController.java @@ -1,7 +1,10 @@ package com.xuxd.kafka.console.controller; +import com.xuxd.kafka.console.beans.ResponseData; +import com.xuxd.kafka.console.beans.dto.AlterClientQuotaDTO; import com.xuxd.kafka.console.beans.dto.QueryClientQuotaDTO; import com.xuxd.kafka.console.service.ClientQuotaService; +import org.apache.commons.collections.CollectionUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -25,4 +28,14 @@ public class ClientQuotaController { public Object getClientQuotaConfigs(@RequestBody QueryClientQuotaDTO request) { return clientQuotaService.getClientQuotaConfigs(request.getTypes(), request.getNames()); } + + @PostMapping + public Object alterClientQuotaConfigs(@RequestBody AlterClientQuotaDTO request) { + if (CollectionUtils.isEmpty(request.getTypes()) + || CollectionUtils.isEmpty(request.getNames()) + || request.getTypes().size() != request.getNames().size()) { + return ResponseData.create().failed("types length and names length is invalid."); + } + return clientQuotaService.alterClientQuotaConfigs(request); + } } diff --git a/src/main/java/com/xuxd/kafka/console/service/ClientQuotaService.java b/src/main/java/com/xuxd/kafka/console/service/ClientQuotaService.java index 253396e..2abd6b8 100644 --- a/src/main/java/com/xuxd/kafka/console/service/ClientQuotaService.java +++ b/src/main/java/com/xuxd/kafka/console/service/ClientQuotaService.java @@ -1,5 +1,6 @@ package com.xuxd.kafka.console.service; +import com.xuxd.kafka.console.beans.dto.AlterClientQuotaDTO; import com.xuxd.kafka.console.beans.vo.ClientQuotaEntityVO; import java.util.List; @@ -10,4 +11,6 @@ import java.util.List; public interface ClientQuotaService { List getClientQuotaConfigs(List types, List names); + + Object alterClientQuotaConfigs(AlterClientQuotaDTO request); } diff --git a/src/main/java/com/xuxd/kafka/console/service/impl/ClientQuotaServiceImpl.java b/src/main/java/com/xuxd/kafka/console/service/impl/ClientQuotaServiceImpl.java index 0b00e68..ae4f51b 100644 --- a/src/main/java/com/xuxd/kafka/console/service/impl/ClientQuotaServiceImpl.java +++ b/src/main/java/com/xuxd/kafka/console/service/impl/ClientQuotaServiceImpl.java @@ -1,5 +1,7 @@ package com.xuxd.kafka.console.service.impl; +import com.xuxd.kafka.console.beans.ResponseData; +import com.xuxd.kafka.console.beans.dto.AlterClientQuotaDTO; import com.xuxd.kafka.console.beans.vo.ClientQuotaEntityVO; import com.xuxd.kafka.console.service.ClientQuotaService; import kafka.console.ClientQuotaConsole; @@ -57,4 +59,10 @@ public class ClientQuotaServiceImpl implements ClientQuotaService { return voList.stream().filter(e -> names.get(1).equals(e.getClient())).collect(Collectors.toList()); } + @Override + public Object alterClientQuotaConfigs(AlterClientQuotaDTO request) { + + return ResponseData.create().failed(); + } + } diff --git a/src/test/java/com/xuxd/kafka/console/scala/ClientQuotaConsoleTest.java b/src/test/java/com/xuxd/kafka/console/scala/ClientQuotaConsoleTest.java index 4c4c80f..414e622 100644 --- a/src/test/java/com/xuxd/kafka/console/scala/ClientQuotaConsoleTest.java +++ b/src/test/java/com/xuxd/kafka/console/scala/ClientQuotaConsoleTest.java @@ -14,7 +14,7 @@ import java.util.Map; public class ClientQuotaConsoleTest { - String bootstrapServer = "127.0.0.1:9092"; + String bootstrapServer = "10.1.18.222:9092"; @Test void testGetClientQuotasConfigs() { @@ -38,8 +38,8 @@ public class ClientQuotaConsoleTest { Map configsToBeAddedMap = new HashMap<>(); configsToBeAddedMap.put(QuotaConfigs.PRODUCER_BYTE_RATE_OVERRIDE_CONFIG, "1024000000"); - console.addQuotaConfigs(Arrays.asList(ClientQuotaEntity.USER), Arrays.asList("user-test"), configsToBeAddedMap); - console.addQuotaConfigs(Arrays.asList(ClientQuotaEntity.USER), Arrays.asList(""), configsToBeAddedMap); - console.deleteQuotaConfigs(Arrays.asList(ClientQuotaEntity.USER), Arrays.asList(""), Arrays.asList(QuotaConfigs.PRODUCER_BYTE_RATE_OVERRIDE_CONFIG)); +// console.addQuotaConfigs(Arrays.asList(ClientQuotaEntity.USER), Arrays.asList("user-test"), configsToBeAddedMap); +// console.addQuotaConfigs(Arrays.asList(ClientQuotaEntity.USER), Arrays.asList(""), configsToBeAddedMap); + console.deleteQuotaConfigs(Arrays.asList(ClientQuotaEntity.CLIENT_ID), Arrays.asList(""), Arrays.asList(QuotaConfigs.CONSUMER_BYTE_RATE_OVERRIDE_CONFIG)); } } diff --git a/ui/src/App.vue b/ui/src/App.vue index a0c25e6..db6fde5 100644 --- a/ui/src/App.vue +++ b/ui/src/App.vue @@ -12,6 +12,8 @@ |消息 |限流 + |Acl |运维 diff --git a/ui/src/router/index.js b/ui/src/router/index.js index 2904198..d14b862 100644 --- a/ui/src/router/index.js +++ b/ui/src/router/index.js @@ -49,6 +49,12 @@ const routes = [ component: () => import(/* webpackChunkName: "cluster" */ "../views/message/Message.vue"), }, + { + path: "/client-quota-page", + name: "ClientQuota", + component: () => + import(/* webpackChunkName: "cluster" */ "../views/quota/ClientQuota.vue"), + }, ]; const router = new VueRouter({ diff --git a/ui/src/utils/api.js b/ui/src/utils/api.js index d86e452..7d54ca1 100644 --- a/ui/src/utils/api.js +++ b/ui/src/utils/api.js @@ -293,3 +293,14 @@ export const KafkaMessageApi = { method: "delete", }, }; + +export const KafkaClientQuotaApi = { + getClientQuotaConfigs: { + url: "/client/quota/list", + method: "post", + }, + alterClientQuotaConfigs: { + url: "/client/quota", + method: "post", + }, +}; \ No newline at end of file diff --git a/ui/src/views/quota/ClientQuota.vue b/ui/src/views/quota/ClientQuota.vue new file mode 100644 index 0000000..d592c8b --- /dev/null +++ b/ui/src/views/quota/ClientQuota.vue @@ -0,0 +1,57 @@ + + + + +