diff --git a/docs/install_guide/源码编译打包手册.md b/docs/install_guide/源码编译打包手册.md index 708396b6..d6ff6572 100644 --- a/docs/install_guide/源码编译打包手册.md +++ b/docs/install_guide/源码编译打包手册.md @@ -1,7 +1,5 @@ - ![Logo](https://user-images.githubusercontent.com/71620349/185368586-aed82d30-1534-453d-86ff-ecfa9d0f35bd.png) - # `Know Streaming` 源码编译打包手册 ## 1、环境信息 @@ -11,7 +9,7 @@ `windows7+`、`Linux`、`Mac` **环境依赖** - + - Maven 3.6.3 (后端) - Node v12.20.0/v14.17.3 (前端) - Java 8+ (后端) @@ -25,27 +23,23 @@ 具体见下面描述。 - - ### 2.1、前后端合并打包 1. 下载源码; 2. 进入 `KS-KM` 工程目录,执行 `mvn -Prelease-package -Dmaven.test.skip=true clean install -U` 命令; 3. 打包命令执行完成后,会在 `km-dist/target` 目录下面生成一个 `KnowStreaming-*.tar.gz` 的安装包。 - -### 2.2、前端单独打包 +### 2.2、前端单独打包 1. 下载源码; -2. 进入 `KS-KM/km-console` 工程目录; -3. 执行 `npm run build`命令,会在 `KS-KM/km-console` 目录下生成一个名为 `pub` 的前端静态资源包; +2. 跳转到 [前端打包构建文档](https://github.com/didi/KnowStreaming/blob/master/km-console/README.md) 按步骤进行。打包成功后,会在 `km-rest/src/main/resources` 目录下生成名为 `templates` 的前端静态资源包; +3. 如果上一步过程中报错,请查看 [FAQ](https://github.com/didi/KnowStreaming/blob/master/docs/user_guide/faq.md) 第 8.10 条; - - -### 2.3、后端单独打包 +### 2.3、后端单独打包 1. 下载源码; 2. 修改顶层 `pom.xml` ,去掉其中的 `km-console` 模块,如下所示; + ```xml @@ -62,10 +56,7 @@ km-rest km-dist - ``` +``` + 3. 执行 `mvn -U clean package -Dmaven.test.skip=true`命令; -4. 执行完成之后会在 `KS-KM/km-rest/target` 目录下面生成一个 `ks-km.jar` 即为KS的后端部署的Jar包,也可以执行 `mvn -Prelease-package -Dmaven.test.skip=true clean install -U` 生成的tar包也仅有后端服务的功能; - - - - +4. 执行完成之后会在 `KS-KM/km-rest/target` 目录下面生成一个 `ks-km.jar` 即为 KS 的后端部署的 Jar 包,也可以执行 `mvn -Prelease-package -Dmaven.test.skip=true clean install -U` 生成的 tar 包也仅有后端服务的功能; diff --git a/docs/user_guide/faq.md b/docs/user_guide/faq.md index 60620f73..764c58b9 100644 --- a/docs/user_guide/faq.md +++ b/docs/user_guide/faq.md @@ -1,5 +1,4 @@ - -# FAQ +# FAQ ## 8.1、支持哪些 Kafka 版本? @@ -110,20 +109,60 @@ SECURITY.TRICK_USERS 但是还有一点需要注意,绕过的用户仅能调用他有权限的接口,比如一个普通用户,那么他就只能调用普通的接口,不能去调用运维人员的接口。 -## 8.8、Specified key was too long; max key length is 767 bytes +## 8.8、Specified key was too long; max key length is 767 bytes -**原因:**不同版本的InoDB引擎,参数‘innodb_large_prefix’默认值不同,即在5.6默认值为OFF,5.7默认值为ON。 +**原因:** 不同版本的 InoDB 引擎,参数‘innodb_large_prefix’默认值不同,即在 5.6 默认值为 OFF,5.7 默认值为 ON。 -对于引擎为InnoDB,innodb_large_prefix=OFF,且行格式为Antelope即支持REDUNDANT或COMPACT时,索引键前缀长度最大为 767 字节。innodb_large_prefix=ON,且行格式为Barracuda即支持DYNAMIC或COMPRESSED时,索引键前缀长度最大为3072字节。 +对于引擎为 InnoDB,innodb_large_prefix=OFF,且行格式为 Antelope 即支持 REDUNDANT 或 COMPACT 时,索引键前缀长度最大为 767 字节。innodb_large_prefix=ON,且行格式为 Barracuda 即支持 DYNAMIC 或 COMPRESSED 时,索引键前缀长度最大为 3072 字节。 **解决方案:** -- 减少varchar字符大小低于767/4=191。 -- 将字符集改为latin1(一个字符=一个字节)。 -- 开启‘innodb_large_prefix’,修改默认行格式‘innodb_file_format’为Barracuda,并设置row_format=dynamic。 +- 减少 varchar 字符大小低于 767/4=191。 +- 将字符集改为 latin1(一个字符=一个字节)。 +- 开启‘innodb_large_prefix’,修改默认行格式‘innodb_file_format’为 Barracuda,并设置 row_format=dynamic。 -## 8.9、出现ESIndexNotFoundEXception报错 +## 8.9、出现 ESIndexNotFoundEXception 报错 -**原因 :**没有创建ES索引模版 +**原因 :**没有创建 ES 索引模版 -**解决方案:**执行init_es_template.sh脚本,创建ES索引模版即可。 +**解决方案:**执行 init_es_template.sh 脚本,创建 ES 索引模版即可。 + +## 8.10、km-console 打包构建失败 + +首先,**请确保您正在使用最新版本**,版本列表见 [Tags](https://github.com/didi/KnowStreaming/tags)。如果不是最新版本,请升级后再尝试有无问题。 + +常见的原因是由于工程依赖没有正常安装,导致在打包过程中缺少依赖,造成打包失败。您可以检查是否有以下文件夹,且文件夹内是否有内容 + +``` +KnowStreaming/km-console/node_modules +KnowStreaming/km-console/packages/layout-clusters-fe/node_modules +KnowStreaming/km-console/packages/config-manager-fe/node_modules +``` + +如果发现没有对应的 `node_modules` 目录或着目录内容为空,说明依赖没有安装成功。请按以下步骤操作, + +1. 手动删除上述三个文件夹(如果有) + +2. 如果之前是通过 `mvn install` 打包 `km-console`,请到项目根目录(KnowStreaming)下重新输入该指令进行打包。观察打包过程有无报错。如有报错,请见步骤 4。 + +3. 如果是通过本地独立构建前端工程的方式(指直接执行 `npm run build`),请进入 `KnowStreaming/km-console` 目录,执行下述步骤(注意:执行时请确保您在使用 `node v12` 版本) + + a. 执行 `npm run i`。如有报错,请见步骤 4。 + + b. 执行 `npm run build`。如有报错,请见步骤 4。 + +4. 麻烦联系我们协助解决。推荐提供以下信息,方面我们快速定位问题,示例如下。 + +``` +操作系统: Mac +命令行终端:bash +Node 版本: v12.22.12 +复现步骤: 1. -> 2. +错误截图: +``` + +## 8.11、在 `km-console` 目录下执行 `npm run start` 时看不到应用构建和热加载过程?如何启动单个应用? + +需要到具体的应用中执行 `npm run start`,例如 `cd packages/layout-clusters-fe` 后,执行 `npm run start`。 + +应用启动后需要到基座应用中查看(需要启动基座应用,即 layout-clusters-fe)。 diff --git a/km-console/README.md b/km-console/README.md index e44b8efa..58910116 100644 --- a/km-console/README.md +++ b/km-console/README.md @@ -1,12 +1,16 @@ ## 前提 -正常情况下,您应该通过 [本地源码启动手册](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) 来打包工程。如果您有需要在本地独立启动前端服务,请参考以下手册。 +通常情况下,您可以通过 [本地源码启动手册](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) 来打包工程。如果您需要在本地独立启动或打包前端服务,请参考以下手册。 -在进行以下的步骤之前,首先确保您已经安装了 `node`。如已安装,可以通过在终端执行 `node -v` 来获取到 node 版本,项目推荐使用 `node v12` 版本运行。 +在进行以下的步骤之前,首先确保您已经安装了 `node`。如已安装,可以通过在终端执行 `node -v` 来获取到 node 版本,项目推荐使用 `node v12` 版本运行(例如 `node v12.22.12`)。 另外,`windows` 用户请在 `git bash` 下运行下面的命令。 -## 一、安装项目依赖(必须) +## 一、进入 km-console 目录 + +在终端执行以下步骤时,需要先进入 `KnowStreaming/km-console` 目录。 + +## 二、安装项目依赖(必须) 1. 安装 lerna(可选,安装后可以直接通过 lerna 的全局指令管理项目,如果不了解 lerna 可以不安装) @@ -20,9 +24,9 @@ npm install -g lerna npm run i ``` -我们默认保留了 `package-lock.json` 文件,以防止可能的依赖包自动升级导致的问题。依赖默认会通过 `https://registry.npmjs.org` 服务下载,如果您无法连通该服务器,请删除当前目录及 `packages/*` 子目录下的 `package-lock.json` 后,在当前目录下使用 `node v12` 版本执行命令 `npm run i`。 +我们默认保留了 `package-lock.json` 文件,以防止可能的依赖包自动升级导致的问题。依赖默认会通过 taobao 镜像 `https://registry.npmmirror.com/` 服务下载。 -## 二、启动项目 +## 三、启动项目(可选,打包构建请直接看步骤三) ``` npm run start @@ -37,11 +41,10 @@ npm run start 如果启动失败,可以参见另外一种本地启动方式 [本地源码启动手册](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) -## 三、构建项目 +## 四、构建项目 ``` npm run build - ``` 项目构建成功后,会存放到 km-rest/src/main/resources/tamplates 目录下。 @@ -53,8 +56,10 @@ npm run build - config-manager-fe: 子应用 - 系统管理 - ... -## 常见问题 +## QA Q: 在 `km-console` 目录下执行 `npm run start` 时看不到应用构建和热加载过程?如何启动单个应用? A: 需要到具体的应用中执行 `npm run start`,例如 `cd packages/layout-clusters-fe` 后,执行 `npm run start`。 + +如遇到其它问题,请见 [faq](https://github.com/didi/KnowStreaming/blob/master/docs/user_guide/faq.md)。 diff --git a/km-console/packages/config-manager-fe/README.md b/km-console/packages/config-manager-fe/README.md index d4cefa15..7b302b46 100644 --- a/km-console/packages/config-manager-fe/README.md +++ b/km-console/packages/config-manager-fe/README.md @@ -6,13 +6,15 @@ npm install ``` +注意,这种方式只会安装当前应用的依赖。如果您不了解,推荐在 km-console 目录下执行 npm run i 安装依赖。 + ### 启动: ``` npm run start ``` -该应用为子应用,启动后需要到基座应用中查看(需要启动基座应用),地址为 http://localhost:8000 +该应用为子应用,启动后需要到基座应用中查看(需要启动基座应用,即 layout-clusters-fe),地址为 http://localhost:8000 ### 构建: diff --git a/km-console/packages/layout-clusters-fe/README.md b/km-console/packages/layout-clusters-fe/README.md index 5d7c96d9..eec62b22 100644 --- a/km-console/packages/layout-clusters-fe/README.md +++ b/km-console/packages/layout-clusters-fe/README.md @@ -6,6 +6,8 @@ npm install ``` +注意,这种方式只会安装当前应用的依赖。如果您不了解,推荐在 km-console 目录下执行 npm run i 安装依赖。 + ### 启动: ```