Skip to content

Commit dba671f

Browse files
authored
Merge pull request #586 from GraceWalk/dev
Dev
2 parents 25b8281 + 80d1693 commit dba671f

File tree

11 files changed

+4707
-4682
lines changed

11 files changed

+4707
-4682
lines changed
Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
21
![Logo](https://user-images.githubusercontent.com/71620349/185368586-aed82d30-1534-453d-86ff-ecfa9d0f35bd.png)
32

4-
53
# `Know Streaming` 源码编译打包手册
64

75
## 1、环境信息
@@ -11,7 +9,7 @@
119
`windows7+``Linux``Mac`
1210

1311
**环境依赖**
14-
12+
1513
- Maven 3.6.3 (后端)
1614
- Node v12.20.0/v14.17.3 (前端)
1715
- Java 8+ (后端)
@@ -25,27 +23,23 @@
2523

2624
具体见下面描述。
2725

28-
29-
3026
### 2.1、前后端合并打包
3127

3228
1. 下载源码;
3329
2. 进入 `KS-KM` 工程目录,执行 `mvn -Prelease-package -Dmaven.test.skip=true clean install -U` 命令;
3430
3. 打包命令执行完成后,会在 `km-dist/target` 目录下面生成一个 `KnowStreaming-*.tar.gz` 的安装包。
3531

36-
37-
### 2.2、前端单独打包
32+
### 2.2、前端单独打包
3833

3934
1. 下载源码;
40-
2. 进入 `KS-KM/km-console` 工程目录;
41-
3. 执行 `npm run build`命令,会在 `KS-KM/km-console` 目录下生成一个名为 `pub` 的前端静态资源包;
42-
35+
2. 跳转到 [前端打包构建文档](https://github.com/didi/KnowStreaming/blob/master/km-console/README.md) 按步骤进行。打包成功后,会在 `km-rest/src/main/resources` 目录下生成名为 `templates` 的前端静态资源包;
36+
3. 如果上一步过程中报错,请查看 [FAQ](https://github.com/didi/KnowStreaming/blob/master/docs/user_guide/faq.md) 第 8.10 条;
4337

44-
45-
### 2.3、后端单独打包
38+
### 2.3、后端单独打包
4639

4740
1. 下载源码;
4841
2. 修改顶层 `pom.xml` ,去掉其中的 `km-console` 模块,如下所示;
42+
4943
```xml
5044
<modules>
5145
<!-- <module>km-console</module>-->
@@ -62,10 +56,7 @@
6256
<module>km-rest</module>
6357
<module>km-dist</module>
6458
</modules>
65-
```
66-
3. 执行 `mvn -U clean package -Dmaven.test.skip=true`命令;
67-
4. 执行完成之后会在 `KS-KM/km-rest/target` 目录下面生成一个 `ks-km.jar` 即为KS的后端部署的Jar包,也可以执行 `mvn -Prelease-package -Dmaven.test.skip=true clean install -U` 生成的tar包也仅有后端服务的功能;
68-
69-
70-
59+
```
7160

61+
3. 执行 `mvn -U clean package -Dmaven.test.skip=true`命令;
62+
4. 执行完成之后会在 `KS-KM/km-rest/target` 目录下面生成一个 `ks-km.jar` 即为 KS 的后端部署的 Jar 包,也可以执行 `mvn -Prelease-package -Dmaven.test.skip=true clean install -U` 生成的 tar 包也仅有后端服务的功能;

docs/user_guide/faq.md

Lines changed: 50 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
2-
# FAQ
1+
# FAQ
32

43
## 8.1、支持哪些 Kafka 版本?
54

@@ -110,20 +109,60 @@ SECURITY.TRICK_USERS
110109

111110
但是还有一点需要注意,绕过的用户仅能调用他有权限的接口,比如一个普通用户,那么他就只能调用普通的接口,不能去调用运维人员的接口。
112111

113-
## 8.8、Specified key was too long; max key length is 767 bytes
112+
## 8.8、Specified key was too long; max key length is 767 bytes
114113

115-
**原因:**不同版本的InoDB引擎,参数‘innodb_large_prefix’默认值不同,即在5.6默认值为OFF,5.7默认值为ON
114+
**原因:** 不同版本的 InoDB 引擎,参数‘innodb_large_prefix’默认值不同,即在 5.6 默认值为 OFF,5.7 默认值为 ON
116115

117-
对于引擎为InnoDB,innodb_large_prefix=OFF,且行格式为Antelope即支持REDUNDANT或COMPACT时,索引键前缀长度最大为 767 字节。innodb_large_prefix=ON,且行格式为Barracuda即支持DYNAMIC或COMPRESSED时,索引键前缀长度最大为3072字节
116+
对于引擎为 InnoDB,innodb_large_prefix=OFF,且行格式为 Antelope 即支持 REDUNDANT 或 COMPACT 时,索引键前缀长度最大为 767 字节。innodb_large_prefix=ON,且行格式为 Barracuda 即支持 DYNAMIC 或 COMPRESSED 时,索引键前缀长度最大为 3072 字节
118117

119118
**解决方案:**
120119

121-
- 减少varchar字符大小低于767/4=191。
122-
- 将字符集改为latin1(一个字符=一个字节)。
123-
- 开启‘innodb_large_prefix’,修改默认行格式‘innodb_file_format’为Barracuda,并设置row_format=dynamic。
120+
- 减少 varchar 字符大小低于 767/4=191。
121+
- 将字符集改为 latin1(一个字符=一个字节)。
122+
- 开启‘innodb_large_prefix’,修改默认行格式‘innodb_file_format’为 Barracuda,并设置 row_format=dynamic。
123+
124+
## 8.9、出现 ESIndexNotFoundEXception 报错
125+
126+
**原因 :**没有创建 ES 索引模版
127+
128+
**解决方案:**执行 init_es_template.sh 脚本,创建 ES 索引模版即可。
129+
130+
## 8.10、km-console 打包构建失败
131+
132+
首先,**请确保您正在使用最新版本**,版本列表见 [Tags](https://github.com/didi/KnowStreaming/tags)。如果不是最新版本,请升级后再尝试有无问题。
133+
134+
常见的原因是由于工程依赖没有正常安装,导致在打包过程中缺少依赖,造成打包失败。您可以检查是否有以下文件夹,且文件夹内是否有内容
135+
136+
```
137+
KnowStreaming/km-console/node_modules
138+
KnowStreaming/km-console/packages/layout-clusters-fe/node_modules
139+
KnowStreaming/km-console/packages/config-manager-fe/node_modules
140+
```
141+
142+
如果发现没有对应的 `node_modules` 目录或着目录内容为空,说明依赖没有安装成功。请按以下步骤操作,
143+
144+
1. 手动删除上述三个文件夹(如果有)
145+
146+
2. 如果之前是通过 `mvn install` 打包 `km-console`,请到项目根目录(KnowStreaming)下重新输入该指令进行打包。观察打包过程有无报错。如有报错,请见步骤 4。
147+
148+
3. 如果是通过本地独立构建前端工程的方式(指直接执行 `npm run build`),请进入 `KnowStreaming/km-console` 目录,执行下述步骤(注意:执行时请确保您在使用 `node v12` 版本)
149+
150+
a. 执行 `npm run i`。如有报错,请见步骤 4。
151+
152+
b. 执行 `npm run build`。如有报错,请见步骤 4。
153+
154+
4. 麻烦联系我们协助解决。推荐提供以下信息,方面我们快速定位问题,示例如下。
155+
156+
```
157+
操作系统: Mac
158+
命令行终端:bash
159+
Node 版本: v12.22.12
160+
复现步骤: 1. -> 2.
161+
错误截图:
162+
```
124163

125-
## 8.9、出现ESIndexNotFoundEXception报错
164+
## 8.11、在 `km-console` 目录下执行 `npm run start` 时看不到应用构建和热加载过程?如何启动单个应用?
126165

127-
**原因 :**没有创建ES索引模版
166+
需要到具体的应用中执行 `npm run start`,例如 `cd packages/layout-clusters-fe` 后,执行 `npm run start`
128167

129-
**解决方案:**执行init_es_template.sh脚本,创建ES索引模版即可。
168+
应用启动后需要到基座应用中查看(需要启动基座应用,即 layout-clusters-fe)。

km-console/README.md

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
## 前提
22

3-
正常情况下,您应该通过 [本地源码启动手册](https://github.com/didi/KnowStreaming/blob/master/docs/dev_guide/%E6%9C%AC%E5%9C%B0%E6%BA%90%E7%A0%81%E5%90%AF%E5%8A%A8%E6%89%8B%E5%86%8C.md) 来打包工程。如果您有需要在本地独立启动前端服务,请参考以下手册。
3+
通常情况下,您可以通过 [本地源码启动手册](https://github.com/didi/KnowStreaming/blob/master/docs/dev_guide/%E6%9C%AC%E5%9C%B0%E6%BA%90%E7%A0%81%E5%90%AF%E5%8A%A8%E6%89%8B%E5%86%8C.md) 来打包工程。如果您需要在本地独立启动或打包前端服务,请参考以下手册。
44

5-
在进行以下的步骤之前,首先确保您已经安装了 `node`。如已安装,可以通过在终端执行 `node -v` 来获取到 node 版本,项目推荐使用 `node v12` 版本运行。
5+
在进行以下的步骤之前,首先确保您已经安装了 `node`。如已安装,可以通过在终端执行 `node -v` 来获取到 node 版本,项目推荐使用 `node v12` 版本运行(例如 `node v12.22.12`
66

77
另外,`windows` 用户请在 `git bash` 下运行下面的命令。
88

9-
## 一、安装项目依赖(必须)
9+
## 一、进入 km-console 目录
10+
11+
在终端执行以下步骤时,需要先进入 `KnowStreaming/km-console` 目录。
12+
13+
## 二、安装项目依赖(必须)
1014

1115
1. 安装 lerna(可选,安装后可以直接通过 lerna 的全局指令管理项目,如果不了解 lerna 可以不安装)
1216

@@ -20,9 +24,9 @@ npm install -g lerna
2024
npm run i
2125
```
2226

23-
我们默认保留了 `package-lock.json` 文件,以防止可能的依赖包自动升级导致的问题。依赖默认会通过 `https://registry.npmjs.org` 服务下载,如果您无法连通该服务器,请删除当前目录及 `packages/*` 子目录下的 `package-lock.json` 后,在当前目录下使用 `node v12` 版本执行命令 `npm run i`
27+
我们默认保留了 `package-lock.json` 文件,以防止可能的依赖包自动升级导致的问题。依赖默认会通过 taobao 镜像 `https://registry.npmmirror.com/` 服务下载
2428

25-
## 、启动项目
29+
## 、启动项目(可选,打包构建请直接看步骤三)
2630

2731
```
2832
npm run start
@@ -37,11 +41,10 @@ npm run start
3741

3842
如果启动失败,可以参见另外一种本地启动方式 [本地源码启动手册](https://github.com/didi/KnowStreaming/blob/master/docs/dev_guide/%E6%9C%AC%E5%9C%B0%E6%BA%90%E7%A0%81%E5%90%AF%E5%8A%A8%E6%89%8B%E5%86%8C.md)
3943

40-
## 、构建项目
44+
## 、构建项目
4145

4246
```
4347
npm run build
44-
4548
```
4649

4750
项目构建成功后,会存放到 km-rest/src/main/resources/tamplates 目录下。
@@ -53,8 +56,10 @@ npm run build
5356
- config-manager-fe: 子应用 - 系统管理
5457
- ...
5558

56-
## 常见问题
59+
## QA
5760

5861
Q: 在 `km-console` 目录下执行 `npm run start` 时看不到应用构建和热加载过程?如何启动单个应用?
5962

6063
A: 需要到具体的应用中执行 `npm run start`,例如 `cd packages/layout-clusters-fe` 后,执行 `npm run start`
64+
65+
如遇到其它问题,请见 [faq](https://github.com/didi/KnowStreaming/blob/master/docs/user_guide/faq.md)

0 commit comments

Comments
 (0)