IM 架构设计10

本文详细介绍了马蜂窝旅游网IM系统从游击队到正规军的演进过程,包括客户端架构的优化,如使用OpenResty和Lua协程解决php-fmp长连接问题,以及IM数据通道、消息订阅分发的实现原理。文章还探讨了基于Go的分布式IM系统架构设计、服务流程和系统完整性设计,强调了消息的可靠性和可用性,并分享了性能优化的经验和教训。
摘要由CSDN通过智能技术生成

从游击队到正规军(一):马蜂窝旅游网的IM系统架构演进之路

上图模型中消息轮询模块的长连接请求是通过 php-fpm 挂载在阻塞队列上,当该请求变多时,如果不能及时释放 php-fpm 进程,会对服务器性能消耗较大,负载很高。

为了解决这个问题,我们对消息轮询模块进行了优化,选用基于 OpenResty 框架,利用 Lua 协程的方式来优化 php-fmp 长时间挂载的问题。Lua 协程会通过对 Nginx 转发的请求标记判断是否拦截网络请求,如果拦截,则会将阻塞操作交给 Lua 协程来处理,及时释放 php-fmp,缓解对服务器性能的消耗。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值