移动互联架构升级:通讯、推送与内容分发一体化演进
|
去年8月那场架构升级,我原以为只是把通讯、推送、内容分发三个模块的API接口合并——结果开发老大拍着桌子说“这哪是合并?这是把三个独立王国揉成面团再烤成面包!”当时他电脑屏幕还开着三个不同版本的PRD,键盘上沾着半块没吃完的蛋黄酥,茶水间的咖啡机正发出“咕嘟咕嘟”的怪响,像在附和他的咆哮。 那天下午三点,测试组的老王突然冲进会议室,举着手机喊:“推送又串了!用户A收到的是用户B的私信内容!”我盯着他手机屏幕上的乱码,突然想起上周五需求评审时,产品总监说“推送和私信的优先级要动态调整”——现在好了,优先级是动态了,内容也跟着动态了。开发小哥蹲在角落里敲键盘,嘴里念叨着“这得改多少个消息队列的路由规则”,而隔壁工位的运营姑娘正疯狂刷新后台,说“用户投诉量已经破千了”。 但说真的,这次升级能活下来,全靠“优胜劣汰”这四个字。比如通讯模块的IM协议,我们砍掉了老旧的XMPP,强行推了自研的协议——虽然开发骂了半个月“这协议文档写得比小学生作文还烂”,但上线后消息延迟从三百毫秒降到八十毫秒,用户在线时长直接涨了十二分钟。再比如内容分发,以前是按用户标签硬推,现在是结合通讯关系链做弱推荐——我敢打包票,这个改动至少让DAU涨了五个点,虽然运营说“留存率掉了一点,但老板只看DAU”。 不过最魔幻的是推送模块的改造。原本推送是独立服务,和通讯、内容分发完全隔离,结果升级后发现,推送频率得跟着通讯活跃度动态调整——比如用户刚和好友聊完天,这时候推一条相关内容,打开率能翻一倍。但这个逻辑有个bug:如果用户同时和五个人聊天,推送频率会飙到每分钟三条,直接触发运营商的限流策略。那天晚上十点,我在机房盯着日志,开发小哥蹲在服务器旁边改配置,运维姑娘举着手机说“用户已经骂到热搜第三了”,而窗外正下着暴雨,雨滴打在玻璃上的声音,和服务器风扇的嗡嗡声混在一起,像在开一场诡异的交响乐。 后来我们想了个歪招:给推送频率加了个“情绪阈值”——如果通讯记录里出现“急”“快”“马上”这类词,推送频率自动降一半;如果出现“晚安”“睡了”“明天聊”,直接停推两小时。这个逻辑虽然简单粗暴,但意外管用——用户投诉量第二天就降了七成,开发小哥还因此得了个月度创新奖,虽然他私下跟我说“这哪是创新?这是被逼出来的野路子”。
文章配图,仅供参考 但最让我无语的是,升级完第三周,产品总监突然说“要在通讯里加个内容推荐入口”——我盯着他递过来的PRD,上面写着“用户聊天时,自动识别关键词并推荐相关内容”。我原以为这是又要加功能,结果他说“不用改架构,就用现有的分发接口,调个参数就行”。后来我才知道,他是在模仿某竞品的“聊天即搜索”功能,虽然那个竞品上个月刚因为过度推荐被用户骂到下架。现在回头看,这次升级能成,核心就两点:一是敢砍老旧模块,二是敢把三个模块的数据流彻底打通。但我也得承认,有些地方做得太糙——比如内容分发的冷启动策略,到现在还得靠人工干预;推送的AB测试框架,至今没跑出过有统计意义的结果。不过老板不管这些,他只看报表上的箭头是向上还是向下——只要箭头向上,哪怕底下是团乱麻,他也会说“干得漂亮”。 对了,上周五开发小哥偷偷告诉我,他正在研究把通讯、推送、内容分发的日志合并分析——说不定明年这时候,我们又能搞出个“聊天行为预测内容消费”的新功能。我听着有点慌,但转念一想,反正架构已经揉成面团了,再烤个蛋糕出来,好像也不是不行? (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


移动互联时代,别用2010年交互逻辑建站
移动互联时代推送为何总被划走?架构师深度解析
移动互联时代设备与服务器协同优化三大突破
5G驱动云架构升级:打造移动互联新优势
移动互联时代:应用驱动的万物互联新架构
物联网+移动互联时代下的数码安全新挑战