本章节汇总了使用ARMS应用监控时的常见问题。
本页目录
- 为Java应用手动安装Agent的常见问题
- 为ECS中的Java应用快速安装Agent的常见问题
- 为容器服务Kubernetes版Java应用安装Agent的常见问题
- 为开源Kubernetes环境中的Java应用安装Agent常见问题
- 在不重装Agent的情况下更改Java应用名称的常见问题
- 卸载Agent的常见问题
- 其他问题
ARMS Agent和其他APM产品Agent(例如Pinpoint)是否兼容?
ARMS Agent和其他APM产品Agent都不兼容。APM大多是基于ASM框架进行字节码插桩实现的,同时安装两个Agent相当于对您的代码插桩两次,而不同商家的插装代码实现不同,代码冲突可能造成严重的性能问题,因此强烈建议您不要同时安装多个APM Agent。
安装Agent后应用启动时报OutOfMemoryError错误怎么办?
请在Java启动命令后面加上堆内存大小配置项,以适当调大JVM参数。以下示例配置项表示堆内存初始值(Xms)为512 M,堆内存最大值(Xmx)为2 G。
-Xms512M
-Xmx2048M
如果出现OutOfMemoryError: PermGen space
错误,请添加以下配置。
-XX:PermSize=256M
-XX:MaxPermSize=512M
如果出现OutOfMemoryError: metaspace
错误,请添加以下配置。
-XX:MetaspaceSize=256M
-XX:MaxMetaspaceSize=512M
如何测试网络连通性?
部署ARMS Agent时,必须确保8883、8443、8442这三个端口的可连通性,Agent才能正常工作。可使用Telnet命令测试目标主机与ARMS服务器网络是否连通。例如,以测试深圳地域的连通性为例,请登录应用所部署的机器,并输入以下命令:
telnet arms-dc-sz.aliyuncs.com 8883
telnet arms-dc-sz.aliyuncs.com 8443
telnet arms-dc-sz.aliyuncs.com 8442
地域 | 经典网络和公网 | VPC网络 |
---|---|---|
华东1(杭州) | arms-dc-hz.aliyuncs.com | arms-dc-hz-internal.aliyuncs.com |
华东2(上海) | arms-dc-sh.aliyuncs.com | arms-dc-sh-internal.aliyuncs.com |
华北1(青岛) | arms-dc-qd.aliyuncs.com | arms-dc-qd-internal.aliyuncs.com |
华北2(北京) | arms-dc-bj.aliyuncs.com | arms-dc-bj-internal.aliyuncs.com |
华北3(张家口) | arms-dc-zb.aliyuncs.com | arms-dc-zb-internal.aliyuncs.com |
华北5(呼和浩特) | dc-cn-huhehaote.arms.aliyuncs.com | dc-cn-huhehaote-internal.arms.aliyuncs.com |
华北6(乌兰察布) | dc-cn-wulanchabu.arms.aliyuncs.com | dc-cn-wulanchabu-internal.arms.aliyuncs.com |
华南1(深圳) | arms-dc-sz.aliyuncs.com | arms-dc-sz-internal.aliyuncs.com |
华南2(河源) | dc-cn-heyuan.arms.aliyuncs.com | dc-cn-heyuan-internal.arms.aliyuncs.com |
华南3(广州) | dc-cn-guangzhou.arms.aliyuncs.com | dc-cn-guangzhou-internal.arms.aliyuncs.com |
西南1(成都) | dc-cn-chengdu.arms.aliyuncs.com | dc-cn-chengdu-internal.arms.aliyuncs.com |
中国(香港) | arms-dc-hk.aliyuncs.com | arms-dc-hk-internal.aliyuncs.com |
新加坡 | arms-dc-sg.aliyuncs.com | arms-dc-sg-internal.aliyuncs.com |
亚太东南2(悉尼) | dc-ap-southeast-2.arms.aliyuncs.com | dc-ap-southeast-2-internal.arms.aliyuncs.com |
亚太东南3(吉隆坡) | dc-ap-southeast-3.arms.aliyuncs.com | dc-ap-southeast-3-internal.arms.aliyuncs.com |
亚太东南5(雅加达) | arms-dc-indonesia.aliyuncs.com | arms-dc-indonesia-internal.aliyuncs.com |
亚太东北1(东京) | arms-dc-jp.aliyuncs.com | arms-dc-jp-internal.aliyuncs.com |
欧洲中部1(法兰克福) | arms-dc-frankfurt.aliyuncs.com | arms-dc-frankfurt-internal.aliyuncs.com |
欧洲西部1(伦敦) | dc-eu-west-1.arms.aliyuncs.com | dc-eu-west-1-internal.arms.aliyuncs.com |
美国东部1(弗吉尼亚) | dc-us-east-1.arms.aliyuncs.com | dc-us-east-1-internal.arms.aliyuncs.com |
美国西部1(硅谷) | arms-dc-usw.aliyuncs.com | dc-us-west-1-internal.arms.aliyuncs.com |
亚太南部1(孟买) | dc-ap-south-1.arms.aliyuncs.com | dc-ap-south-1-internal.arms.aliyuncs.com |
政务云 | arms-dc-gov.aliyuncs.com | arms-dc-gov-internal.aliyuncs.com |
杭州金融云 | arms-dc-hz-finance.aliyuncs.com | arms-dc-hz-finance-internal.aliyuncs.com |
上海金融云 | arms-dc-sh-finance.aliyuncs.com | arms-dc-sh-finance-internal.aliyuncs.com |
深圳金融云 | arms-dc-sz-finance.aliyuncs.com | arms-dc-sz-finance-internal.aliyuncs.com |
如何检查ARMS Agent是否安装成功?
使用ps命令查看命令行启动参数中是否成功安装ARMS Agent。
ps -ef | grep 'arms-bootstrap'
成功安装时,如下图所示:

命令行中的Darms.licenseKey的值必须与ARMS接入应用页面显示的License Key一致。

ARMS Agent安装成功,为什么控制台上仍无监控数据?
- 如果Agent日志中出现
send agent metrics. no metrics.
,请确认您的应用是否有持续的外部访问请求,包括HTTP请求、HSF请求和Dubbo请求,并确认开发框架是否在ARMS Agent的支持范围内。关于ARMS应用监控对第三方组件和框架的支持情况,请参见应用监控概述。 - 确认选择的查询时间范围是否正确。请您将查询时间条件设为最近15分钟,然后再次确认是否有监控数据。
- 如果是通过
-jar
命令行启动的,请检查命令行设置,确保-javaagent参数在-jar
之前。以下是一个正确示例。java -javaagent:/{user.workspace}/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar -Darms.licenseKey=xxx -Darms.appName=xxx -jar demoApp.jar
- 如果ArmsAgent/log/下的日志中出现LicenseKey is invalid.异常,请检查应用所属地域与Agent所属地域是否一致。
- 如果应用启动之后ArmsAgent目录下没有log子目录,则表明arms-bootstrap-1.7.0-SNAPSHOT.jar未被成功加载,请检查ArmsAgent安装目录的权限是否正确。
若应用启动时出现以下报错,请您检查arms-bootstrap-1.7.0-SNAPSHOT.jar软件包及相应权限是否正确。
Error opening zip file or JAR manifest missing: /root/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar Error occurred during initialization of VM agent library failed to init: instrument
- 如果仍无监控数据,请将Java Agent日志(路径:ArmsAgent/log)保存为压缩文件,并联系钉钉服务账号
arms160804
解决问题。 检查JDK版本。如果JDK版本为1.8.0_25或者1.8.0_31,可能会出现无法安装Agent的情况,建议您升级对应的JDK版本,或咨询钉钉服务账号
arms160804
。
ARMS Agent安装成功,但IP显示不正确或不显示怎么办?
- 首先通过ifconfig -a命令确认当前机器的网络配置情况,若为多网卡环境,则Agent采集到的IP地址可能会不符合预期(与网络配置环境有关)。
- 选择以下方式之一来解决问题。
- 配置JVM的
-DEAGLEEYE.LOCAL.IP=10.XX.XX.XX
参数。说明 将10.XX.XX.XX
替换为实际IP地址。 - 配置Agent获取JVM的
-DNETWORK.INTERFACE=eth0
参数,其中eth0
为网卡名称。
- 配置JVM的
对于ARMS Agent日志(路径:ArmsAgent/log)错误,有哪些常用排查方法?
LicenseKey is invalid错误:
- 确保在ARMS中已成功创建该应用,并且确认安装Agent时填写的LicenseKey正确。
- 由于ARMS产品是多地域(Region)环境,所以还需要确认Agent的下载地址所属的地域与应用所属地域是否一致。
如何支持单机多实例?
如需在同一台机器上部署同一应用的多个实例,可以通过-Darms.agentId(逻辑编号,如001、002)参数来区分接入的JVM进程,例如:
java -javaagent:/{user.workspace}/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar -Darms.licenseKey=<LicenseKey> -Darms.appName=<AppName> -Darms.agentId=001 -jar demoApp.jar
Agent安装失败怎么处理?
- 确保您的ECS实例可以访问公网,且能够访问所在地域的Agent下载链接。
地域 公网地址 华东1(杭州) arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/ArmsAgent.zip 华东2(上海) arms-apm-cn-shanghai.oss-cn-shanghai.aliyuncs.com/ArmsAgent.zip 华北1(青岛) arms-apm-cn-qingdao.oss-cn-qingdao.aliyuncs.com/ArmsAgent.zip 华北2(北京) arms-apm-cn-beijing.oss-cn-beijing.aliyuncs.com/ArmsAgent.zip 华北3(张家口) arms-apm-cn-zhangjiakou.oss-cn-zhangjiakou.aliyuncs.com/ArmsAgent.zip 华北5(呼和浩特) arms-apm-cn-huhehaote.oss-cn-huhehaote.aliyuncs.com/ArmsAgent.zip 华北6(乌兰察布) arms-apm-cn-wulanchabu.oss-cn-wulanchabu.aliyuncs.com/ArmsAgent.zip 华南1(深圳) arms-apm-cn-shenzhen.oss-cn-shenzhen.aliyuncs.com/ArmsAgent.zip 华南2(河源) arms-apm-cn-heyuan.oss-cn-heyuan.aliyuncs.com/ArmsAgent.zip 华南3(广州) arms-apm-cn-guangzhou.oss-cn-guangzhou.aliyuncs.com/ArmsAgent.zip 西南1(成都) arms-apm-cn-chengdu.oss-cn-chengdu.aliyuncs.com/ArmsAgent.zip 中国(香港) arms-apm-cn-hongkong.oss-cn-hongkong.aliyuncs.com/ArmsAgent.zip 新加坡 arms-apm-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/ArmsAgent.zip 亚太东南2(悉尼) arms-apm-ap-southeast-2.oss-ap-southeast-2.aliyuncs.com/ArmsAgent.zip 亚太东南3(吉隆坡) arms-apm-ap-southeast-3.oss-ap-southeast-3.aliyuncs.com/ArmsAgent.zip 亚太东南5(雅加达) arms-apm-ap-southeast-5.oss-ap-southeast-5.aliyuncs.com/ArmsAgent.zip 亚太东北1(东京) arms-apm-ap-northeast-1.oss-ap-northeast-1.aliyuncs.com/ArmsAgent.zip 欧洲中部1(法兰克福) arms-apm-eu-central-1.oss-eu-central-1.aliyuncs.com/ArmsAgent.zip 欧洲西部1(伦敦) arms-apm-eu-west-1.oss-eu-west-1.aliyuncs.com/ArmsAgent.zip 美国东部1(弗吉尼亚) arms-apm-us-east-1.oss-us-east-1.aliyuncs.com/ArmsAgent.zip 美国西部1(硅谷) arms-apm-us-west-1.oss-us-west-1.aliyuncs.com/ArmsAgent.zip 亚太南部1(孟买) arms-apm-ap-south-1.oss-ap-south-1.aliyuncs.com/ArmsAgent.zip 政务云 arms-apm-cn-north-2-gov-1.oss-cn-north-2-gov-1.aliyuncs.com/ArmsAgent.zip - 确保您的ECS实例可以访问控制台。
- 登录ECS控制台,并完成以下检查工作。
- 在左侧导航栏中选择 。
- 在ECS云助手页面命令列表页签的搜索框中选择命令名称,输入
InstallJavaAgent
命令并按Enter键。说明 若查找结果不存在,请联系ARMS钉钉服务账号arms160804
。 - 在ECS云助手页面的命令执行结果页签的搜索栏输入
InstallJavaAgent
命令的命令ID,在查找结果中单击该记录右侧操作列的查看,即可查看InstallJavaAgent
命令是否执行成功。若未执行成功,请根据详细执行结果排查问题。如ECS磁盘满、未安装Agent等问题,可以通过清理磁盘或安装Agent来解决。若不能解决,请将详细执行结果反馈给ARMS钉钉服务账号arms160804
。
安装Agent后ECS实例进程信息不准确怎么办?
若您在ECS上成功安装Agent后没有出现ECS实例进程信息,或者ECS实例进程信息不准确,请单击ECS实例左侧的-号并单击+号刷新数据。若不能解决,请联系ARMS钉钉服务账号arms160804
。
ECS实例中的进程启动应用监控失败怎么办?
请检查ECS实例的/root/.arms/supervisor/logs/arms-supervisor.log
日志中是否有日志级别为Error的信息,并根据此信息排查。若不能解决,请联系ARMS钉钉服务账号arms160804
。
为什么容器服务K8s集群中JDK11版本的Java应用安装Agent后,应用监控没有数据呢?
可能原因:应用的YAML文件中未添加JDK版本参数。
解决方案:执行以下步骤在应用的YAML文件中添加JDK版本参数。
- 登录容器服务管理控制台。
- 在左侧导航栏选择集群,在集群列表页面上的目标集群右侧操作列单击应用管理。
- 在无状态页面顶部选择您的应用所在的命名空间,然后在目标应用右侧选择 。
- 在编辑YAML对话框的spec > template > metadata > labels层级下添加以下参数。
one-agent.jdk.version: "OpenJDK11"
为什么容器服务K8s集群中的Java应用安装Agent后,应用监控没有数据呢?
- 登录容器服务管理控制台。
- 在左侧导航栏选择集群,在集群列表页面上的目标集群右侧操作列单击应用管理。
- 在容器组页签顶部选择您的应用所在的命名空间,然后单击目标应用右侧单击编辑。
- 在编辑YAML对话框中查看YAML文件中是否存在initContainers。
- 在容器组页签顶部选择命名空间为ack-onepilot。查看Pod列表中是否存在名称前缀为ack-onepilot的Pod。
- 如果存在,则执行步骤6。
- 如果不存在,则在应用市场中安装ack-onepilot。具体操作,请参见安装ARMS应用监控组件。
- 在无状态或有状态页签目标应用右侧操作列中选择 ,在编辑YAML对话框查看YAML文件中是否存在以下Labels注解。
labels: armsPilotAutoEnable: "on" armsPilotCreateAppName: "<your-deployment-name>" //请将<your-deployment-name>替换为您的应用名称。 one-agent.jdk.version: "OpenJDK11" //如果应用的JDK版本是JDK11,则需要配置此参数。
- 如果存在,则执行步骤7。
- 如果不存在,则在编辑YAML对话框中的spec.template.metadata层级下添加以上Labels注解,然后单击更新。
- 在容器组页签目标应用右侧单击日志,查看ack-onepilot的Pod日志是否报STS错误,即提示
"Message":"STS错误"
。- 如果报STS错误,则需为应用所在集群授权,并重启应用所在Pod。具体操作,请参见为容器服务Kubernetes版授权。
- 如果未报STS错误,则联系ARMS钉钉服务账号:arms160804。
- 在容器组页签目标应用右侧单击编辑,在编辑YAML对话框中查看YAML文件中是否存在以下javaagent参数。
-javaagent:/home/admin/.opt/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar
- 如果存在,则单击容器组页签右侧的终端进入命令行页面,执行以下命令查看是否存在以.log为后缀的日志文件,然后联系ARMS钉钉服务账号:arms160804。
cd /home/admin/.opt/ArmsAgent/logs
- 如果不存在,则联系ARMS钉钉服务账号:arms160804。
- 如果存在,则单击容器组页签右侧的终端进入命令行页面,执行以下命令查看是否存在以.log为后缀的日志文件,然后联系ARMS钉钉服务账号:arms160804。
容器服务K8s集群中的应用安装Agent失败怎么处理?
可能原因:目标集群中不存在ARMS Addon Token。
解决方案:
步骤一:查看集群是否存在ARMS Addon Token。
- 登录容器服务管理控制台,在集群列表页面,单击目标集群名称进入集群详情页。
- 在左侧导航栏选择 。
- 在顶部选择命名空间为kube-system,查看addon.arms.token是否存在。
步骤二:为容器服务Kubernetes版授予ARMS资源的访问权限。
- 登录容器服务管理控制台。
- 在左侧导航栏选择集群,在集群列表页面,单击目标集群名称或其右侧操作列的详情。
- 在目标集群的集群信息页面上单击集群资源页签,然后单击Worker RAM角色右侧的链接。
- 在访问控制RAM控制台的RAM角色管理页面上,单击权限管理页签上的权限策略名称。
- 在策略内容页签上单击修改策略内容,并将以下内容添加到策略内容中,最后单击确定。
{ "Action": "arms:*", "Resource": "*", "Effect": "Allow" }
为什么开源K8s集群中JDK11版本的Java应用安装Agent后,应用监控没有数据呢?
可能原因:应用的YAML文件中未添加JDK版本参数。
解决方案:在YAML文件中的spec > template > metadata > labels层级下添加以下内容。
one-agent.jdk.version: "OpenJDK11"
ACK集群如何跨区域上报数据?
- 在容器集群arms-pilot Namespace下的Deployment中添加ARMS_REPORT_REGION环境变量,值为ARMS所支持的RegionId(例如cn-hangzhou、cn-beijing)。
- 重启现有应用或部署一个新的应用,完成跨区域上报。说明 当添加环境变量后,该集群下所有应用均会跨区域上报到步骤一中指定的地域。
应用无法正常启动怎么办?
请执行以下命令查看ack-onepilot的日志信息来排查问题。
k logs -f ack-onepilot-ack-onepilot-XXXX-XXXX -n ack-onepilot
k get pod -n ack-onepilot
来获取。如何查看Agent日志?
在Kubernetes集群Worker机上查看/home/admin/.opt/ArmsAgent/logs/xxxx.log。
以通用方式安装Agent的普通Java应用如何更改应用名称?
普通Java应用是指除了部署在阿里云ECS实例上的应用以外的Java应用。如果您是以通用方式安装Agent的,则Agent目录就是您自定义的位置。
您可以在Agent目录的Version文件中查看Agent版本。例如,2.5.8_cf020486_20190816150025
表示Agent版本为2.5.8,Agent发布时间为2019年8月16日。
- 如果您的Agent版本低于2.5.8.1,请先卸载Agent再重新安装,并在重新安装时使用新的应用名称。
- 手动安装的Agent的卸载方法,请参见如何卸载以通用方式安装的Agent。
- ECS应用的Agent卸载方法,请参见如何卸载ECS中Java应用的Agent。
- 如果您的Agent版本为2.5.8.1或以上,则可在不重装Agent的情况下更改Java应用名称,请参见以下操作步骤: 说明 2019年8月20日之后下载的Agent默认都支持该功能。
- 请使用以下方法之一下载并解压Supervisor。说明 请根据您的应用所在的地域替换下载地址中的地域。
- 公网地址
wget http://arms-apm-hangzhou.oss-cn-hangzhou.aliyuncs.com/ArmsSupervisor.zip -O ArmsSupervisor.zip unzip ArmsSupervisor.zip
- VPC地址(公网地址无法下载时使用)
wget http://arms-apm-hangzhou.oss-cn-hangzhou-internal.aliyuncs.com/ArmsSupervisor.zip -O ArmsSupervisor.zip unzip ArmsSupervisor.zip
- 公网地址
- 运行以下命令更改应用名称。
cd ArmsSupervisor ./attach.sh </path/to/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar> <PID> <NewAppName> <LicenseKey>
- </path/to/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar>:指向Agent下同名文件的路径。
- <PID>:目标进程ID,可通过
jps/ps
命令获取。 - <NewAppName>:新的应用名称。
- <LicenseKey>:ARMS应用监控中应用的LicenseKey,可从控制台获取。
如果应用的标准输出打印以下日志,则说明应用名称更改成功。

部署在容器服务K8s集群中的Java应用如何更改应用名称?
您可以在Agent目录的Version文件中查看Agent版本。例如,2.5.8_cf020486_20190816150025
表示Agent版本为2.5.8,Agent发布时间为2019年8月16日。
- 如果您的Agent版本低于2.5.8.1,请先卸载Agent再重新安装,并在重新安装时使用新的应用名称。
- 手动安装的Agent的卸载方法,请参见如何卸载以通用方式安装的Agent。
- ECS应用的Agent卸载方法,请参见如何卸载ECS中Java应用的Agent。
- 如果您的Agent版本为2.5.8.1或以上,则可在不重装Agent的情况下更改Java应用名称,请参见以下操作步骤: 说明 2019年8月20日之后下载的Agent默认都支持该功能。
修改Deployment内的armsPilotCreateAppName参数并重启Pod即可。
应用名称更改成功后稍等片刻,旧名称的应用下将不再有监控数据上报,且新名称的应用下将有监控数据上报。
部署在EDAS上的Java应用如何更改应用名称?
目前不支持为部署在EDAS上的Java应用更改应用名称。
如何卸载以通用方式安装的Agent?
以通用方式安装Agent是指使用手动方式为Java应用安装Agent,具体操作,请参见为Java应用手动安装Agent。卸载以通用方式安装的Agent的操作步骤如下所示:
- 当您不需要使用ARMS监控您的Java应用时,删除上述安装文档步骤8添加的AppName、LicenseKey相关的所有参数。
- 重启Java应用。
如何卸载ECS中Java应用的Agent?
- 当您不需要使用ARMS监控您的Java应用时,执行
jps -l
命令查看所有进程,并在执行结果中找到com.alibaba.mw.arms.apm.supervisor.daemon.Daemon
对应的进程号。在本示例中,com.alibaba.mw.arms.apm.supervisor.daemon.Daemon
对应的进程号为:62857。 - 执行命令
kill -9 <进程号>
。例如:kill -9 62857
。 - 执行
rm -rf /.arms /root/.arms
。 - 重启您的应用。
如何卸载容器服务K8s集群中Java应用的Agent?
当您不需要使用ARMS监控容器服务Kubernetes版集群中的Java应用时,可按照以下步骤卸载Agent:
- 登录容器服务管理控制台。
- 在左侧导航栏单击集群,在集群列表页面上的目标集群右侧操作列单击应用管理。
- 在左侧导航栏选择 。
- 在Helm页面,ARMS Agent对应的发布名称arms-pilot右侧操作列,单击删除。
- 在删除应用对话框单击确定。
- 重启您的业务Pod。
如何卸载开源K8s环境中Java应用的Agent?
- 当您不需要再监控开源Kubernetes环境中的Java应用时,可执行以下命令卸载arms-pilot。
helm del --purge arms-pilot
- 重启您的业务Pod。
如何卸载Docker中Java应用的Agent?
- 当您不需要再监控Docker集群中的Java应用时,可以删除安装文档的步骤1所编辑的Dockerfile内容。
- 运行docker build命令来构建镜像。
- 运行docker run命令来启动镜像。
使用OpenFeign组件的应用在ARMS中数据不完整怎么办?
若您的OpenFeign应用接入ARMS应用监控后,出现数据不完整、看不到下游应用的数据等情况,可能的原因是OpenFeign组件默认开启了使用RxJava异步框架的Hystrix,而ARMS不支持异步框架。
您可以通过关闭Hystrix并配置OkHttp请求类来解决此类问题:
- 在pom.xml文件中添加以下依赖。
<!-- OKHttp对Feign支持 --> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-okhttp</artifactId> </dependency>
- 在SpringCloud配置文件中添加以下配置。
feign.okhttp.enabled: true feign.hystrix.enabled: false
- 配置OkHttp请求类。
@Configuration @ConditionalOnClass(Feign.class) @AutoConfigureBefore(FeignAutoConfiguration.class) public class FeignClientOkHttpConfiguration { @Bean public OkHttpClient okHttpClient() { return new OkHttpClient.Builder() // 连接超时 .connectTimeout(20, TimeUnit.SECONDS) // 响应超时 .readTimeout(20, TimeUnit.SECONDS) // 写超时 .writeTimeout(20, TimeUnit.SECONDS) // 是否自动重连 .retryOnConnectionFailure(true) // 连接池 .connectionPool(new ConnectionPool()) .build(); }