故事的开始是实施小老弟把医院的数据库私自做迁移,然后就崩了,之后去重新弄好了数据库,并去医院赔礼道歉,毕竟还有一大笔尾款未到账,然后就是医院不停的喊系统慢慢慢,下面就是这次慢慢慢问题的解决。
打开系统日志发现没有打印数据库日志,因为医院做了负载均衡,我们就一台一台的进行了添加数据库日志的配置参数,
logging.level.***.mysqlmapper=debug
然后发现了会在同一时间前端发送了大量的请求去访问同一个接口,导致数据库压力增大。影响其他业务的数据。因此应急情况下暂时关闭了这个功能。然后继续查看日志,发现有两个节点没有接收到请求,因此先去检查了下nginx.conf 的配置,发现并没有什么问题。ping 接受端的端口也可以正常接受到数据,telnet因为是医院内网,无法进行安装程序,导致一时没有找到原因。
后面让实施去医院连在医院内网telnet + ip + 端口号 发现不通,然后问了下,是前一天晚上医院方面给电脑做了升级,结果就是服务器重启,防火墙开开了。然后关闭服务器的防火墙,继续观察日志,发现正常了。
总结下今天的经历,主要是对运维的内容不是很理解。具体思路如下:
1、nginx对后端负载均衡的时候,如果有特别的健康检查模块,就看健康检查是否有问题。如果这种普通的负载均衡,没有做任何cookie活ip_hash的东西,它极大概率是会轮询。
2、如果分配请求不均匀,有的机器无请求,没有健康检查的情况下,就是端口服务报错了,502了,404之类的,nginx不管的,它还会一直转发的。除非你这个端口根本找不到,nginx才会不转发
根据上面的逻辑思路 首先,发现自己没有健康检查,然后就检查端口通不通,因为内网环境没有靠谱的工具检测nginx和后端节点端口通讯情况,只能看看服务器起来了没,防火墙起来了没,导致无法快速定位到问题。