node菜单服务引起的后台异常表象到运维释放从库的数据库连接及驱动修改配置,重新部署生效

news/2025/10/4 11:23:17/文章来源:https://www.cnblogs.com/oktokeep/p/19125426

node菜单服务引起的后台异常表象到运维释放从库的数据库连接及驱动修改配置,重新部署生效

node菜单服务引起的后台异常表象到运维释放从库的数据库连接及驱动修改配置,重新部署生效

1.刚开始判断是node服务挂了,jenkins启动失败,尝试从客户端来启动的思路:

root@VM-1-225-centos:/usr/local/auto-node-project-pro-20039 $ ll
total 404
-rw-r--r-- 1 root root    887 Sep 28 11:31 apollo.js
drwxr-xr-x 6 root root   4096 Sep 28 11:31 app
-rw-r--r-- 1 root root    560 Sep 28 11:31 app.js
-rw-r--r-- 1 root root    180 Sep 28 11:31 app.ts
-rw-r--r-- 1 root root    242 Sep 28 11:31 appveyor.yml
drwxr-xr-x 2 root root   4096 Sep 28 11:31 config
lrwxrwxrwx 1 root root     67 Sep 28 11:31 node_modules -> /data/tmp/deploy/auto-node-project-pro-20039/node_modules
-rw-r--r-- 1 root root   1513 Sep 28 11:31 package.json
-rw-r--r-- 1 root root    506 Sep 28 11:31 README.md
drwxr-xr-x 2 root root   4096 Sep 28 11:32 run
drwxr-xr-x 3 root root   4096 Sep 28 11:31 test
-rw-r--r-- 1 root root    776 Sep 28 11:31 tsconfig.json
drwxr-xr-x 4 root root   4096 Sep 28 11:31 typings
-rw-r--r-- 1 root root 358764 Sep 28 11:31 yarn.lock
node发布目录下如何清除logs或者如何重启node服务

# 1. 停止服务
pm2 stop all # 若使用PM2管理
# 或
pkill -f node

# 2. 检查进程是否终止
ps -ef | grep node

# 3. 重新启动
pm2 start /path/to/app.js # PM2示例
# 或
node /path/to/app.js --prod

npm install -g pm2
pm2 start app.js # 启动
pm2 restart app # 重启

验证建议
# 检查服务实际运行状态
curl http://localhost:3000/health  # 替换为实际健康检查接口# 检查端口占用
netstat -tulnp | grep 30192
# 测试接口连通性
curl -I http://localhost:3000端口与接口测试‌
验证端口监听:netstat -tulnp | grep <PID>(PID从pm2 list获取)
接口连通性测试:curl -I http://localhost:<PORT>/health(替换为实际端口和健康检查路径)

pm2 list 是 Node.js 进程管理工具 PM2 的命令,用于列出当前由 PM2 管理的所有应用程序及其状态信息。
常用场景‌
快速查看所有进程状态:
pm2 list
筛选特定状态的进程(如仅显示异常的):
pm2 list --status errored
结合其他命令管理进程(如重启、停止):
pm2 restart 0 # 通过 id 操作
pm2 stop api # 通过 name 操作

# 查看实时日志
pm2 logs app --lines 50若需消除警告,执行pm2 save保存当前配置
pm2 startup
pm2 save日志路径问题
PM2默认日志路径为/root/.pm2/logs/,若该目录权限不足或磁盘空间已满会导致日志写入失败。可通过以下命令检查:df -h /root
du -sh /root/.pm2/logs/                  查看指定目录大小

解决方案
强制应用输出日志:
pm2 restart app --time
检查应用真实状态:
pm2 describe app
查看完整日志路径配置:
pm2 show app
若为磁盘问题,可临时清理日志:
pm2 flush app

异常处理流程
若后续出现服务停止:

检查日志:pm2 logs app --lines 50 详细日志‌:可通过 pm2 logs 查看实时日志。
查看崩溃原因:pm2 show app -f
重启服务:pm2 restart app --update-env


若发现服务频繁重启:

检查未捕获异常:pm2 logs app --error聚焦错误日志
验证依赖服务(如数据库)连通性 【主要原因】
同步PM2配置:执行pm2 save解决配置不一致警告

测试健康状态:
curl -I http://172.16.1.XXX:20039/health
curl: (7) Failed connect to 172.16.1.XXX:20039; Connection refused
curl -I http://172.16.1.YYY:20039/health
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
x-download-options: noopen
x-readtime: 0
keep-alive: timeout=5
content-length: 75
Date: Sun, 28 Sep 2025 05:16:50 GMT
Connection: keep-alive

 

2.发现了问题的本质: jenkins控制台输出的内容,很关键,这是突破口:
从源头上抓住问题:jenkins控制台实际上输出了关键的错误信息:{"name":"SequelizeConnectionError","message":"connect ETIMEDOUT"}
错误原因
网络连接问题‌:客户端与数据库服务器之间的网络不通或延迟过高,导致在规定时间内无法建立连接。常见于跨地域访问或防火墙限制的场景。
服务器配置问题‌:数据库服务未启动、监听地址/端口配置错误,或防火墙阻止了连接请求。
资源限制‌:数据库服务器负载过高无法响应新连接

基础检查‌:使用ping或tracert命令测试网络连通性(若服务器禁ping则改用telnet测试端口)

应用中的根本原因是:云上资源有数据库主库和从库,考虑到成本,将从库资源释放,导致服务启动的时候,连接到从库的资源都报错了。

mysql连接命令:
mysql --version
mysql -h172.16.23.51 -P3306 -uatdb_r_h5 -ppwd

ping 172.16.23.51 # 测试主机可达性
telnet 172.16.23.51 3306 # 测试端口开放性

 

3.将从apollo mysql客户端根据关键字查询,看影响到了哪些服务,哪些需要修改连接字符串和驱动名称(注意还有一些本地的profile文件的连接数据库的也需要修改):
2025-09-28 15:39:21.315 [http-nio-1168-exec-8] [489ce5c47a4990d5,489ce5c47a4990d5] WARN o.s.b.a.h.AbstractHealthIndicator#health [line:46] - Health check failedorg.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Must specify at least one slave host to connect to for master/slave replication load-balancing functionality
Caused by: java.sql.SQLException: Must specify at least one slave host to connect to for master/slave replication load-balancing functionality
检查数据源配置‌:确保在JDBC URL或连接池配置中至少指定了一个从库主机,格式应为jdbc:mysql:replication://master-host,slave-host1,slave-host2/database

com.mysql.jdbc.ReplicationDriver
连接字符串关键字: replication 去掉,jdbc:mysql:replication://master-host,slave-host1,slave-host2/database 修改成 jdbc:mysql://master-host/database

DEMO:driver-class-name: "com.mysql.jdbc.ReplicationDriver"url: "jdbc:mysql:replication://master-host:3306,slave-host1:3306/database?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&autoReconnect=true"修改成:driver-class-name: "com.mysql.jdbc.Driver"url: "jdbc:mysql://master-host:3306/database?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&autoReconnect=true"

 

4.部署问题,deployJavaHasConsul,deploy,deploy_no_slb 联系运维解决,估计不单单修改发布的类型,负载均衡的脚本配置,还涉及的脚本文件的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927074.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

制作网站难还是编程难简约网站后台

目录 linux用户相关linux挂载网络共享文件wsl相关docker相关配置打包镜像导出镜像导入镜像window清理wsl和docker空间window查看网络中计算机的ipv4linux用户相关 添加新用户sudo adduser --home /home/<用户名> <用户名>查看权限id <用户名>添加权限sudo us…

微商本地化发展模式的借鉴与探讨——以开源AI智能名片链动2+1模式S2B2C商城小工具为例

微商本地化发展模式的借鉴与探讨——以开源AI智能名片链动2+1模式S2B2C商城小工具为例pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; …

镇江方圆建设监理咨询有限公司网站丰都县网站

——如何培养核心人才&#xff0c;使企业持续保持竞争力 【客户行业】环保行业 【问题类型】人才培养 【客户背景】 某环保有限公司成立于2002年&#xff0c;位于南方某二线城市&#xff0c;是一家以处理废弃物、废旧资源为主的设备制造的民营企业&#xff0c;拥有从事专业…

微服务网关深度设计:从Spring Cloud Gateway到Envoy,流量治理与安全认证实战指南 - 指南

微服务网关深度设计:从Spring Cloud Gateway到Envoy,流量治理与安全认证实战指南 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importa…

网站无法做301重定向免费做流程图的网站

腾讯云轻量服务器和云服务器CVM该怎么选&#xff1f;不差钱选云服务器CVM&#xff0c;追求性价比选择轻量应用服务器&#xff0c;轻量真优惠呀&#xff0c;活动 https://curl.qcloud.com/oRMoSucP 轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&#xff0c;540元三…

Docker 部署 RAGFlow 全流程教程

本文介绍开源下一代RAG系统RAGFlow的特点(检索增强生成、插件化设计等),详解其Docker部署前的软硬件准备、环境参数设置、镜像下载(含版本选择)、容器启动(含仓库克隆原因)、配置文件说明、搜索引擎切换及常见问…

搜狗网站优化软件网站与手机app是一体吗

spock 集成测试在Grails单元测试中&#xff0c;可以轻松使用Grails随附的Spock框架来模拟或存根协作者&#xff08;例如服务&#xff09;。 “ 测试”一章对模拟协作者&#xff0c; doWithSpring / doWithConfig回调方法&#xff0c;在测试中模拟bean的FreshRuntime批注进行了…

工程业绩在建设厅网站都能查到在线教育自助网站建设平台

基于人工电场算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于人工电场算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于人工电场优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

济南网站建设首选传承网络成都游戏软件开发公司有哪些

学习了博主的介绍&#xff08;深度学习中的FLOPs介绍及计算(注意区分FLOPS)-CSDN博客&#xff09;后&#xff0c;对我不理解的内容做了一点补充。 链接放到下边啦 https://blog.csdn.net/qq_41834400/article/details/120283103 FLOPs&#xff1a;注意s小写&#xff0c;是floa…

信用网站标准化建设商品网站做推广

目录 引入 一、Matplotlib模块&#xff08;常用&#xff09; 1、绘图流程&常用图 ​编辑 2、绘制子图&添加标注 ​编辑 3、面向对象画图 4、Pylab模块应用 二、Seaborn模块&#xff08;常用&#xff09; 1、常用图 2、代码示例 ​编辑 ​编辑 ​编辑 ​…

微信做模板下载网站中信建设有限责任公司 乔峰手机

基本思想希尔排序&#xff08;Shells Sort&#xff09;&#xff0c;以发明人命名&#xff0c;又称为缩小增量排序&#xff0c;也是一种插入排序算法。主要思想&#xff1a;直接插入排序算法时间和待排数据有关&#xff0c;其平均复杂度是O(n^2)&#xff0c;但是在待排数据已经有…

国外做做网站西安做网站程序

文章说明&#xff1a; Linux内核版本&#xff1a;5.0 架构&#xff1a;ARM64 参考资料及图片来源&#xff1a;《奔跑吧Linux内核》 Linux 5.0内核源码注释仓库地址&#xff1a; zhangzihengya/LinuxSourceCode_v5.0_study (github.com) 1. 水位管理和分配优先级 页面分配…

深入解析:从零起步学习Redis || 第四章:Cache Aside Pattern(旁路缓存模式)以及优化策略

深入解析:从零起步学习Redis || 第四章:Cache Aside Pattern(旁路缓存模式)以及优化策略pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !impor…

K6的CI/CD集成在云原生应用的性能测试应用 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Python生态最优秀的webapp框架有哪些? - 教程

Python生态最优秀的webapp框架有哪些? - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &q…

沈阳设计网站wordpress小白能学会吗

目录 接口断言介绍接口断言方式介绍响应状态码断言 课程目标 掌握什么是接口断言。了解接口断言的多种方式。掌握如何对响应状态码完成断言。 思考 这两段代码是完整的接口自动化测试代码吗&#xff1f; …省略… when().get(“https://httpbin.ceshiren.com/get?namead&…

做网上夫妻去哪个网站网站制作对公司的作用

注&#xff1a; &#xff08;1&#xff09;ddt数据驱动中&#xff0c;测试用例的执行次数是由data&#xff08;&#xff09;传参的个数决定。传几个参数&#xff0c;就是执行几次测试用例。 &#xff08;2&#xff09;如果传的是多个元组&#xff08;列表&#xff09;,那么可…

深度解码电子设计可靠性:形式验证(Formal Verification)如何护航 IC 高质量之路

在现代 IC 设计中,错误的代价极高,尤其在安全关键场景中更是不可容忍。这时,形式验证(Formal Verification Methodology)以其数学逻辑为基础,对设计进行全面、严格地验证,成为确保可靠性与功能正确性的基石。什…

怎样创建一个自己的网站wordpress 客户端配置文件

选专业看上去非常简单&#xff0c;但是真正做起来的时候确实不容易&#xff0c;因为对于很多结束高考的学生来说&#xff0c;选专业就意味着他们选择自己的未来&#xff0c;这可是直接关系到未来的学习和职业发展&#xff0c;关系到将来的就业方向&#xff0c;再加上现在的社会…

海尔建设此网站的目的是什么wordpress使用iis

go 实现可重入锁 实际上&#xff0c;Go 语言标准库中的 sync.Mutex 是不可重入的。但是&#xff0c;我们可以基于 sync.Mutex 实现一个可重入锁&#xff08;ReentrantLock&#xff09;。下面是一个简单的可重入锁的实现示例&#xff1a; Go 1package main 2 3import ( 4 "…