又拍网架构中的消息,任务系统(赵钟秋)

上传人:ji****72 文档编号:45923261 上传时间:2018-06-20 格式:PDF 页数:37 大小:1.56MB
返回 下载 相关 举报
又拍网架构中的消息,任务系统(赵钟秋)_第1页
第1页 / 共37页
又拍网架构中的消息,任务系统(赵钟秋)_第2页
第2页 / 共37页
又拍网架构中的消息,任务系统(赵钟秋)_第3页
第3页 / 共37页
又拍网架构中的消息,任务系统(赵钟秋)_第4页
第4页 / 共37页
又拍网架构中的消息,任务系统(赵钟秋)_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《又拍网架构中的消息,任务系统(赵钟秋)》由会员分享,可在线阅读,更多相关《又拍网架构中的消息,任务系统(赵钟秋)(37页珍藏版)》请在金锄头文库上搜索。

1、 又拍网架构中的消息 / 任务系统赵钟秋 belltoy又拍网程序员2011.10又拍网简介照片分享社区2005 年建站500 万用户超过 3 亿张照片又拍图片托管简介面向企业用户,提供云存储服务2010 年上线类似 Amazon S3+CloudFront超过 10 亿张图片图片日访问量超过 2 亿次后台任务后台任务由用户或者定时触发耗时长异步执行系统架构任务系统的组成消息分发进程管理工作进程RabbitMQ开源Erlang 实现高级消息队列协议 (AMQP) 实现分布式RabbitMQ 组件交换器 (Exchange)directtopicheadersfanout队列 (Queue)绑定

2、 (Binding)RabbitMQ 工作方式Work QueuesPublish/SubscribeRoutingTopicsRPCRabbitMQ 工作方式Worker 接收消息PHP 发送消息基于 RabbitMQ 的实现一个行为触发多个任务添加在原来的任务中发送多个不同的消息采用 Publish/Subscribe 方式问题出现访问量增加,工作进程增加业务复杂,消息类型增加不能动态配置任务代码经常更新,系统频繁启停可能中断正在执行的任务大量工作进程驻留在内存我们的需求使用 Publish/Subscribe 方式简单灵活的配置动态更新代码方便的进程管理空闲时,释放资源RPC基于 Rab

3、bitMQ 的实现RabbitMQ 的 RPC 实现方式基于 YPTask 的实现为什么使用 Erlang 实现原生的分布式支持支持代码动态更新成熟的 OTP 方案进程管理方便我们熟悉 Erlang 开发YPTask 系统内部进程树分布式Erlang 原生的支持动态增删节点去中心化同步各节点的配置消息分发一种消息类型对应一个消息队列一个任务可以接收多种消息类型一个任务可以动态配置工作进程的数量定时器类似 crontab 的定时器配置基于消息集群中一种定时器只有一个实例错误处理APIPublisher: JSON-RPCSubscriber: BERT-RPCRPC客户端、服务端协议均为 RPC

4、Erlang 内部使用 Cast/Call使得更进一步拆分 Web 成为可能动态配置把消息转发的配置工作统一到 YPTask 中只要指定消息的名字和消息内容动态配置、动态更新修改配置之后只要重新启动相应的工作进程YPTask 系统配置界面新的消息收发实例迁移仍然采用 Python 实现工作进程简化消息发布方式,一个事件只发一条消息统一配置管理,业务代码专注于业务逻辑再一次做拆分YPTask 特点简单的配置灵活的消息分发支持大量的任务能够动态更新代码,不间断运行支持异构的后台任务支持 RPCTODO消息持久化多种语言支持多种客户端协议支持优化配置管理界面开放源代码一些经验拆分业务逻辑,让 web 只处理最少的事情拆分系统架构,利用已经实现的工具利用成熟的方案,能够带来高效的实现让处理业务的代码只处理业务,其它事交给别人 去做加入我们jobyupoo-谢谢

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号