原标题:PC浏览器消息实时推送的解决方案 ——EPush推送平台
陈华
研发工程师,2014入职去哪儿网。参与研发的EPush推送平台,增强了订单推送的时效性,提高了酒店自助订单处理率。最近负责CEQ订单存储、Elasticsearch集群搭建、维护与优化。参与去哪儿ebooking对接携程、艺龙订单项目的设计与编码。
需求
实现Ebooking系统首页订单核心数据的实时推送,提高酒店自助处理量。
问题
1、如何将订单实时地推送给商家
2、服务器压力
采用轮询的方式实现订单推送,当系统用户增多以及对消息的及时性要求增加时,轮询接口就会对服务器和数据造成巨大的压力。以无线酒店EBooking系统中的订单提醒来说,采用轮询接口(由开始的每3秒增加到后期的每30秒),该接口的qps达到800+/s,每天共计有5千万次请求。随着系统使用率的提高,该接口的qps还会继续提升。当时商家自助处理订单率40%左右。我们的期望值是达到60%。需要从轮询订单总数改为轮询查询订单核心数据。
解决方案
方案一:继续使用轮询的方式,增加服务器,申请新的数据库,继续保持30秒的轮询间歇或者更长,会有很多无效请求。
方案二:采用WebSocket的方式,实现服务端推送消息。
选框架:采用这种方式的问题又来了,我们还有部分商户使用的是IE