关于系统并发问题,请各位 V 友帮忙分析下。

查看 78|回复 4
作者:SANJI59   
公司业务是物联网方向的,开发产品是共享充电桩,现在系统到了瓶颈期目前已经部署的在线设备量 1500 台左右系统预计部署 1w+。最近发现随着设备量的递增系统方面出现了 BUG ,不确定是否是并发问题还是程序代码问题,五一前以为是 SQL 问题然针对慢 SQL 一顿优化可以系统卡顿问题已解决,但是设备消息处理问题还是没解决,1000 台设备在线 30 秒最少有 1000 条消息。也没确定出现问题的原因。
业务流程是这样的,用户小程序扫码设备进入选择充电界面这时候会连接一个 WebSocket 并订阅一个设备的消息主题。当用户选择端口开启充电时,服务器会下发指令给设备,设备开启充电时会返回开启端口成功的指令到服务器,在服务再将消息处理之后使用 ws 推送给前端小程序表示订单已开启。
目前出现的问题是用户扫码开启端口充电时后台没有推送 WS 消息,导致订单处于为正常开启的状态(故障)其实设备已经回复开启成功了但是服务器还没有处理过来。出现问题的时间都是高峰期(下午六七点)。系统到这个点进行中订单有 800 多个。但是系统有时候会出现此问题有时候有没有。
目前问题不好确定导致不好下手解决,根据观察到的问题可能是出在高并发,WebSocket
使用的 Java 开发,处理设备业务消息使用线程池,WebSocket 、单服务、服务器 8 核 16G 。麻烦各位 V 友帮忙分析下。有好的设计思路和框架也可以向我提供。我可以跟公司申请有偿

WebSocket, 开启, 设备, 设备量

opengps   
主要就是找到瓶颈点,逐个击破即可
具体问题点出在哪,单看这段问题是没办法准确定位的
opengps   
我现在能盲猜到一个因素是,你现在的 websocket 建立连接太慢
brader   
ws 断线重连机制做了吗?心跳机制做了吗?及时剔除下线客户端,减轻 ws 连接列表维护的压力,然后记录一下 ws 连接数或者开个服务可以查询到连接数,还要记录或者能看到一次请求过来到响应的具体时长,观察下高峰期的数据,以及服务器的 cpu ,内存,带宽状况
shore507   
你这种情况建议长连接的服务就不要自己做了,用云服务比较好。另外从业务上来说,你小程序上的 ws 其实不是必要的,用户支付后用 api 获取订单详情即可,从业务流程上想办法省掉 ws 应该是可行的
您需要登录后才可以回帖 登录 | 立即注册

返回顶部