本文档提供 PAS-Micro 使用过程中所遇到的常见问题及相应解答。
# 内嵌容器相关
# 支持 SpringBoot 3 和 jdk 17 吗?
支持的,需要使用**“pas-spring-boot-3.x-starter”**相关依赖,具体可参考“安装手册”。
# 如何判断内容器替换成功或启动时没有普元 logo?
内置容器替换后,应用启动时是没有普元 logo 的,但会有**“PAS”**相关字样,详情可参考“安装手册”中验证章节。
# 启动报错:找不到 org.apache.tomcat.util.http.fileupload.FileItemStream 类文件
org.apache.tomcat.util.http.fileupload.FileItemStream 是 tomcat 的资源,pas 里有提供对应的能力,应用里需要稍微改造下,把 tomcat 的这个类改成用 pas 的 com.primeton.pas.server.util.http.fileupload.FileItemStream 这个类。
# 应用未授权的情况下,能否正常启动?
可以正常启动,但属于试用模式,将限制并发数。
# 性能与使用原生内嵌 tomcat 容器差距较大?
排查是否指定了 license,没有则会限制并发,具体限制的参数包括如下所示:
## 最小线程数
server.pas.threads.min-spare
## 最大线程数
server.pas.threads.max
## 最大连接数
server.pas.max-connections
## 请求队列大小
server.pas.accept-count
# 如何调优?
前提条件:确保已经指定了 license,而非试用模式。
修改应用的配置文件,示例如下,根据实际情况调整。系统上线前或压测前,确保完成此项调优:
## 最小线程数
server.pas.threads.min-spare=100
## 最大线程数
server.pas.threads.max=500
## 最大连接数
server.pas.max-connections=10000
## 请求队列大小
server.pas.accept-count=100
# 启动报错:found character%that cannot start any token.(Do not use % for indentation)?
文档中示例是 application.properties 的写法,项目中如果使用的是 application.yml,需要将配置改为 application.yml 的写法。
# 应用能否指定 license 路径?
可以指定,路径类型包括绝对路径、相对路径、类路径 classpath:。
配置方式如下:
- 系统属性:-Dpaslicense=/opt/primetonlicense.xml
- 配置文件:server.pas.primeton-license=/opt/primetonlicense.xml
- 默认路径:{应用所在目录}/license/primetonlicense.xml
参数生效优先级别: 系统属性 > 配置文件 > 默认路径。
# 应用可以正常运行,但停止后再启动失败?
可能是由于 license 过期导致,查看启动日志,license 是否过期。
# 容器化部署时,支持把配置文件外挂到宿主机吗?
支持的,可以参考容器环境外挂配置文件的方式实现。
# 容器化部署后,应用启动时报错:Your ip doesn't in authorized!!?
该错误是由于当前环境的IP地址和许可授权的IP不匹配,容器环境部署时申请的 license 需要绑定容器里的 IP 不是宿主机的 IP。
# 应用部署在 k8s 的容器云环境里,替换了绑定 pod 的 IP 的临时许可,启动仍报错:说是IP不在授权范围内?
使用 kubectl get pod -A -o wide |grep xx 命令查询 pod 的 ip 地址与许可中 ip 是否相同,若不同,需要重新申请许可。
# 内嵌控制台相关
# 访问内嵌控制台 404?
排查是否引入内嵌控制台相关依赖,具体可查看“安装部署-内嵌控制台”文档。
排查是否启用内嵌控制台且关闭了对统一控制台的配置,具体可查看“安装部署-内嵌控制台”文档。
排查应用是否额外配置了 actuator 路径或端口,若配置了需要以配置的路径访问,示例配置如下:
management.endpoints.web.base-path=/test management.server.port=8888
此时内嵌控制台访问路径为:http://ip:8888/test/pas/index.html
# 没有慢响应请求数据?
内嵌控制台中的慢响应请求只记录耗时大于 10 秒的请求。
# 控制台很多数据缺失,且接口报错?
查看应用是否开启了 actuator 端点,实例配置如下:
management.endpoints.web.exposure.include=*
查看应用的 SpringBoot 版本,当前 PAS-Micro 最适配的 SpringBoot 版本为 2.X,其他版本的 SpringBoot 应用部分功能受限。
# 通过控制台中的参数配置是否永久生效?
不是永久生效,应用重启后无效。
# 不使用 PAS-Micro 内嵌容器能否配置内嵌控制台?
Web 应用不使用 PAS-Micro 作为内嵌容器,而使用如原生的 tomcat 容器也可以配置内嵌控制台,具体配置可查看“安装手册”。但控制台部分功能将受限,无法使用,若要体验完整功能,建议使用 PAS-Micro 作为应用的内嵌容器。
# 统一控制台相关
# 支持的 JDK 版本是什么?
JDK 1.8+
# 应用无法注册到统一控制台或注册后应用状态异常?
- 排查是否引入 client 相关依赖,具体可查看“安装部署-统一控制台”文档。
- 排查是否配置了统一控制台相关信息,具体可查看“安装部署-统一控制台”文档。
- 排查应用与统一控制台之间网络是否连通。
# 实例扫描依赖失败?
依赖扫描需要额外配置文件,需要在 {统一控制台安装目录}/data 下新建 analyze 目录,并放置相关文件。
# 应用状态受限和离线的区别?
离线:是应用下面的实例全都离线了。
受限:是应用下的实例有在线的有不在线。
# 控制台很多数据缺失,且接口报错?
查看应用是否开启了 actuator 端点,实例配置如下:
management.endpoints.web.exposure.include=*
查看应用的 SpringBoot 版本,当前 PAS-Micro 最适配 SpringBoot 2.X,其他版本的 SpringBoot 应用部分功能受限。
# 通过控制台中的参数配置是否永久生效?
不是永久生效,应用重启后无效。
# 不使用 PAS-Micro 内嵌容器能否配置统一控制台?
Web 应用不使用 PAS-Micro 作为内嵌容器,而使用如原生的 tomcat 容器也可以配置统一控制台,具体配置可查看“安装手册”。但控制台部分功能将受限,无法使用,若要体验完整功能,建议使用 PAS-Micro 作为应用的内嵌容器。
← 配置说明