MQ服务器奔溃解决过程

1、MQ服务器崩溃调节:   

          今天具安卓前端反应, 从昨天下午开始线上服务器使用 电话号码登陆和 使用电话号码注册功能不能使用,  

                经过前端仔细排查怀疑是后端问题,之后经过与ios前端 确认, 定位为后端服务器问题。

          分析问题: 昨天下午之前未发生问题, 期间未改动过代码, 应该是服务器问题。 通过查询 硬盘占有量 cup占有率等 常规手段 没有定位到服务器异常。

                之后考虑为数据库异常,因为安卓模拟器上返回信息为手机号未注册, 将本地代码数据库连接上 生产环境数据库, 和安卓前端进行联调,

                发现返回值确实异常,未从数据库中查到信息, sql语句拷贝到navicat中执行, sql语句无吴。 近一步定位此问题, 发现是在安卓模拟器上

                上传的参数有误,不能从数据库中查找到, 改正参数传入, 后端能从数据库中拿到数据,但是模拟器陷入了无限等待。

          分析上述情况: 在后端代码中发生了阻塞, 于是逐步排查。

                发现在调用MQ消息发送语句的时候发生阻塞。注释该代码,运行正常  ,确定该代码有误。将 mq连接地址改为测试 MQ, 可以运行 

                 于是,定位到 服务器 的 MQ 异常,此异常符合 具体情况描述。

          打开MQ, 发现是其中的存储文件太多,疑似将 MQ服务器撑爆。 删除部分 log文件,运行发现 关闭 MQ服务器(以下使用 服务器代称),发现关闭失败。

                 随通过端口查询进程id, 并kill 这些进程。  出现问题: 服务器不能进行启动。

                之后通过网上查询 并通过控制台查看具体信息, 发现类似方法: activemq.xml文件中的 0.0.0.0 改为 127.0.0.1 ,再次启动 未果  。

                其它类似方法也有一一尝试, 均告失败。

        通过博客:https://blog.csdn.net/xiaobao5214/article/details/52222655 ,其中信息与我们的基本类似, 其解决方法 要求 重置服务器名称(linux服务器,要求不能有下划线和特使字符),

                 考虑生产环境情况复杂, 不敢随意尝试该方法 。

        最后定下方案: 尝试自己删除部分 data目录下的文件,并将 在前面尝试过程中的所有配置更改 回复原来面目。如果再不行 就卸载重装 一个服务器。

        再删除了 db.data之后, 发现服务器正常启动, 之后运行项目, 并监听服务器,发现其能够正常接收 响应消息。 

posted @ 2018-04-24 13:13  阿肯新  阅读(1016)  评论(0编辑  收藏  举报