马蜂窝定制游抢单系统设计与功能核心
同一个浏览器多个 tab 页复用 conn id,互相广播,对于活跃窗口如果出现没有监听的消息,广播到活跃窗口上去。 图4-抢单系统消息通知与广播 3. 重试机制 网络异常是不可避免的,我们不知道什么时候网络会断,导致长连接断掉,会对消息通知带来影响。采用重试机制,限定时间周期,监听网络有没有异常。在长连接断开时指定短时间内自动重试,超过最多重试次数后,自动延长重试间隔,防止服务异常雪崩问题。 图5-重试机制 4. Lua 协程 最初长连接请求打到服务器之后,服务器的承接方式是通过 PHP 进程。项目上线后发现了一个问题,服务器上的请求长时间挂在一个比较高的点上,可以处理的长连接需求受限。而且特点是内存比较大,但 CPU 消耗比较小。后来我们采用了 Lua 协程的解决方案,不是把请求转到 PHP FPM 上,而是转接到 Lua 上,减少内存的消耗。 小结与未来规划 定制抢单功能的上线促进了供应商之间的良性竞争,能够适应供应商服务能力和资源控制力多样性而进行动态分配,确保用户的需求得到充分满足,另外,也在一定程度上促进了供应商内部的定制师考核制度不断完善。更重要的是,使定制游平台上的收益转化率有了超过 70% 的明显提升。 本文作者:王伟阳,马蜂窝技术专家,2017 年加入马蜂窝,现负责马蜂窝电商度假业务开发。2010 年研究生毕业于中国农业大学,曾在甲骨文、百度工作,先后从事分布式拓扑环境任务调度与报告系统,工程效率与质量平台与工具,评估测评系统等方向的研发工作。 【本文是51CTO专栏作者马蜂窝技术的原创文章,作者微信公众号马蜂窝技术(ID:mfwtech)】 戳这里,看该作者更多好文 【编辑推荐】
点赞 0 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |