版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高性能实时应用架构设计目录挑战与难点架构篇性能篇总结实时应用简介易信 - java网易的流行移动聊天工具千万级别在线消息推送平台 - node.js + java千万级别在线新闻客户端 有道云笔记 云音乐 云阅读 移动消息推送的平台消息推送平台推送消息到移动端、web端的通用平台,接入了网易几乎所有主要的移动产品挑战与难点消息推送平台平台需高可用,并支持水平扩展支持千万级高并发下的实时推送网络不稳定情况下的消息可靠性(QoS1)系统需具备高度稳定性和可靠性针对不同消息推送需求制定不同解决方案移动终端的4S要求:Slim、Save power、 Save traffic、Stable消息推送平台
2、-挑战与难点网络不稳定状况下消息仍可达,私信到达 率99.9%以上99.9%的消息1S以内到达Android SDK月流量消耗1000,全域广播TPS10w挑战与难点易信支持上亿的同时在线规模消息发送的密度与频率高于消息推送平台,私信的TPS达10万级,群聊的TPS达1万级网络不稳定状况下消息仍可达,私信到达 率99.99%以上99.99%的消息1S以内到达高质量语音通讯目录挑战与难点架构篇性能篇总结架构讨论基础架构消息实时性消息到达率高可用易信聊天部分高可用消息推送经过的所有功能服务进程无单点故障高可用消息队列服务确保消息可靠性多种流控和退避机制确保系统可靠性无状态 VS 有状态在线状态连接
3、服务器 维护长连接Redis高可用集群方案 zookeeper+presharding高可用redis集群高可用redis集群presharding + 二级Hash负载均衡消息推送平台的负载均衡策略 LVSDR,RR模式socket.io采用source hash易信的负载均衡策略 LBS使用智能DNS支持异地部署一组IP,多个端口重连保证消息到达率高可用队列qos=1消息备份Redis高可用,slave存盘离线消息Redis备份消息,Ack后才删除客户端保存接收最后一条消息的时间戮客户端重连拉未消费消息消息到达流程移动端 - android客户端链路复用基于MQTT协议心跳周期退避服务端拥
4、塞退避断线重连机制签名认证机制支持消息去重支持自动/手动AckSDK升级策略(兼容+并存)APK1Push SDKAPK2Push SDKPush ServicePush ServerAndroid目录挑战与难点架构篇性能篇总结性能性能指标消息实时性广播的性能优化GC- node.js 与 java性能支持的连接数 易信(netty) ,25W连接,12G内存(前提: 不 出现频繁Full GC),内存占用约40K/连接1.5W连web易信(netty), 如果使用long polling,接,CPU 90%消息推送平台(node.js mqtt协议),3W连接,600M内存,内存占用约 18
5、K/连接消息推送平台web端(node.js socket.io), 如果是long polling, 只能支撑3000个连接性能QPS易信单进程6.8w并发用户时,发送点对点消息,14000/S响应时间 4ms以下CPU 70%内存8G消息推送平台单进程2w并发用户时,点对点消息, 3000/s数千万条广播,5秒内发完消息的实时性实时性要求高需要不停的测试与优化消息路径划分与报警一次故障排查GC消息实时性 - 消息路径划分实时性要求按消息路径划分处理时间, 对各级响应时间打点细粒度监控、报警优化所有的参数 服务器、应用、网络消息实时性 - 一次故障排查实例现象:产品反映聊天时响应较慢toPr
6、oxyTime经常飙升到1秒另一个产品toProxyTime升到3秒消息实时性消息路径toProxyTime = endTime startTime排除法定位出nginx问题抓包1秒问题3秒问题解决办法解决办法:Nginx到后端开启keepAlive消息推送平台挑战 - 新闻客户端的实时性要求一分钟内广播消息给数千万个客户端测试结果广播推送:15秒内推完按附件推送: 100万需要5分钟,瓶颈在filterclientconnectorredisreceiverfilter广播优化策略批处理所有操作批处理查redis批量发消息到连接服务器优化后附件广播100万条在50秒之内推完退避策略通过MQ自
7、身的机制退避,广播消息在push完之后ack当广播的数量过大时, 适当退避,让出CPU消息实时性 - GCNode.js的GC基于V8,分代收集单进程吃不了太多内存,保持在600M以下Young GC的时间很短, 在内存低的情况下FullGC也能控制在30ms之内-max-new-space- size=2048Java的GC分代收集文档多,很复杂的参数CMS,G1对实时应用很重要一般建议java内存4G以 下,但由于连接服务器 吃内存的要求,配到8G 或以上易信GC长连接服务器的内存管理吃内存实时性要求高,千万不能出现几秒的full gc, 需要采用CMS新生代的产生数据较多,不符合新产生的数据生命周期短的年青代规则使用CMS时千万不要promotion failure易信GC+UseConcMarkSweepGC-XX:SurvivorRatio=3-Xms12G -Xmx12G -Xmn2g-XX:CMSInitiatingOccupancyFraction=80-XX:+PrintPromotionFailure-XX:+UseCMSCompactAtFullCollection-XX:MaxTenuringThreshold=8-XX:+CMSClassUnloadingEnabled总结实时应用架构C/C+微信Node.js & po
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年山西省河津市高二生物下册期末考试模拟检测卷及参考答案【考试直接用】
- 2026隐私计算技术在数据要素市场中的商业化应用研究
- 2026中国医美行业消费趋势及市场竞争力分析报告
- 2026电子信息行业市场现状竞争态势及投资战略规划报告
- 2026中国燕麦奶市场增长潜力及品牌战略研究报告
- 2026冷冻杯装鲜果茶物流配送成本压缩的七种可行性方案
- 2026中国航空货运市场增长潜力与投资方向研究报告
- 2026盲盒营销在饮料新品推广中的转化率测试报告
- 2026中国卫星互联网星座建设进度与应用生态培育
- 2026能源互联网市场竞争格局全面分析投资趋势与深度研究报告
- 2026年甘肃省白银市公安局白银分局招聘警务辅助人员41人笔试参考题库及答案详解
- 婚前医学检查相关知识考核试题(附答案)
- 初二【数学(人教版)】轴对称 学习任务单
- 2026 年烈士纪念日英雄事迹学习专题课件
- Unit3 Smart Learning 单元测试题-人教版英语九年级上册
- 电力系统分析试题与答案
- 煤矿废水处理站建设与运营方案
- 2026年考研政治真题及答案
- 幼儿园大班活动教学设计及教案示范
- 导尿管相关尿路感染(CAUTI)防控最佳护理实践专家共识解读
- 集成电路封装技术(第二版) 课程标准、授课计划
评论
0/150
提交评论