本文p{转^C务负责h王计宽分享,原题“转{pushpȝ的演q之?#8221;Q下文有修订和重新排版?/p>
思义Qpush是是借助厂商通道把消息发送给用户的一U方式,一般用于用L召回和活动触达,和即旉讯IM在业务上E有区别Q但技术逻辑上是盔R的Q不在此处赘q?/p>
本文从0开始讲讲{转千万用户量消息推送系l的架构演进和P代过E,以及遇到的常见问题的解法Q希望能带给你启发?/strong>
技术交:
- Ud端IM开发入门文章:?a rel="noopener nofollow" target="_blank" style="color: #1d58d1; text-decoration-line: none;">新手入门一就够:从零开发移动端IM?/p>
- 开源IM框架源码Q?a rel="noopener nofollow" target="_blank" style="color: #1d58d1; text-decoration-line: none;">https://github.com/JackJiang2011/MobileIMSDKQ?a rel="noopener nofollow" target="_blank" style="color: #1d58d1; text-decoration-line: none;">备用地址ҎQ?/p>
以下是本文涉及到的一些技术术语的解释Q?/strong>
现有的架构支持后台推送、业务推送以及个性化推荐推送?/p>
以下是相x送业务的特点Q?/strong>
步骤Q?/strong>
问题Q?/strong>
解决ҎQ?/strong>
遗留的问题:PM上传了一个浏览过手机cȝ用户的数据集合,数据量太大,上传时?strong>PSQ?/strong>用户量大概在1000w左右+Q大U?00M左右的文件?/p>
提示Q?/strong>
问题描述Q?/strong>重大节日Q推送全量用戗月zR周zL据,每次仅是文案不同QPM都需要跑大数据系l,效率太低Q当天数据不可获得,q_推送需?个多时?/p> 要求Q?/strong> 分析-数据量(?000w月活ZQ: 分析-性能Q以2000w月活ZQ: 隄分析Q?/strong> 解决ҎQ?/strong> 最l选择redis的zsetq行存储?/p> 首先分析之前之所以慢的原因: 解决ҎQ?/strong> 注意Q?/strong>iOS通道Q我们用的pushy开源工P特定情况下无法持l推送消息,需要定时检查,重新创徏通道?/p> 最后的效果Q?/strong>push推送的QPS辑ֈ3w+Q推送能力提升的同时Q也引发了以下问题?/p> 问题描述Q?/strong>当push的推送能力上M之后Q?用户的瞬时访问问题随之而来 push落地效果Q?/strong> 解决办法Q?/strong> 问题描述Q?/strong>有一天晚?Ҏ送了一个运营类的push,发现居然点击率超U高Q是文案优秀Q还是流量高峎ͼ 要求Q?/strong>存在多个推送文案,pȝ能够择优选择点击率最好的q行推送? 解决方式Q?/strong>加入AB的能力Q先q行量用户推送,ҎAB的效果,择优推? 新的问题Q?/strong>之前安卓的通道我们仅有米通道+个推Q个推达到率一般,做托底)Q?如果我们向华为手机推送消息,也是通过米通道是很隑ֈ辄?/p> 要求Q?/strong> 解决方式Q?/strong> 效果Q?/strong>当年l计能够提高10%的达到率?/p> 一般的监控l度包含Q?/strong> 现状Q?/strong> 提高速度Q?/strong>预加?~存+多线E?合理的数据结?扚w处理+合理布局+Ҏ埋点?/p> 折中ҎQ?/strong>异步上传、限控制、降U处理、分层解耦、补偉K知?/p> [2] 族2500万长q接的实时消息推送架构的技术实践分?/a> [4] ZWebSocket实现HybridUd应用的消息推送实?含代码示? [7] Go语言构徏千万U在U的高ƈ发消息推送系l实?来自360公司) [10] 技术干货:从零开始,教你设计一个百万的消息推送系l?/a> [12] 喜马拉雅亿用户量的ȝ消息推送系l架构设计实?/a> [13] 消息推送技术干货:团实时消息推送服务的技术演q之?/a> [14] 揭秘vivo百亿U厂商消息推送^台的高可用技术实?/a> [15] 得物从零构徏亿消息推送系l的送达E_性监控体pL术实?/a> Q本文已同步发布于:http://www.52im.net/thread-4852-1-1.htmlQ?/a>5.2 如何提高发送性能
5.3 业务服务器扛不住瞬时量
6、AB实验?/h1>
7、整合全部手机厂商ROOM推送通道
8、消息送达监控
9?本文结
10?参考资?/h1>
RainbowTalk是一套基于MobileIMSDK的品鸿蒙NEXT端IMpȝQ目前已正式发布。纯ArkTS、从零编写,无套壟뀁没走捷径,每一行代码都?#8220;U?#8221;Q?span style="color: #888888;">详见Q?/span>RainbowTalk详细介绍?/span>Q?/p> MobileIMSDK是一整套开源IMx通讯框架Q历l?0q_轻量、高度提|一套API优雅支持 UDP 、TCP 、WebSocket 三种协议Q支?iOS、Android、H5、标准Java、小E序、Uniapp、`蒙NEXTQ服务端ZNetty~写?br /> 1Q?/em>支持文本消息、语音留a消息、图片消息、大文g消息Q?span style="color: #808080;">支持断点上传 RainbowTalkU上版本目前仅作演示和研I之用,q行环境配置最化Q仅1?G?MB带宽Q,请客观评估?/p> Q?strong>本文内容引用自:http://www.52im.net/thread-4822-1-1.htmlQ?/p>
MobileIMSDK工程的开源地址是:2、功能简?/h2>
2Q?/em>支持一对一陌生天模式;
3Q?/em>支持一对一正式好友聊天模式Q?br />4Q?/em>支持多对多群聊聊天模式;
5Q?/em>完善的群l信息管理:建群、退、解散、{让、邀诗踢人、群公告{;
6Q?/em>完整的注册、登陆(同时支持手机验证码登录和密码dQ、密码找回等功能闭环Q?br />7Q?/em>个h中心功能Q改基本信息、改个性签名、改头像、改密码{;
8Q?/em>支持个h相册查看Q?br />9Q?/em>完整的离U消?指o拉取机制Q?br />10Q?/em>完整的本地消?指o~存机制Q节省网l流量;
11Q?/em>完整的富媒体文gQ?span style="color: #808080;">语音、大文g、图片、短视频Q缓存机Ӟ节省|络量Q?br />12Q?/em>完整的好友关pȝ理:查找好友、发求、处理请求、删除好友、好友备注等Q?br />13Q?/em>其它未提及的功能和特性请自行下蝲体验?/p>3、登陆和注册{?/h2>
4、首늭主要界面
5?#8220;我的”?#8220;个h中心”{页?/h2>
6、好友关pȝ
7、陌生h聊天
8、好友聊?/h2>
9、世界频道聊?/h2>
10、群聊和管?/h2>
11、大文g消息
12、短视频消息
13?#8220;个h名片”消息
14?#8220;名?#8221;功能
15?#8220;扫一?#8221;功能
16?#8220;搜烦”功能
17?#8220;消息转发”功能
18?#8220;消息引用”功能
19?#8220;@”功能
20?#8220;消息撤回”功能