狠狠撸

狠狠撸Share a Scribd company logo
LeanMessage 
实时通信云架构 
孙宁 
nsun@leancloud.rocks
About 
● 孙宁 
● nsun@leancloud.rocks 
● wechat:try-another 
● twitter.com/sunng 
● github.com/sunng87
什么是实时通信? 
什么是实时通信云?
普通应用 
● Pull to refresh
实时应用 
● 聊天,IM
实时应用 
● 互动游戏
实时应用 
● 协同编辑
实时消息 Vs REST API 
REST API 实时消息 
拉模型(外部触发刷新或轮 
询) 
支持推、拉两种模型(实时反 
应更新) 
短连接持久连接 
无状态或模拟状态(编程简 
单) 
维护状态(编程复杂) 
同步异步 
高延迟低延迟
实时通信的典型部署 
Async server 
Client Agent Client Agent 
User Space
RTM from scratch 
● 服务端 
– 异步持久连接服务器 (nodejs) 
– 系统参数调优 
– 可用性,扩展性 
– 运维、监控 
● 客户端 
– 状态维护 
– 重连策略
实时通信云 
SDK 
Client 
SDK 
Client 
Cloud Infrastructures 
Service Provider 
REST Client User Space
实时通信云 
● 服务端 
– 0 
● 客户端 
– Session 抽象
客户端抽象 
● Session 
– 属性 
● appId 
● selfId 
– 行为 
● open/close 
● watch/unwatch 
● send 
– 事件 
● open 
● pause/resume 
● message 
● presence (上下线通知)
客户端抽象隔离 
● Session 
– Bare metal 
● 连接创建和重用、管理 
● 自动重连,永远在线 
– 检测网络条件变化 
– 心跳,保持连接 
● 保证消息到达,去重 
● 隔离下层传输协议 
– websocket 
– socketio 
– 应用层协议分帧
构建持久连接的客户端 
● Android 
– 后台运行 Service 
● iOS, Windows Phone 
– 应用在前台时建立连接 
– 应用在后台时主动断开,通过平台推送通知 
● HTML5 
– Websocket或降级方案
服务器端 
● 功能模块 
离线消息 
推送消息 
会话管理消息收发 
连接管理 
关注 
关系 
点对点消息群组消息 
群组 
管理 
历史记录 
敏感信息过滤 
权限认证 
统计服务 
监控报警 
配置管理/ 
持续集成
技术栈 
● Clojure 
● Netty NIO 
● core.async, SEDA pipeline 
● Slacker cluster RPC 
● Zookeeper 
● Kestrel
微服务架构 
● Microservice 
● 细粒度,针对功能和性质拆分 
● 传输:消息队列和RPC 
● 元编程:实现本地和远程调用API一致 
● 服务作为一层抽象独立于进程
服务发现 
● 利用Zookeeper注册服务 
● ephemeral节点 
● watch 
– 自动failover 
– 自动引导流量到新的部署 
● 动态配置管理
Push Service 
PPPuuussshhh S SSeeerrrvvviicicceee 
RPC 
MQ 
Push Server 
PPPPuuuusssshhhh S S SSeeeerrrvrvvveeeerrrr 
REST 
RPC 
Push Lookup ZK 
Push Lookup 
Storage API 
Client 
RPC Censorship 
MQ 
Watchdog 
RPC 
HTTP 
WebSocket
负载均衡 
● 应用层的负载均衡 
– DNS负载均衡不够灵活 
– REST无状态服务 
● 根据长连接服务器的负载分配新连接 
– 支持其他业务规则:灰度上线 
● 自动更新可用列表
Wrap up 
● 降低有状态服务端的开发运维成本 
● 简化客户端编程 
● 可伸缩架构支撑业务量扩展 
● 报表、预警系统增强用户控制
Thanks ! 
Thanks!

More Related Content

Viewers also liked (17)

陈子舜-Html5 based web app
陈子舜-Html5 based web app陈子舜-Html5 based web app
陈子舜-Html5 based web app
Webrebuild
?
淘宝交易平台前端重构
淘宝交易平台前端重构淘宝交易平台前端重构
淘宝交易平台前端重构
Frank Xu
?
旺铺前端设计分享
旺铺前端设计分享旺铺前端设计分享
旺铺前端设计分享
fangdeng
?
苍辞诲别箩蝉开发飞别产站点
苍辞诲别箩蝉开发飞别产站点苍辞诲别箩蝉开发飞别产站点
苍辞诲别箩蝉开发飞别产站点
xiaojueqq12345
?
浏览器渲染与飞别产前端开发
浏览器渲染与飞别产前端开发浏览器渲染与飞别产前端开发
浏览器渲染与飞别产前端开发
Duoyi Wu
?
搁别补肠迟单页应用性能调优实践
搁别补肠迟单页应用性能调优实践搁别补肠迟单页应用性能调优实践
搁别补肠迟单页应用性能调优实践
spray_lx
?
前端惭痴颁之产补肠办产辞苍别
前端惭痴颁之产补肠办产辞苍别前端惭痴颁之产补肠办产辞苍别
前端惭痴颁之产补肠办产辞苍别
Jerry Xie
?
Meteor
MeteorMeteor
Meteor
Tencent
?
百姓网如何优化网速-蚕肠辞苍2011
百姓网如何优化网速-蚕肠辞苍2011百姓网如何优化网速-蚕肠辞苍2011
百姓网如何优化网速-蚕肠辞苍2011
Yiwei Ma
?
聊聊我接触的集群管理
聊聊我接触的集群管理聊聊我接触的集群管理
聊聊我接触的集群管理
rfyiamcool
?
美团点评技术沙龙13-前端工程化开发方案补辫辫-辫谤辞迟辞介绍
美团点评技术沙龙13-前端工程化开发方案补辫辫-辫谤辞迟辞介绍美团点评技术沙龙13-前端工程化开发方案补辫辫-辫谤辞迟辞介绍
美团点评技术沙龙13-前端工程化开发方案补辫辫-辫谤辞迟辞介绍
美团点评技术团队
?
美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术团队
?
美团点评技术沙龙05 - 浅谈前端工程化
美团点评技术沙龙05 - 浅谈前端工程化美团点评技术沙龙05 - 浅谈前端工程化
美团点评技术沙龙05 - 浅谈前端工程化
美团点评技术团队
?
3 a forum 2016 陆金所前端进化论 微服务之路(public)
3 a forum 2016 陆金所前端进化论 微服务之路(public)3 a forum 2016 陆金所前端进化论 微服务之路(public)
3 a forum 2016 陆金所前端进化论 微服务之路(public)
Ufo Qiao
?
使用狈辞诲别闯厂构建静态资源管理系统
使用狈辞诲别闯厂构建静态资源管理系统使用狈辞诲别闯厂构建静态资源管理系统
使用狈辞诲别闯厂构建静态资源管理系统
Frank Xu
?
Building Universal Applications with Angular 2
Building Universal Applications with Angular 2Building Universal Applications with Angular 2
Building Universal Applications with Angular 2
Minko Gechev
?
陈子舜-Html5 based web app
陈子舜-Html5 based web app陈子舜-Html5 based web app
陈子舜-Html5 based web app
Webrebuild
?
淘宝交易平台前端重构
淘宝交易平台前端重构淘宝交易平台前端重构
淘宝交易平台前端重构
Frank Xu
?
旺铺前端设计分享
旺铺前端设计分享旺铺前端设计分享
旺铺前端设计分享
fangdeng
?
苍辞诲别箩蝉开发飞别产站点
苍辞诲别箩蝉开发飞别产站点苍辞诲别箩蝉开发飞别产站点
苍辞诲别箩蝉开发飞别产站点
xiaojueqq12345
?
浏览器渲染与飞别产前端开发
浏览器渲染与飞别产前端开发浏览器渲染与飞别产前端开发
浏览器渲染与飞别产前端开发
Duoyi Wu
?
搁别补肠迟单页应用性能调优实践
搁别补肠迟单页应用性能调优实践搁别补肠迟单页应用性能调优实践
搁别补肠迟单页应用性能调优实践
spray_lx
?
前端惭痴颁之产补肠办产辞苍别
前端惭痴颁之产补肠办产辞苍别前端惭痴颁之产补肠办产辞苍别
前端惭痴颁之产补肠办产辞苍别
Jerry Xie
?
百姓网如何优化网速-蚕肠辞苍2011
百姓网如何优化网速-蚕肠辞苍2011百姓网如何优化网速-蚕肠辞苍2011
百姓网如何优化网速-蚕肠辞苍2011
Yiwei Ma
?
聊聊我接触的集群管理
聊聊我接触的集群管理聊聊我接触的集群管理
聊聊我接触的集群管理
rfyiamcool
?
美团点评技术沙龙13-前端工程化开发方案补辫辫-辫谤辞迟辞介绍
美团点评技术沙龙13-前端工程化开发方案补辫辫-辫谤辞迟辞介绍美团点评技术沙龙13-前端工程化开发方案补辫辫-辫谤辞迟辞介绍
美团点评技术沙龙13-前端工程化开发方案补辫辫-辫谤辞迟辞介绍
美团点评技术团队
?
美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术团队
?
美团点评技术沙龙05 - 浅谈前端工程化
美团点评技术沙龙05 - 浅谈前端工程化美团点评技术沙龙05 - 浅谈前端工程化
美团点评技术沙龙05 - 浅谈前端工程化
美团点评技术团队
?
3 a forum 2016 陆金所前端进化论 微服务之路(public)
3 a forum 2016 陆金所前端进化论 微服务之路(public)3 a forum 2016 陆金所前端进化论 微服务之路(public)
3 a forum 2016 陆金所前端进化论 微服务之路(public)
Ufo Qiao
?
使用狈辞诲别闯厂构建静态资源管理系统
使用狈辞诲别闯厂构建静态资源管理系统使用狈辞诲别闯厂构建静态资源管理系统
使用狈辞诲别闯厂构建静态资源管理系统
Frank Xu
?
Building Universal Applications with Angular 2
Building Universal Applications with Angular 2Building Universal Applications with Angular 2
Building Universal Applications with Angular 2
Minko Gechev
?

Similar to Lean Message Architecture Highlights (20)

Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Dahui Feng
?
Mocha Bsm
Mocha BsmMocha Bsm
Mocha Bsm
王 莆中
?
徐晓 Qq空间技术架构之峥嵘岁月
徐晓 Qq空间技术架构之峥嵘岁月徐晓 Qq空间技术架构之峥嵘岁月
徐晓 Qq空间技术架构之峥嵘岁月
drewz lin
?
基于贰谤濒补苍驳的
基于贰谤濒补苍驳的基于贰谤濒补苍驳的
基于贰谤濒补苍驳的
hnoutman
?
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
guiyingshenxia
?
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
colderboy17
?
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
drewz lin
?
新浪微博平台与安全架构
新浪微博平台与安全架构新浪微博平台与安全架构
新浪微博平台与安全架构
n716
?
什么是云计算
什么是云计算什么是云计算
什么是云计算
Liyang Tang
?
Chap12 嵌入式系统开发模式
Chap12 嵌入式系统开发模式Chap12 嵌入式系统开发模式
Chap12 嵌入式系统开发模式
Allen Galler
?
轻量分布式服务框架
轻量分布式服务框架轻量分布式服务框架
轻量分布式服务框架
-Xing Xing
?
中大型规模的网站架构运维 Saac
中大型规模的网站架构运维 Saac中大型规模的网站架构运维 Saac
中大型规模的网站架构运维 Saac
Chao Zhu
?
滨顿贵2013大会分享——《使用新浪移动云开发全平台应用》
滨顿贵2013大会分享——《使用新浪移动云开发全平台应用》滨顿贵2013大会分享——《使用新浪移动云开发全平台应用》
滨顿贵2013大会分享——《使用新浪移动云开发全平台应用》
easychen
?
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
guiyingshenxia
?
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
colderboy17
?
Brochure ahn lab trusguard utm
Brochure ahn lab trusguard utmBrochure ahn lab trusguard utm
Brochure ahn lab trusguard utm
ahnlabchina
?
云计算 系统实例与研究现状
云计算 系统实例与研究现状云计算 系统实例与研究现状
云计算 系统实例与研究现状
Danny AJ Lin
?
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Dahui Feng
?
徐晓 Qq空间技术架构之峥嵘岁月
徐晓 Qq空间技术架构之峥嵘岁月徐晓 Qq空间技术架构之峥嵘岁月
徐晓 Qq空间技术架构之峥嵘岁月
drewz lin
?
基于贰谤濒补苍驳的
基于贰谤濒补苍驳的基于贰谤濒补苍驳的
基于贰谤濒补苍驳的
hnoutman
?
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
guiyingshenxia
?
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
colderboy17
?
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
drewz lin
?
新浪微博平台与安全架构
新浪微博平台与安全架构新浪微博平台与安全架构
新浪微博平台与安全架构
n716
?
Chap12 嵌入式系统开发模式
Chap12 嵌入式系统开发模式Chap12 嵌入式系统开发模式
Chap12 嵌入式系统开发模式
Allen Galler
?
轻量分布式服务框架
轻量分布式服务框架轻量分布式服务框架
轻量分布式服务框架
-Xing Xing
?
中大型规模的网站架构运维 Saac
中大型规模的网站架构运维 Saac中大型规模的网站架构运维 Saac
中大型规模的网站架构运维 Saac
Chao Zhu
?
滨顿贵2013大会分享——《使用新浪移动云开发全平台应用》
滨顿贵2013大会分享——《使用新浪移动云开发全平台应用》滨顿贵2013大会分享——《使用新浪移动云开发全平台应用》
滨顿贵2013大会分享——《使用新浪移动云开发全平台应用》
easychen
?
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
guiyingshenxia
?
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
colderboy17
?
Brochure ahn lab trusguard utm
Brochure ahn lab trusguard utmBrochure ahn lab trusguard utm
Brochure ahn lab trusguard utm
ahnlabchina
?
云计算 系统实例与研究现状
云计算 系统实例与研究现状云计算 系统实例与研究现状
云计算 系统实例与研究现状
Danny AJ Lin
?

Lean Message Architecture Highlights