基于ICE打造高可用云推送平台
极光推送
王丰
花名:椰风
联系方式:@
• 极光推送是什么
• ICE是什么
• 极光推送和ICE的关系
• ICE 简介
• ICE功能模块介绍
• ICE在极光推送的应用
• ICE性能评测及其参考
极光推送是什么
• 极光推送是一个产品
– 极光推送官网()
– 帮助开发者向用户传递消息
• 标签,别名,注册ID,分群推送,自动推送
– 支持Android,IOS,WinPhone三大主流平台
极光推送是什么
• 极光推送是一个品牌
– 独立的第三方云推送平台
– 5万多家企业及个人开发商,12万款移动应用,稳定的
毫秒级送达移动消息推送方案
– 总用户数已经超过12亿,覆盖近7亿Android和iOS终端,
日推送信息量超过3亿条
– 高级用户提供VIP服务
ICE是什么
• ICE(Internet Communications Engine)
– 零度公司(
– 最小代价构建云计算应用程序
– 专注应用逻辑,管理低级网络编程接口
• ICE设计目标
– 混合环境下面向对象的中间件平台
– 开发弹性云计算应用所需要的基本功能
– 易学易用,隔离复杂性
– 有效使用处理器,内存,网络带宽
– 内置安全机制(SSL),可用于不安全的公网环境
极光推送和ICE的关系
• 极光推送不是一个人的推送,是10亿,100亿用户的推送,需要云计
算技术支持。
– ICE框架扩容快速方便
• 极光推送需要有一个高可用的平台,即便性能上超额配置,也不允许
单点服务存在
– ICE可以根据节点负载自适应调整任务分发
• 极光推送需要一个高效的部署平台
– ICE提供的内置组件可以完成这项任务,不用东奔西跑
ICE 简介
• 完全面向对象,延后绑定,Slice统一接口
• 支持同步异步消息传递,支持多接口
客户端
服务端
代理
Ice
API
IceCore
骨架
代码
适配器
IceCore
Ice
API
slice
ICE 简介
• 机器、语言、实现无关性
ICE 简介
•
•
•
•
•
•
操作系统,多线程
传输层(TCP, UDP)
定位和服务透明
安全性(SSL)
内置持久化服务(Freeze)
开源
• 定位服务(IceGrid)
– 服务自动启动,按需启动
– 负载均衡
– 自动发布,版本升级
– 代理查询服务
• 应用server容器
– 动态库代替进程,对于java,多个组件放在一起,只用一个虚拟
机
• 发布-订阅服务(IceStorm)
客户端
1
运行库
ICE功能模块介绍
业务服务
目标对象
定位服务
定位
3
2
ICE功能模块介绍
• 发布服务(Patch2)
– 客户端连接时,计算MD5作为版本,自动发布
– 检查软件依赖,发布依赖
– 压缩发布
• 防火墙穿越服务(Glacier2)
– 安全穿越防火墙
– 客户端和服务端SSL加密
– 公共认证和安全的session管理
ICE在极光推送的应用
• 极光在两个方面的服务集群切换到了ICE
– 数据库代理,用户状态中心
• 数据库代理
– IceGrid
• IceGridRegistry(多个节点M-S结构)
• IceGridNode(每个节点都需要安装)
• IceGridAdmin(GUI工具)
– Patch2
– 业务程序
IceGrid
Registry
(M)
IceGrid Node
IceGrid Node
IceGrid Node
北京18
Server2
香港29
Servern
DB
IcePatch2
1
2
3
广州01
Server1
4
Cache
5
6
Client
WAN
Glacier2
Client
LAN
Redis
CouchBase
MySQL
Oracle
DBAgent
架构图
ICE性能评测及其参考
延迟(原生socket和ice)
延迟(c++,.net,java)
ICE性能评测及其参考
吞吐率(回环接口)
吞吐率(网卡)
ICE性能评测及其参考
ICE性能评测及其参考
• 更多性能评测请参考
e+Benchmarks
Q&A
结
束
谢谢大家的宝贵时间