diff --git a/README.md b/README.md
index ac9415bec..93a29f844 100644
--- a/README.md
+++ b/README.md
@@ -136,7 +136,7 @@
👍 我们正在组建国内最大,最权威的 **[Kafka中文社区](https://z.didi.cn/5gSF9)**
-在这里你可以结交各大互联网的 Kafka大佬 以及 4000+ Kafka爱好者,一起实现知识共享,实时掌控最新行业资讯,期待 👏 您的加入中~ https://z.didi.cn/5gSF9
+在这里你可以结交各大互联网的 Kafka大佬 以及 6200+ Kafka爱好者,一起实现知识共享,实时掌控最新行业资讯,期待 👏 您的加入中~ https://z.didi.cn/5gSF9
有问必答~! 互动有礼~!
@@ -146,7 +146,7 @@ PS: 提问请尽量把问题一次性描述清楚,并告知环境信息情况
**`2、微信群`**
-微信加群:添加`PenceXie` 、`szzdzhp001`的微信号备注KnowStreaming加群。
+微信加群:添加`PenceXie` 的微信号备注KnowStreaming加群。
加群之前有劳点一下 star,一个小小的 star 是对KnowStreaming作者们努力建设社区的动力。
diff --git "a/docs/dev_guide/MYSQL\345\257\206\347\240\201\345\212\240\345\257\206\346\211\213\345\206\214.md" "b/docs/dev_guide/MYSQL\345\257\206\347\240\201\345\212\240\345\257\206\346\211\213\345\206\214.md"
new file mode 100644
index 000000000..f38b5b006
--- /dev/null
+++ "b/docs/dev_guide/MYSQL\345\257\206\347\240\201\345\212\240\345\257\206\346\211\213\345\206\214.md"
@@ -0,0 +1,115 @@
+## YML文件MYSQL密码加密存储手册
+
+### 1、本地部署加密
+
+**第一步:生成密文**
+
+在本地仓库中找到jasypt-1.9.3.jar,默认在org/jasypt/jasypt/1.9.3中,使用`java -cp`生成密文。
+
+```bash
+java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=mysql密码 password=加密的salt algorithm=PBEWithMD5AndDES
+```
+
+```bash
+## 得到密文
+DYbVDLg5D0WRcJSCUGWjiw==
+```
+
+**第二步:配置jasypt**
+
+在YML文件中配置jasypt,例如
+
+```yaml
+jasypt:
+ encryptor:
+ algorithm: PBEWithMD5AndDES
+ iv-generator-classname: org.jasypt.iv.NoIvGenerator
+```
+
+**第三步:配置密文**
+
+使用密文替换YML文件中的明文密码为ENC(密文),例如[application.yml](https://github.com/didi/KnowStreaming/blob/master/km-rest/src/main/resources/application.yml)中MYSQL密码。
+
+```yaml
+know-streaming:
+ username: root
+ password: ENC(DYbVDLg5D0WRcJSCUGWjiw==)
+```
+
+**第四步:配置加密的salt(选择其一)**
+
+- 配置在YML文件中(不推荐)
+
+```yaml
+jasypt:
+ encryptor:
+ password: salt
+```
+
+- 配置程序启动时的命令行参数
+
+```bash
+java -jar xxx.jar --jasypt.encryptor.password=salt
+```
+
+- 配置程序启动时的环境变量
+
+```bash
+export JASYPT_PASSWORD=salt
+java -jar xxx.jar --jasypt.encryptor.password=${JASYPT_PASSWORD}
+```
+
+## 2、容器部署加密
+
+利用docker swarm 提供的 secret 机制加密存储密码,使用docker swarm来管理密码。
+
+### 2.1、secret加密存储
+
+**第一步:初始化docker swarm**
+
+```bash
+docker swarm init
+```
+
+**第二步:创建密钥**
+
+```bash
+echo "admin2022_" | docker secret create mysql_password -
+
+# 输出密钥
+f964wi4gg946hu78quxsh2ge9
+```
+
+**第三步:使用密钥**
+
+```yaml
+# mysql用户密码
+SERVER_MYSQL_USER: root
+SERVER_MYSQL_PASSWORD: mysql_password
+
+knowstreaming-mysql:
+ # root 用户密码
+ MYSQL_ROOT_PASSWORD: mysql_password
+secrets:
+ mysql_password:
+ external: true
+```
+
+### 2.2、使用密钥文件加密
+
+**第一步:创建密钥**
+
+```bash
+echo "admin2022_" > password
+```
+
+**第二步:使用密钥**
+
+```yaml
+# mysql用户密码
+SERVER_MYSQL_USER: root
+SERVER_MYSQL_PASSWORD: mysql_password
+secrets:
+ mysql_password:
+ file: ./password
+```
diff --git a/km-console/packages/layout-clusters-fe/src/pages/TopicList/ExpandPartition.tsx b/km-console/packages/layout-clusters-fe/src/pages/TopicList/ExpandPartition.tsx
index bf87fb59f..81ec21324 100644
--- a/km-console/packages/layout-clusters-fe/src/pages/TopicList/ExpandPartition.tsx
+++ b/km-console/packages/layout-clusters-fe/src/pages/TopicList/ExpandPartition.tsx
@@ -44,7 +44,7 @@ const ExpandPartition = (props: { record: any; onConfirm: () => void }) => {
setLoading(true);
const metricParams = {
- aggType: 'avg',
+ aggType: 'sum',
endTime: Math.round(endStamp),
metricsNames: ['BytesIn', 'BytesOut'],
startTime: Math.round(startStamp),
diff --git a/km-console/pom.xml b/km-console/pom.xml
index 76201e592..5844e9c14 100644
--- a/km-console/pom.xml
+++ b/km-console/pom.xml
@@ -32,8 +32,6 @@
v12.22.12
6.14.16
- https://npm.taobao.org/mirrors/node/
- https://registry.npm.taobao.org/npm/-/
diff --git a/km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/broker/impl/BrokerConfigServiceImpl.java b/km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/broker/impl/BrokerConfigServiceImpl.java
index aa2bb7eca..1007cb270 100644
--- a/km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/broker/impl/BrokerConfigServiceImpl.java
+++ b/km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/broker/impl/BrokerConfigServiceImpl.java
@@ -37,6 +37,7 @@
import javax.annotation.PostConstruct;
import java.util.*;
+import java.util.stream.Collectors;
import static com.xiaojukeji.know.streaming.km.common.enums.version.VersionEnum.*;
@@ -154,9 +155,11 @@ private Result> getBrokerConfigByZKClient(VersionItemPar
if (propertiesResult.failed()) {
return Result.buildFromIgnoreData(propertiesResult);
}
+ List configKeyList = propertiesResult.getData().keySet().stream().map(Object::toString).collect(Collectors.toList());
+
return Result.buildSuc(KafkaConfigConverter.convert2KafkaBrokerConfigDetailList(
- new ArrayList<>(),
+ configKeyList,
propertiesResult.getData()
));
}
diff --git a/km-persistence/src/main/resources/es/dsl/TopicMetricESDAO/getAggListMetrics b/km-persistence/src/main/resources/es/dsl/TopicMetricESDAO/getAggListMetrics
index b76f2cb99..c93b4d5f1 100644
--- a/km-persistence/src/main/resources/es/dsl/TopicMetricESDAO/getAggListMetrics
+++ b/km-persistence/src/main/resources/es/dsl/TopicMetricESDAO/getAggListMetrics
@@ -17,6 +17,13 @@
}
}
},
+ {
+ "term": {
+ "brokerAgg" : {
+ "value": "1"
+ }
+ }
+ },
{
"range": {
"timestamp": {
diff --git a/km-rest/pom.xml b/km-rest/pom.xml
index 0c69eccc7..954629fc8 100644
--- a/km-rest/pom.xml
+++ b/km-rest/pom.xml
@@ -138,6 +138,12 @@
${springboot.version}
+
+ com.github.ulisesbocchio
+ jasypt-spring-boot-starter
+ 3.0.5
+
+
org.testcontainers