线上应用运维记录
2021-07-01 本文已影响0人
Java分布式架构实战
- 运维记录1
- 说明
智慧工地平台是我们在2017年使用SpringBoot+Dubbo+MySQL+MyBatis构建的一个分布式应用。之前对NodeJS比较熟悉,NodeJS应用是使用Supervisor来部署了,所以到了Java应用也采用了这个方式。最近发现QA环境内存占用过多,使用Jenkins发布应用时也会遇到端口冲突的情况。经过分析发现有些进程启动了两份。 -
QA环境说明
QA环境说明 - 排查解决过程
使用jps查看Java进程,发现确实有重复, 32G内存被占用完了,平时最多也就占用24个G左右。
- 说明
jps -l
接一来先关闭supervisord, 然后找出所有的Java进程并干掉,然后再启动supervisord
systemctl stop supervisord
ps -ef | grep java | grep -v grep | awk '{pring $2}' | xargs kill -9
systemctl start supervisord
-
线上运维记录2
ELK中发现http 400异常,刚开始怀疑是http get 请求的地址超长了,后来发现是时好时坏,然后就开始怀疑是Nginx层的问题了。
ELK中发现http 400异常
通过postman测试prdtest ,prd环境的接口都是正常的,但是在程序中访问某接口就会导致http 400异常。经过很多轮的分析发现应用服务器/etc/hosts中配置了域名解析。
vim /etc/hosts
xxx.xxx.xxx.98 ibuildmgt.yzw.cn
xxx.xxx.xxx.98 是一个LVS+keepalived环境下的一个虚IP。经过将此VIP换成具体的Nginx主节点IP后,问题得到解决。具体原因未知,不知道是不是LVS的bug。