下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 飞信开放平台的资源分配与控制策略(孙朝晖)

飞信开放平台的资源分配与控制策略(孙朝晖).pdf

飞信开放平台的资源分配与控制策略(孙朝晖)

zjznet
2011-10-26 0人阅读 举报 0 0 暂无简介

简介:本文档为《飞信开放平台的资源分配与控制策略(孙朝晖)pdf》,可适用于IT/计算机领域

飞信开放平台的资源分配与控制策略开放、动态网络分享、综合性网络服务October飞信开放平台技术总监互联网产品首席架构师孙朝晖http:weibocomsteadwater私人广告October• 首先希望遭到关注并通过微博交流• 本人职责– “飞信开放平台”总体技术架构设计– 飞信互联网相关产品的技术规划– 飞信技术社区建设特别欢迎与同仁广泛交流目录• 飞信开放平台的业务特点• 飞信开放平台对合作伙伴OPENAPI的资源控制• 飞信开放平台用户的服务资源分配• 飞信开放平台缓存资源分配策略October飞信开放平台的业务特点October• 飞信开放平台是⼀一个内容合作型的服务平台将各种内容源聚合到飞信的WebPC手机短信全客户端渠道• 合作服务类型 • 微博类 • SNS类 • 视频、文学、咨询等内容类 • 电子商务类 • ……飞信开放平台合作伙伴的数据通信方式October• 飞信主动同步类型– 飞信利用第三方服务开放平台功能拉取TimeLine并发布Feed(如新浪、腾讯微博)• 飞信被动同步类型– 第三方服务调用飞信开放平台API将动态主动推送到飞信开放平台上(多数互联网合作伙伴)• 双方相互同步类型– 双方相互向对方推送动态(如移动微博开心网)• 客户端类型– 飞信以及第三方开发的PC手机客户端收发API据需要飞信开放平台对OPENAPI的资源分配策略October飞信开放平台对OPENAPI的整体分配策略October• 飞信开放平台通过基于RESTFUL的OPENAPI提供数据通信接口根据不同的限制区域和服务级别分成不同的服务器群集七层交换集群客户端服务群试验服务群普通服务群高级服服务群主动同步抓取服务群动态中心服务平台Push服务群飞信开放平台对API访问频次控制方法October• 访问频次限流按应用、IP、和用户ID的组合限流策略• 请求频次限流限制同⼀一IP的并发连接数防止过多的并发– 采用Nginxlimittrafficratemodule– limitzoneone$binaryremoteaddrm• 针对不同应用类型的制定组合资源限制策略飞信开放平台对API访问频次控制方法October• 限流策略– 试验区应用全部采用每应用、每小时单⼀一频次限制策略– 客户端服务器集群全部采用每用户ID每小时单⼀一频次限制策略– 对于中等规模应用(主要针对普通服务集群的Web应用)采用每IP(ServerIP)频次限制同时每应用访问总频度设置上限– 对于大规模应用(主要针对VIP服务区的Web应用)采用用户频次限制同时每ServerIP设置上限– 正在开发当中有每ServerIPClientIP频次限制(主要应对匿名访问需求)飞信开放平台对OPENAPI频度控制的技术策略October• 总体策略:– 控制精确度让位于服务响应时间和服务器资源开销– 不同区域根据访问量和控制要求设计不同的控制方法• 试验区:控制精度优先– 同步控制:先检查修改计数然后响应请求– 在Redis中采用INCRBY进行修改定期刷新DB• 普通区– 异步控制:首先检查返回响应同时异步修改计数October• 对于VIP区域的完整异步频度控制体系飞信开放平台对OPENAPI频度控制的技术策略Web ServerAPI Server客户端:请求API频度技术状态:检查:响应频次计数服务:增加技术进程内计数缓冲:更新频度状态持久化:定期刷新DB 记录日志Redis缓存:批量用户访问计数飞信开放平台对应用服务器资源分配策略October飞信开放平台对于Feed处理计算资源分配October用户通过Web或者OPEN API发布发布队列发布处理进程 (Feed内容写入)本站分发队列抓取进程外站发布队列外站发布处理进程动态分发进程Push 队列对外站Push进程外站分发队列动态分发进程动态分发进程飞信开放平台对于Feed处理计算资源分配October• Feed的发布与好友Timeline的分发通过多队列计算进程进行处理队列按处理优先级分布为– 本站发布队列(本站用户的发布内容记录以及写入Timeline)– 本站分发队列(向本站好友分发Feed)– 外站Push队列(将Feed发布到绑定的服务)– 外站Feed发布与分发队列(每服务⼀一个或者多个任务处理队列用于来自合作伙伴的Feed转换分发)飞信开放平台对于Feed处理计算资源分配October• Feed发布与分发进程– 发布进程优先优先完成内容写入– 分发只处理TimelineTimeline索引存储按照时间分片– 优先本站内容分发• 与合作伙伴同步的进程进程的资源分配– Push进程与Fetch进程分离Push进程无频度控制策略优先发送– Fetch进程每服务对应个或者多个根据不同的用户抓取的优先级进行分级处理Feed发布频度越高分配进程数越多飞信开放平台内容抓取资源分配策略October• 按照合作伙伴业务类型分配– 微博类优先对应在线用户队列执行频度比非微博高• 根据用户属性制定不同的抓取频度策略– 在线队列(微博类分钟非微博类分钟)– 低活跃用户队列– 高活跃用户队列– 用户活跃度定期计算非在线队列小时进行重新划分与装载飞信开放平台用户存储资源分配October• 用户最新动态缓存容量分配– 除了固定的用户资料存储为在线用户分配⼀一定数量的最新Feed存储Slot减少DB读写– Slot数量分成个等级微博用户多绑定多好友用户低绑定用户• DB数据存储策略:– 微博类Feed与其他类分开– 微博类Feed按照时间老化– 非微博类Feed按照固定配额分配存储资源飞信开放平台缓存资源分配策略October飞信开放平台的缓存分配体系October资源缓存体系浏览器缓存CDN层交换前部缓存图片服务器的Web应用缓存数据缓存体系浏览器本地缓存Web Server 数据缓存Redis缓存服务器中间件服务器本地缓存数据库服务器的BufferPool减少数据流量提高Web加载速度提升使用体验减少数据库直接读取减少重复计算降低计算负荷Web服务器输出缓存数据类缓存体系的总体技术架构OctoberWeb  服务器Redis全局缓存区浏览器本地数据缓存输出缓存ESI局部输出缓存APC Session  数据缓存无缓存的层交换全局缓存 区域弱Session 区 强Session 区 中间件服务器缓存区 LRU Pool数据库的InnoDB Buffer PoolWeb服务器数据缓存October• APC– 存储基于Shmop– 代码缓存– 典型应用场景:全局统⼀一的不易变内容例如:全局配置(频度限制等)• Session– 本地Session仅用于保存短声明周期过程数据– 存储基于文件– 典型场景:OAuth认证过程中间TokenRedis缓存体系October• Redis缓存与数据区域对应隔离影响范围防止全面雪崩• Redis分成了三个区域• 全局区域– 特点:全局共用对各Web中间件Server等价重建成本低– 典型应用:短连接的地址映射缓存– 构建方法:多Server多进程⼀一致性Hash无Persist无复制Redis缓存体系October• 弱Session区– 特点:与用户相关要求⼀一致性低重建成本低– 典型应用:每用户的Session典型对象:好友列表、隐私设置条最新动态(满足Ajax轮循加载)– 构建方法:采用多对⼀一复制方案无永久存储Redis缓存体系October• 强Session区– 特点:与用户相关要求⼀一定程度的⼀一致性构建成本高存储占用量不高– 典型应用:用户的在线队列用户调整动态同步的抓取优先级– 构建方法:采用DiskStore方案⼀一对⼀一复制感谢!October

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/26

飞信开放平台的资源分配与控制策略(孙朝晖)

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利