本文档提供 PAS-Micro 使用过程中所遇到的常见问题及相应解答。

# 内嵌容器相关

# 支持 SpringBoot 3 和 jdk 17 吗?

支持的,需要使用**“pas-spring-boot-3.x-starter”**相关依赖,具体可参考“安装手册”。

内置容器替换后,应用启动时是没有普元 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?

  1. 排查是否引入内嵌控制台相关依赖,具体可查看“安装部署-内嵌控制台”文档。

  2. 排查是否启用内嵌控制台且关闭了对统一控制台的配置,具体可查看“安装部署-内嵌控制台”文档。

  3. 排查应用是否额外配置了 actuator 路径或端口,若配置了需要以配置的路径访问,示例配置如下:

    management.endpoints.web.base-path=/test
    management.server.port=8888
    

    此时内嵌控制台访问路径为:http://ip:8888/test/pas/index.html

# 没有慢响应请求数据?

内嵌控制台中的慢响应请求只记录耗时大于 10 秒的请求。

# 控制台很多数据缺失,且接口报错?

  1. 查看应用是否开启了 actuator 端点,实例配置如下:

    management.endpoints.web.exposure.include=*
    
  2. 查看应用的 SpringBoot 版本,当前 PAS-Micro 最适配的 SpringBoot 版本为 2.X,其他版本的 SpringBoot 应用部分功能受限。

# 通过控制台中的参数配置是否永久生效?

不是永久生效,应用重启后无效。

# 不使用 PAS-Micro 内嵌容器能否配置内嵌控制台?

Web 应用不使用 PAS-Micro 作为内嵌容器,而使用如原生的 tomcat 容器也可以配置内嵌控制台,具体配置可查看“安装手册”。但控制台部分功能将受限,无法使用,若要体验完整功能,建议使用 PAS-Micro 作为应用的内嵌容器。

# 统一控制台相关

# 支持的 JDK 版本是什么?

JDK 1.8+

# 应用无法注册到统一控制台或注册后应用状态异常?

  1. 排查是否引入 client 相关依赖,具体可查看“安装部署-统一控制台”文档。
  2. 排查是否配置了统一控制台相关信息,具体可查看“安装部署-统一控制台”文档。
  3. 排查应用与统一控制台之间网络是否连通。

# 实例扫描依赖失败?

依赖扫描需要额外配置文件,需要在 {统一控制台安装目录}/data 下新建 analyze 目录,并放置相关文件。

# 应用状态受限和离线的区别?

  • 离线:是应用下面的实例全都离线了。

  • 受限:是应用下的实例有在线的有不在线。

# 控制台很多数据缺失,且接口报错?

  1. 查看应用是否开启了 actuator 端点,实例配置如下:

    management.endpoints.web.exposure.include=*
    
  2. 查看应用的 SpringBoot 版本,当前 PAS-Micro 最适配 SpringBoot 2.X,其他版本的 SpringBoot 应用部分功能受限。

# 通过控制台中的参数配置是否永久生效?

不是永久生效,应用重启后无效。

# 不使用 PAS-Micro 内嵌容器能否配置统一控制台?

Web 应用不使用 PAS-Micro 作为内嵌容器,而使用如原生的 tomcat 容器也可以配置统一控制台,具体配置可查看“安装手册”。但控制台部分功能将受限,无法使用,若要体验完整功能,建议使用 PAS-Micro 作为应用的内嵌容器。