??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩视频一区二区三区四区,国产精品视频男人的天堂,国产97色在线http://www.aygfsteel.com/专注于Java技?/description>zh-cnMon, 04 Aug 2025 14:43:45 GMTMon, 04 Aug 2025 14:43:45 GMT60转{千万U用户量消息推送系l的架构演进之\http://www.aygfsteel.com/jb2011/archive/2025/07/24/451651.htmlJack JiangJack JiangThu, 24 Jul 2025 07:58:00 GMThttp://www.aygfsteel.com/jb2011/archive/2025/07/24/451651.htmlhttp://www.aygfsteel.com/jb2011/comments/451651.htmlhttp://www.aygfsteel.com/jb2011/archive/2025/07/24/451651.html#Feedback0http://www.aygfsteel.com/jb2011/comments/commentRss/451651.htmlhttp://www.aygfsteel.com/jb2011/services/trackbacks/451651.html

本文p{转^C务负责h王计宽分享,原题“转{pushpȝ的演q之?#8221;Q下文有修订和重新排版?/p>

1、引a

֐思义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本文已同步发布于:http://www.52im.net/thread-4852-1-1.htmlQ?/a>

2、术语解?/h1>

以下是本文涉及到的一些技术术语的解释Q?/strong>

  • 1Q?/strong>业务属性:q营、业务、功能类推送;
  • 2Q?/em>推送范? 月活、全量、定向推送、个性化推送;
  • 3Q?/em>目标端:一般是安卓、ios客户端;
  • 4Q?/em>通道Q小c뀁华为、魅族、apns{手机厂商的帔Rq接Q?/li>
  • 5Q?/em>tokenQ?用于讑֤的唯一标识Q由APP本n生成Q?/li>
  • 6Q?/em>devicetokenQ用于推送的唯一标识Q一般由厂商提供Q?/li>
  • 7Q?/em>推送量Q推送消息的数量Q?/li>
  • 8Q?/em>到达率:消息到达手机的数?推送量Q?/li>
  • 9Q?/em>点击率:用户点击?推送量?/li>

3、当前架构概?/h1>

现有的架构支持后台推送、业务推送以及个性化推荐推送?/p>

以下是相x送业务的特点Q?/strong>

  • 1Q?/em>后台推送:一般会有标准的格式Q特Ҏ旉短、推送量大,比如8点秒杀zdQ?/li>
  • 2Q?/em>业务推?Q一般都是业务触发,特点是实时性强、优先高,如订单支付消息;
  • 3Q?/em>个性化推送:l常会和用户d相关Q特Ҏ{略复杂、内容多P需要有风控理Q如猜你喜欢{推荐策略?/li>

4、技术背?#8212;—PMx送运营活?/h1>

步骤Q?/strong>

  • 1Q?/em>PM从大数据q_上导Z部分用户集合Q?/li>
  • 2Q?/em>RD写程序调用push接口?/li>

问题Q?/strong>

  • 1Q?/em>N个PM都有需求,RD..........Q?/li>
  • 2Q?/em>8Ҏ一个突发情况,9Ҏ一波;
  • 3Q?/em>每周末都要活动,推送?/li>

解决ҎQ?/strong>

  • 1Q?/em>搭徏一个后収ͼ支持Ҏ用户ID上传Q解攑ּ发资源;
  • 2Q?/em>支持按照旉推送,支持文案可配Q?/li>
  • 3Q?/em>支持安卓、IOS分端推送?/li>

遗留的问题:PM上传了一个浏览过手机cȝ用户的数据集合,数据量太大,上传时?strong>PSQ?/strong>用户量大概在1000w左右+Q大U?00M左右的文件?/p>

提示Q?/strong>

  • 1Q?/em>上传的时间大U在1分钟左右Q?需要联p运l设|最长的链接旉Q否则nginx会主动断开Q?/li>
  • 2Q?/em>上传由同步上传,Ҏq度条的方式Q让上传者可以看到进度;
  • 3Q?/em>上传和数据处理分开Q我们当时是边上传,边解析文件比较慢Q?/li>

5、希望重大节日能够即旉知到活跃用?/h1>

5.1 实时?/h3>

问题描述Q?/strong>重大节日Q推送全量用戗月zR周zL据,每次仅是文案不同QPM都需要跑大数据系l,效率太低Q当天数据不可获得,q_推送需?个多时?/p>

要求Q?/strong>

  • 1Q?/em>1亿的数据能够在一时内推送完毕;
  • 2Q?/em>要覆盖到某一个周期内的用P比如一个月Q;
  • 3Q?/em>支持预览Q支持暂停?/li>

分析-数据量(?000w月活ZQ:

  • 1Q?/strong> 全量用户认定3个月Q?0天)内访问过转{的用P
  • 2Q?/em> 预估所有设备数量在5000w左右Q?/li>
  • 3Q?/strong> 预计占用的空间ؓ5G?/li>

分析-性能Q以2000w月活ZQ:

  • 1Q?nbsp;老系lpush的^均QPS?000Q?/li>
  • 2Q?/strong> 2000W/2000/60/2=83~=1时20分钟Q希望能够在12分钟内推送完毕(一个小时推?亿的指标Q?/li>

隄分析Q?/strong>

  • 1Q?/em> 数据做到准实Ӟ怎么准实时Q?/li>
  • 2Q?/em>2000千万的数?2分钟内推送完毕,QPS~=2.7wQ?如何让性能提升13.5倍(2k提升?.7w的ƈ发)?/li>

解决ҎQ?/strong>

  • 1Q?nbsp;数据的准实时:实时接收kafka日志消息Q每分钟把清z的数据q行合ƈQ?/li>
  • 2Q?/em>需要存储的数据要素Q用Ltoken信息Q注意不是devicetokenQ;此token的活跃时_旉戻IQ?/li>
  • 3Q?/em>用户数据存储选型?/li>

最l选择redis的zsetq行存储?/p>

5.2 如何提高发送性能

首先分析之前之所以慢的原因:

  • 1Q?nbsp;单线E发送;
  • 2Q?nbsp;受到厂商通道的限Ӟ单接口耗时100ms+(IOS通道)?/li>

解决ҎQ?/strong>

  • 1Q?/em>区分安卓、IOS单独发送,原始E序只负责从redis拿到数据后拼装成固定l构Q简单拼接操作速度很快Q?
  • 2Q?/em>把数据推送到MQ中(可以不用MQ吗?Q?
  • 3Q?/em>多个消费订阅者,q行消费(Ҏ扩展)Q通过厂商 通道推送出厅R?/li>

注意Q?/strong>iOS通道Q我们用的pushy开源工P特定情况下无法持l推送消息,需要定时检查,重新创徏通道?/p>

最后的效果Q?/strong>push推送的QPS辑ֈ3w+Q推送能力提升的同时Q也引发了以下问题?/p>

5.3 业务服务器扛不住瞬时量

问题描述Q?/strong>当push的推送能力上M之后Q?用户的瞬时访问问题随之而来

  • 1Q?/em>瞬时的流量高峎ͼD时增多Q?/li>
  • 2Q?/em>部分h到达性能瓉Q超时增多,面打不开~,见下图?/li>

push落地效果Q?/strong>

解决办法Q?/strong>

  • 1Q?/em>最单的办法Q加机器Q?/li>
  • 2Q?/em>业务接口多线E、服务治理,消峰QratelimitQ;
  • 3Q?/em>app核心功能增加~存Q保证不会出现白屏的情况Q?/li>
  • 4Q?/em>减少zd路径。(一般push都会落地到某一个活动页面。但是正常打开pushQ都会先q入首页Q在跌{到活动页面。给push的消息增加特D埋点,如果是此cpush消息Q就直接 跌{到特定页面,减少中间环节。)

6、AB实验?/h1>

问题描述Q?/strong>有一天晚?Ҏ送了一个运营类的push,发现居然点击率超U高Q是文案优秀Q还是流量高峎ͼ

要求Q?/strong>存在多个推送文案,pȝ能够择优选择点击率最好的q行推送?

解决方式Q?/strong>加入AB的能力Q先q行量用户推送,ҎAB的效果,择优推?

7、整合全部手机厂商ROOM推送通道

新的问题Q?/strong>之前安卓的通道我们仅有米通道+个推Q个推达到率一般,做托底)Q?如果我们向华为手机推送消息,也是通过米通道是很隑ֈ辄?/p>

要求Q?/strong>

  • 1Q?/em>希望能够把大厂的厂商通道都接q来Q?/li>
  • 2Q?/em>推送的消息能够Ҏ用户最后登录的通道q行优化推送;
  • 3Q?/em>速度不能慢下来?/li>

解决方式Q?/strong>

  • 1Q?nbsp;搭徏tokens服务Q能够批量判定devicetoken的最后用的厂商Q需要依赖{转客L上报Q;
  • 2Q?nbsp;分库分表的方式进行存储;
  • 3Q?/strong> 数据热备到缓存中?/li>

效果Q?/strong>当年l计能够提高10%的达到率?/p>

8、消息送达监控

一般的监控l度包含Q?/strong>

  • 1Q?/em>产品U:转{、找靓机{等Q?/li>
  • 2Q?/em>客户?安卓、IOSQ?/li>
  • 3Q?/em>指标Q发送、到达、点ȝ数量和比例;
  • 4Q?/em>数据ҎQ模ѝ周期;
  • 5Q?/em>通道Q小c뀁华为、vivo、apns?/li>

9?本文结

现状Q?/strong>

  • 1Q?/em> 推送月z?0分钟Q?/li>
  • 2Q?/strong> 支持暂停、预览,实时查看推送数据量Q?/li>
  • 3Q?/strong> 支持提前AB看效果;
  • 4Q?/strong> 支持不在U,微信通知Q?/li>
  • 5Q?/strong> 支持防打扎ͼ
  • 6Q?/strong> 支持优先U和厂商高优通道?/li>

提高速度Q?/strong>预加?~存+多线E?合理的数据结?扚w处理+合理布局+Ҏ埋点?/p>

折中ҎQ?/strong>异步上传、限控制、降U处理、分层解耦、补偉K知?/p>

10?参考资?/h1>

[1] 极光推送系l大规模高ƈ发架构的技术实践分?/a>

[2] 族2500万长q接的实时消息推送架构的技术实践分?/a>

[3] 专访族架构师:量长连接的实时消息推送系l的心得体会

[4] ZWebSocket实现HybridUd应用的消息推送实?含代码示?

[5] 一个基于长q接的安全可扩展的订?推送服务实现思\

[6] 实践分nQ如何构Z套高可用的移动端消息推送系l?

[7] Go语言构徏千万U在U的高ƈ发消息推送系l实?来自360公司)

[8] 腾讯信鸽技术分享:百亿U实时消息推送的实战l验

[9] 京东京麦商家开攑^台的消息推送架构演q之?/a>

[10] 技术干货:从零开始,教你设计一个百万的消息推送系l?/a>

[11] 爱奇艺WebSocket实时推送网x术实?/a>

[12] 喜马拉雅亿用户量的ȝ消息推送系l架构设计实?/a>

[13] 消息推送技术干货:团实时消息推送服务的技术演q之?/a>

[14] 揭秘vivo百亿U厂商消息推送^台的高可用技术实?/a>

[15] 得物从零构徏亿消息推送系l的送达E_性监控体pL术实?/a>

[16] B站千万长连接实时消息系l的架构设计与实?/a>

Q本文已同步发布于:http://www.52im.net/thread-4852-1-1.htmlQ?/a>



Jack Jiang 2025-07-24 15:58 发表评论
]]>鸿蒙NEXT时代你所不知道的全^台跨端框ӞCMP、Kuikly、Lynx、uni-app x{?/title><link>http://www.aygfsteel.com/jb2011/archive/2025/07/16/451649.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Wed, 16 Jul 2025 02:28:00 GMT</pubDate><guid>http://www.aygfsteel.com/jb2011/archive/2025/07/16/451649.html</guid><wfw:comment>http://www.aygfsteel.com/jb2011/comments/451649.html</wfw:comment><comments>http://www.aygfsteel.com/jb2011/archive/2025/07/16/451649.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jb2011/comments/commentRss/451649.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jb2011/services/trackbacks/451649.html</trackback:ping><description><![CDATA[     摘要: 本文由GSYTech 恋猫de郭分nQ原?#8220;2025 跨^台框架更新和发布ҎQ这是你没看q的全新版本”Q下文有修订和重新排版?、前a2025 q可以说又是一个跨q_的元q_其中不妨有`蒙Nextq_刺激的原因,也有大厂技术积?#8220;辑ֈ瓉”的可能,又或?#8220;开猿截、降本增W?#8221;的趋势的影响Q?025 q上半年实让跨q_框架...  <a href='http://www.aygfsteel.com/jb2011/archive/2025/07/16/451649.html'>阅读全文</a><img src ="http://www.aygfsteel.com/jb2011/aggbug/451649.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jb2011/" target="_blank">Jack Jiang</a> 2025-07-16 10:28 <a href="http://www.aygfsteel.com/jb2011/archive/2025/07/16/451649.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>支持 A 股、港股!AI 投资炒股「智能体」开源,太绝了?/title><link>http://www.aygfsteel.com/paulwong/archive/2025/07/11/451646.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Fri, 11 Jul 2025 11:06:00 GMT</pubDate><guid>http://www.aygfsteel.com/paulwong/archive/2025/07/11/451646.html</guid><wfw:comment>http://www.aygfsteel.com/paulwong/comments/451646.html</wfw:comment><comments>http://www.aygfsteel.com/paulwong/archive/2025/07/11/451646.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/paulwong/comments/commentRss/451646.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/paulwong/services/trackbacks/451646.html</trackback:ping><description><![CDATA[<div>它部|了多个专业?AI 大模型智能体Q每一个智能体对应交易公司的一个角艌Ӏ比如有的智能体是基本面分析师、有的是情A分析师、有的是技术分析师Q还有交易员、风险管理员{等。让q些角色的AI体在一起叽叽喳喌论,最l确定最优的{略。给Z入或者卖出的决策?/div> <div><br /> </div> <div><a target="_blank">https://mp.weixin.qq.com/s/mu1eF1l5ung-siVcUrEsTQ</a><br /> </div> <div><br /> </div> <div><br /> </div> <div><a target="_blank">合集</a></div> <img src ="http://www.aygfsteel.com/paulwong/aggbug/451646.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/paulwong/" target="_blank">paulwong</a> 2025-07-11 19:06 <a href="http://www.aygfsteel.com/paulwong/archive/2025/07/11/451646.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>U血鸿蒙NEXTx通讯/IMpȝQRinbowTalk正式发布Q全源码、纯ArkTS~写http://www.aygfsteel.com/jb2011/archive/2025/07/09/451645.htmlJack JiangJack JiangWed, 09 Jul 2025 03:27:00 GMThttp://www.aygfsteel.com/jb2011/archive/2025/07/09/451645.htmlhttp://www.aygfsteel.com/jb2011/comments/451645.htmlhttp://www.aygfsteel.com/jb2011/archive/2025/07/09/451645.html#Feedback0http://www.aygfsteel.com/jb2011/comments/commentRss/451645.htmlhttp://www.aygfsteel.com/jb2011/services/trackbacks/451645.html1、基本情?/h2>

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 />
MobileIMSDK工程的开源地址是:

  • 1Q?/em>Gitee码云地址Q?a target="_blank" rel="noopener nofollow" style="color: #1d58d1; text-decoration-line: none;">https://gitee.com/jackjiang/MobileIMSDK
  • 2Q?/em>Github托管地址Q?a target="_blank" rel="noopener nofollow" style="color: #1d58d1; text-decoration-line: none;">https://github.com/JackJiang2011/MobileIMSDK
  • 3Q?/em>GitCode托管地址Q?a target="_blank" rel="noopener nofollow" style="color: #1d58d1; text-decoration-line: none;">https://gitcode.com/hellojackjiang2011/MobileIMSDK

2、功能简?/h2>

1Q?/em>支持文本消息、语音留a消息、图片消息、大文g消息Q?span style="color: #808080;">支持断点上传Q、短视频消息、个人名片、群名片、Emoji表情、消息撤回、消息{发、消息引用?#8220;@”功能?#8220;扫一?#8221;功能{;
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>

RainbowTalkU上版本目前仅作演示和研I之用,q行环境配置最化Q仅1?G?MB带宽Q,请客观评估?/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;消息撤回”功能

 

Q?strong>本文内容引用自:http://www.52im.net/thread-4822-1-1.htmlQ?/p>

Jack Jiang 2025-07-09 11:27 发表评论
]]> վ֩ģ壺 | Ӳ| ɽ| | Դ| | ̨| ˮ| ͼ| ٲ| | пѷ| կ| | | | ¡| | | ζ| ߺ| | | | ˺| | | ˳ƽ| ʻ| | ɽ| ɳ| | | ½| ǿ| ˮ| Ϫ| | ȫ| |