首页  >   经验  >   关于TCP通信服务和web服务卡死的综合问题的分析

关于TCP通信服务和web服务卡死的综合问题的分析

codexia 2019-03-21 17:45:23 385 会员文章,禁止转载
tcp   通信   web   卡死  
手机阅读 | 转发赚积分
手机收藏 | 分享给好友
简介关于TCP通信服务和web服务卡死的综合问题的分析,分析一个完整的问题出现的流程。
感谢 阿里云 对本站(本站由阿里云高性能服务器搭建)的赞助支持,本站推荐 →高性能云服务器2折起优惠由此进←↓
高性能云服务器2折起
秒后广告自动消失...会员无广告。点击可关闭广告。

    本文的分析是基于我在公司设计的通信系统和Web系统形成的整体架构在线运行后出现的一次卡死的问题的分析,核心业务的逻辑不予说明,仅就技术点进行分析说明,供朋友们参考。

    TCP通信程序和web服务程序的通信是基于系统的消息队列完成的。

    在一个产品上线后,一到高峰期,就出现了卡顿卡的要死的问题。最后严重到了通信程序不能正常工作、web的连接数爆满、数据库连接数爆满、系统无法正常运作了。最后不得不重启来解决问题。后来经过详细分析,找到了症结,然后改了设计,才将问题根治。

    公司的产品模式和摩拜单车类似,是一个硬件,然后通过手机APP控制,然后付费。这里不具体交代详细的情况,你只要知道大概是这样一个东西即可。为了让APP的控制能够及时收到回复,我采用了同步方式控制。也就是说,APP下发命令后,通过web服务器,传递给TCP通信服务器,再下发给硬件,硬件收到命令后给予回复,回复之后,TCP通信服务器再返回给web服务器[标注],APP才得到结果。在这个过程中,如果没有返回APP端,那么APP端会在等待。通信服务器等待设备响应6秒时间,在这期间,服务器无法处理其他的通信消息。

    问题出现于设备网络延迟,或者设备重启或者设备离线,所有这个现象的根本就在于导致通信服务器持续不断的等待6秒时间,以至于长时间处于等待,无法处理其他消息。这本身和通信消息的处理有关,这里使用了单线程,所以有这个等到导致其他消息无法处理的问题。[标注]这不是本次要说的问题。当然这是改进的一个方向。

    下面给一个示意图:

开通会员,查看全部
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
收藏 0 点赞 1
公众号
微信赞赏
支付宝赞赏
领支付宝大红包
QQ群

相关阅读

  1. 关于TCP通信服务和web服务卡死的综合问题的分析 查找全网同类文章
  2. 程序员必备软件:20 TCP客户端V1.0软件发布:强大、方便、专业 查找全网同类文章
  3. 网络编程之TCP与UDP的区别 查找全网同类文章
  4. 线程, 进程两大常谈的话题:同步, 通信 查找全网同类文章
  5. web.py的url映射匹配解析 查找全网同类文章
  6. 使用多线程避免窗口卡死(假死)的实现方案 查找全网同类文章
  7. Linux下高效的TCP编程内存泄漏内存错误检测调试流程 查找全网同类文章
  8. Linux下进程通信的八种方法 查找全网同类文章
  9. Tcp服务器程序移植开发的经历(Libuv的连续回发数据的坑)总结 查找全网同类文章
  10. TCP客户端连不上云服务器的问题解决办法 查找全网同类文章
分享到:
分享文章[关于TCP通信服务和web服务卡死的综合问题的分析]到QQ空间

相关阅读

猜您感兴趣