如何将 2.9.x 升级到 2.10.x
# 前言
# 问:升级到 2.10.x 为什么又是不兼容升级?
答 :
在 2.8.x 升级到 2.9.x 是不兼容升级需要大家手动操作是因为 h2 数据库不兼容问题。现在 2.10.x
不兼容的问题是因为
Jpom 在前期由于作者考虑不周全和经验的缺乏留下了部分问题。
经过多次思想斗争后还是决定做一次不兼容升级来把遗留问题(代码屎山)去逐一优化点。
此次升级是为了后面更好的功能扩展和代码维护性
感谢大家的理解和支持🤝 !
# 问:2.10.x 升级有哪些重点变化呢?
答
- 项目的目录结构变化
- 项目日志配置文件独立配置
- 项目的所有配置文件合并到一个文件
- 下架已经计划不维护的功能
# 问:2.10.x 目录结构变化有哪些呢?
# 插件端
2.10.x 之前的目录结构
.
├── agent-x.x.x-release
├────── lib
├────────── agent-x.x.x.jar
├────── log
├────────── info.log
├────────── warn.log
├────────── error
├────────────── systemError.log
├────── data
├────── Agent.bat
├────── Agent.sh
├────── agent.log
├────── extConfig.yml
└────── LICENSE
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2.10.x 的目录结构
.
├── agent-x.x.x-release
├────── lib
├────────── agent-x.x.x.jar
├────── bin
├────────── Agent.bat
├────────── Agent.sh
├────── conf
├────────── application.yml
├────────── logback.xml
├────── logs
├────────── agent.log
├────────── stdout.log
├────── data
└────── LICENSE
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 服务端
2.10.x 之前的目录结构
.
├── server-x.x.x-release
├────── lib
├────────── server-x.x.x.jar
├────── log
├────────── info.log
├────────── warn.log
├────────── error
├────────────── systemError.log
├────── data
├────── db
├────── Server.bat
├────── Server.sh
├────── server.log
├────── extConfig.yml
└────── LICENSE
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2.10.x 的目录结构
.
├── server-x.x.x-release
├────── lib
├────────── server-x.x.x.jar
├────── bin
├────────── Server.bat
├────────── Server.sh
├────────── BlockListener.sh
├────── conf
├────────── application.yml
├────────── logback.xml
├────── logs
├────────── server.log
├────────── stdout.log
├────── data
├────── db
└────── LICENSE
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 问:2.10.x 配置文件合并变化有哪些呢?
新版本我们将 Jpom 相关的配置均归属于到 jpom.*
下,并且读取配置属性均采用 bean 模式属性配置支持驼峰和下划线,让我们的配置更加灵活方便辨识度高
- 【agent】
whitelistDirectory.checkStartsWith
->jpom.whitelist-directory.check-starts-with
- 【agent】
project.stopWaitTime
->jpom.project.statusWaitTime
- 【agent】
project.*
->jpom.project.*
- 【agent】修正拼写错误
log.*back
->jpom.project.log.*backup
- 【agent】
log.*
->jpom.project.log.*
- 【agent】
log.intiReadLine
->jpom.init-read-line
- 【agent】
log.autoBackConsoleCron
不支持配置 none (none 使用jpom.project.log.autoBackupToFile
代替) - 【all】删除
consoleLog.reqXss
、consoleLog.reqResponse
- 【all】
consoleLog.charset
->jpom.system.console-charset
- 【server】
node.uploadFileTimeOut
->jpom.node.uploadFileTimeout
- 【server】
system.nodeHeartSecond
->jpom.node.heartSecond
- 【server】
user.*
->jpom.user.*
- 【server】
jpom.authorize.expired
->jpom.user.tokenExpired
- 【server】
jpom.authorize.renewal
->jpom.user.tokenRenewal
- 【server】
jpom.authorize.key
->jpom.user.tokenJwtKey
- 【server】
jpom.webApiTimeout
->jpom.web.api-timeout
- 【server】删除
ssh.initEnv
- 【server】批量修正前端相关配置属性均修改到
jpom.web.*
- 【server】
db.*
->jpom.db.*
- 【server】
build.*
->jpom.build.*
# 问: 当前使用的 2.9.0 版本以下的改如何升级?
如果您现在使用的版本是 2.8.x 或者 2.7.x 以下的请先将版本手动升级到 2.9.x 再升级到 2.10.x 因为之前版本存在数据库不兼容和新版本不兼容低版本 json 数据相关功能
升级到 2.9.x 的文档:https://jpom.top/pages/upgrade/2.8.x-to-2.9.x/ (opens new window)
# 升级方式总览
- 停止正在运行的程序
插件端
或者服务端
- 备份已经存在的
插件端
或者服务端
的数据目录 - 手动安装新版本
2.10.0+
- 一键安装
- 下载安装包
- 还原数据:将备份的数据目录迁移到新安装的数据目录(
需要再未运行的状态下操作
) - 还原配置属性:将您之前为 Jpom 配置(
extConfig.yml
)过的属性再次手动配置到新的配置文件(conf/application.yml
)中 - 重启程序对应的程序
插件端
或者服务端
# 推荐升级方式一(手动档 windows/linux )
# 插件端-1
# 1. 停止正在运行的插件端
linux :
bash ./Agent.sh stop
windows : 双击 Agent.bat 根据提示输入对应的数字
# 2. 备份插件端重要数据
- 数据目录:如果您安装的插件端未修改数据目录配置,数据默认默认在安装路径下的
data
文件夹 - 配置文件:在插件端安装目录下面的
extConfig.yml
# 3. 删除插件端目录下面的所有文件
这里删除需要您确认已经根据上述步骤(步骤2
)已经备份相关文件
# 4. 安装新的插件端
小提示
如果您修改过插件端的 jvm 参数,这里需要您再次在新版本的 Agent.sh 或者 Agent.bat 配置相关内容
# 5. 停止已经在运行的插件端
这里需要您启动已经安装成功
一键安装后成功后会自动启动插件端,所以这里需要先停止插件端
linux :
bash ./Agent.sh stop
windows :
./Agent.bat stop
# 6. 覆盖插件端数据目录
数据目录:如果您安装的插件端未修改数据目录配置,数据默认默认在安装路径下的 data
文件夹
将您之前备份(步骤2
)的数据目录里面的所有文件复制到新的数据目录中
# 7. 手动合并配置内容
小提示
如果您安装 Jpom 插件端未修改任何配置属性,均使用默认配置可以忽略此步骤
新版本的配置文件由原来的:extConfig.yml
变更为 conf/application.yml
所有配置均由中文说明,您可以参考新旧配置的中文说明来将您之前的配置属性还原到新的配置文件中
# 8. 重启插件端
到这里我们已经成功的将插件端的版本升级到 2.10.x
了,我们就可以愉快的使用新版本拉
linux :
bash ./bin/Agent.sh start
windows :
../bin/Agent.bat start
感谢您的理解和支持🤝 !
# 服务端-1
# 1. 停止正在运行的服务端
linux :
bash ./Server.sh stop
windows : 双击 Server.bat 根据提示输入对应的数字
# 2. 备份服务端重要数据
- 数据目录:如果您安装的服务端未修改数据目录配置,数据默认默认在安装路径下的
data
文件夹 - db 数据目录:如果您安装的服务端未修改数据目录配置,db 数据目录默认默认在安装路径下的
db
文件夹 - 配置文件:在服务端安装目录下面的
extConfig.yml
# 3. 删除服务端目录下面的所有文件
这里删除需要您确认已经根据上述步骤(步骤2
)已经备份相关文件
# 4. 安装新的服务端
小提示
如果您修改过插件端的 jvm 参数,这里需要您再次在新版本的 Server.sh 或者 Server.bat 配置相关内容
# 5. 停止已经在运行的服务端
这里需要您启动已经安装成功
一键安装后成功后会自动启动服务端,所以这里需要先停止服务端
linux :
bash ./Server.sh stop
windows :
./Server.bat stop
# 6. 覆盖服务端数据目录
数据目录:如果您安装的服务端未修改数据目录配置,数据默认默认在安装路径下的 data
文件夹
将您之前备份(步骤2
)的数据目录里面的所有文件复制到新的数据目录中
# 7. 覆盖服务端 db 数据目录
数据目录:如果您安装的服务端未修改数据目录配置,数据默认默认在安装路径下的 db
文件夹
将您之前备份(步骤2
)的数据目录里面的所有文件复制到新的 db 数据目录中
# 8. 手动合并配置内容
小提示
如果您安装 Jpom 服务端未修改任何配置属性,均使用默认配置可以忽略此步骤
新版本的配置文件由原来的:extConfig.yml
变更为 conf/application.yml
所有配置均由中文说明,您可以参考新旧配置的中文说明来将您之前的配置属性还原到新的配置文件中
# 9. 重启服务端
到这里我们已经成功的将服务端的版本升级到 2.10.x
了,我们就可以愉快地使用新版本拉
linux :
bash ./bin/Server.sh start
windows :
../bin/Server.bat start
感谢您的理解和支持🤝 !
# 推荐升级方式二(linux-半自动)
# 插件端-2
此方式仅限于使用 linux 环境下使用并且所在服务器能下载远程文件(公网)
# 1. 脚本自动升级
使用提醒
需要到插件端的安装目录里执行下面命令
curl -fsSL https://jpom.top/docs/upgrade2.9.x.sh | bash -s agent
# 2. 手动合并配置文件
使用该方式脚本自动将 extConfig.yml
移动到 conf/extConfig.yml
目录下
小提示
如果您安装 Jpom 插件端未修改任何配置属性,均使用默认配置可以忽略此步骤
# 3. 清理旧文件数据
使用该方式脚本自动将 log
、lib
、agent.log
、Agent.bat
、Agent.sh
、 移动到 upgrade_backup
目录下
您可以跟进自己的情况来判断升级是否成功,升级成功后可以将该目录手动删除
# 服务端-2
此方式仅限于使用 linux 环境下使用并且所在服务器能下载远程文件(公网)
# 1. 脚本自动升级
使用提醒
需要到服务端的安装目录里执行下面命令
curl -fsSL https://jpom.top/docs/upgrade2.9.x.sh | bash -s server
# 2. 手动合并配置文件
使用该方式脚本自动将 extConfig.yml
移动到 conf/extConfig.yml
目录下
小提示
如果您安装 Jpom 服务端未修改任何配置属性,均使用默认配置可以忽略此步骤
# 3. 清理旧文件数据
使用该方式脚本自动将 log
、lib
、server.log
、Server.bat
、Server.sh
、 移动到 upgrade_backup
目录下
您可以跟进自己的情况来判断升级是否成功,升级成功后可以将该目录手动删除
# 推荐升级方式三(linux-离线升级)
# 插件端-3
此方式仅限于使用 linux 环境下使用
# 1. 下载离线包
- 升级脚本:https://jpom.top/docs/upgrade2.9.x.sh (opens new window)
- 插件端安装包:https://jpom.top/pages/all-downloads/ (opens new window)
# 2. 上传升级到服务器
- 将
upgrade2.9.x.sh
上传到插件端安装路径下 - 将
agent-2.10.x-release.tar.gz
上传到插件端安装路径下 - 将
agent-2.10.x-release.tar.gz
从命名为:agent.tar.gz
# 3. 执行升级脚本
bash ./upgrade2.9.x.sh agent
# 4. 手动合并配置文件
使用该方式脚本自动将 extConfig.yml
移动到 conf/extConfig.yml
目录下
小提示
如果您安装 Jpom 插件端未修改任何配置属性,均使用默认配置可以忽略此步骤
# 5. 清理旧文件数据
使用该方式脚本自动将 log
、lib
、agent.log
、Agent.bat
、Agent.sh
、 移动到 upgrade_backup
目录下
您可以跟进自己的情况来判断升级是否成功,升级成功后可以将该目录手动删除
# 服务端-3
此方式仅限于使用 linux 环境下使用
# 1. 下载离线包
- 升级脚本:https://jpom.top/docs/upgrade2.9.x.sh (opens new window)
- 插件端安装包:https://jpom.top/pages/all-downloads/ (opens new window)
# 2. 上传升级到服务器
- 将
upgrade2.9.x.sh
上传到服务端安装路径下 - 将
server-2.10.x-release.tar.gz
上传到服务端安装路径下 - 将
server-2.10.x-release.tar.gz
从命名为:server.tar.gz
# 3. 执行升级脚本
bash ./upgrade2.9.x.sh server
# 4. 手动合并配置文件
使用该方式脚本自动将 extConfig.yml
移动到 conf/extConfig.yml
目录下
小提示
如果您安装 Jpom 服务端未修改任何配置属性,均使用默认配置可以忽略此步骤
# 5. 清理旧文件数据
使用该方式脚本自动将 log
、lib
、server.log
、Server.bat
、Server.sh
、 移动到 upgrade_backup
目录下
您可以跟进自己的情况来判断升级是否成功,升级成功后可以将该目录手动删除