消息中间件在大型分布式系统的应用 马震(锋寒)@淘宝网 2011-11-26.

Slides:



Advertisements
Similar presentations
環境游離輻射 ( 六 ) 輻射與核能發電. 媽!這是我上班的 地方-核電廠。 地方好寬闊喔! 聽說日本原子彈爆炸死好幾 萬人,阿榮啊!你在這裡上 班,安全嗎?
Advertisements

高级服务器设计和实现 1 —— 基础与进阶 余锋
《小狗包弟 》之 从阅读到写作 学校:和风中学 年级:高一 参赛者:彭龙英. 预习检测一 思考:同学们读完作者与包弟 的故事后,说一说作者所表达的情 感是什么?
C A D C D.
《南方澳大戲院興亡史》 邱坤良 宜蘭人, 1949 年出生於南方澳。 曾任國立藝術學院戲劇系主任 國立台北藝術大學校長 國立中正文化中心董事長 文建會主委 ◎主要著作有 《陳澄三與拱樂社 — 台灣戲劇史的一個 研究個案》( 2001 ) 《台灣劇場與文化變遷》( 1997 ) 《日治時期台灣戲劇之研究》(
虹膜识别健康养老服务智能系统项目.
探究活动课:互联网+历史素材阅读与研讨 古代中国的选官制度 黄天庆  探究活动课:互联网+历史素材阅读与研讨 古代中国的选官制度 黄天庆 
職校、五專群科簡介.
課程地圖 (104年入學-日間部) 校通識核心 專業課程 必修與選修 與管理模組 網路技術 App設計與應用模組 學院通識核心 學院專業核心
计算机网络课程总结 一、计算机网络基础 计算机网络定义和功能、基本组成 OSI/RM参考模型(各层的功能,相关概念, 模型中数据传输 等)
江苏省工程造价管理协会 工作报告 2015年4月21日 扬州.
随身携带的图书馆 ——移动图书馆服务介绍 主讲人:陈洋阳.
101年8月份 嘉義市道路交通安全聯席會報 酒駕行為與肇事現況分析 主講人:內政部警政署交通組科長張夢麟 1.
高校邦在线学习平台 学生学习手册 北京高校邦科技有限公司.
新华沪贵银APP 使用指南.
淘宝核心系统资深专家 我为什么要选择RabbitMQ 淘宝核心系统资深专家
Oracle数据库 Oracle 子程序.
103學年度第1階段 志願選填試探後輔導作為 成效檢討與精進建議
翰林自然 六年級上學期 第二單元 聲音與樂器.
活动主题:佛山智造 中国骄傲 随着互联网、云计算、大数据以及移动互联网的快速发展,技术不仅仅是一种工具,正加速重构着品牌的新格局。
不動產市場 分析與預測 第四章 不動產市場分析與研究.
四川省卫生监督移动 执法终端介绍 发言人:陈成身 四川省卫生执法监督总队.
獎補助經預計支用報告 105年.
Cell organized Distributed File Storage
Information & Security System in China China North Eastern Air Traffic Control Bureau (CAAC) Customer Background Subsidiary of General Administration of.
基于R和pentaho的全套开源BI平台的实现
Alibaba 数据库高可用架构 Alibaba
MariaDB Spider分库分表引擎调研
从现在做起 彻底改变你自己 Sanjay Mirchandani EMC公司高级副总裁、首席信息官.
存储系统.
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
数据挖掘工具性能比较.
厂商—型号 海尔-PAD002 外观设计 建议零售价格:2999元 上市时间:2011年3月 目标人群:有移动互联需求的商务人士
PaPaPa项目架构 By:Listen 我在这.
华东理工大学 关于新校园卡功能启用的相关说明 2018年09月07日.
❶云端下载 请根据自己的手机系统(支持IOS系统与Android系统)选择下述下载方式: 手机系统 应用搜索下载 二维码扫描下载 IOS系统
DevDays ’99 The aim of this mission is knowledge..
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
程序设计工具实习 Software Program Tool
SOA – Experiment 2: Query Classification Web Service
开源MQ技术介绍 Kimmking
何勉 新浪微博: Scrum框架及其背后的原则 原始图片 何勉 新浪微博:
新一代安全网上银行 小组成员:杨志明 王晶 任毅 刘建中 关昊 刘超.
SQL Server Mobile 2005 程序开发(五)
DQMClientDim.cxx及双光子练习
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
201x 公司LOGO LOGO XX公司年终总结 201x/10/18 201x
解决“最后1公里”问题.
kintone日報·商談報告安裝包 介紹資料
102學年度下學期 班親會 五年仁班 楊曉逸老師.
Visual Basic程序设计 第13章 访问数据库
Touch Github = Touch the World
华为—HUAWEI EC19 9 建议零售价格:299元 上市时间:2012年4月18日 目标人群:移动办公用户;其它有移动上网需求的用户
Publish/Subscribe in P2P Networks
OpenStack vs CloudStack
第二階段「校園徒步區建置」 執行成果報告.
WSAAsyncSelect 模型 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang
Google的云计算 分布式锁服务Chubby.
阻塞式模型 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
§4 连续型随机变量.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
Chinese Virtual Observatory
华为-HUAWEI—EC156 建议零售价格:329元 上市时间:2012年 1 月 1 日 目标人群:大众消费群体 标准配置:无配件
Zookeeper的应用 Hbase Kafka Twitter Storm Spark—mesos+zookeeper.
6.1.1 平方根.
為民服務白皮書 台灣電力公司彰化區營業處  彰化區營業處 為民服務白皮書 誠信 關懷 服務 成長 1.
实验课程学习手册.
云控APP说明书 适用于云控平台配置.
云控APP说明书 适用于云控平台配置.
Presentation transcript:

消息中间件在大型分布式系统的应用 马震(锋寒)@淘宝网 2011-11-26

个人简介 2008年——至今 淘宝网技术专家 之前在Ericsson和金蝶中间件工作 感兴趣领域: 2008年——至今 淘宝网技术专家 负责消息中间件的研发 之前在Ericsson和金蝶中间件工作 感兴趣领域: 并发和网络编程 大型分布式系统的构建 海量数据的分析和处理 微博:http://weibo.com/mz1999

Outline 淘宝消息中间件概览 消息中间件应用场景 分布式事务 数据复制 日志同步 delay queue 广播通知 总结

消息中间件 应用程序或组件之间的一种通讯方式 可靠性 异步 松散耦合 发送者和接收者不必了解对方,只需要认识消息 发送者和接收者不必同时在线

Messaging Models Point-to-Point (PTP) Publish/Subscribe 每个消息只有一个消费者 发送者和接收者没有时间依赖 接收者确认消息处理成功 Publish/Subscribe 每个消息可以有多个订阅者 客户端只有订阅后才能收到消息

淘宝消息中间件 Notify Push模式,消息存储转发 支持分布式事务 订阅者集群 支持多种安全级别的存储

淘宝消息中间件 Metamorphosis 开源MQ-kafka的Java版本 消息都是持久的,保存在磁盘 客户端pull,利用sendfile系统调用,零拷贝 吞吐量第一 支持消息顺序

淘宝消息中间件 Broker: Shared nothing architecture 发布者、订阅者都支持集群 ConfigServer ZooKeeper Subscriber Publisher Broker Publisher Subscriber Broker Publisher Subscriber 集群 集群 集群

Notify——分布式事务 通用的消息中间件支持XA分布式事务 优点 缺点 跨越多个资源ACID的保证 编程模型简单一致 性能和可用性都不高 故障难于恢复

Notify——分布式事务 本地事务域 T3业务操作 Publisher 业务操作 T1 发送half消息 S1 定期检查未提交的消息 业务操作和消息存储都在本地事务域进行,不存在跨资源的事务。 提交/回滚消息有可能失败,系统会处于短暂的不一致状态 Broker会主动发送Check消息,确认消息是否提交或回滚 最终一致 将分布式事务分解在两个本地事务中 客户端需要付出的代价 实现CheckMessageListener接口 T2存储half消息 Storage Broker S3 提交:更新数据库 标识消息可发送 回滚:删除消息 T5 提交:更新数据库 标识消息可发送 回滚:删除消息 本地事务域

Notify——订阅者集群 订阅者集群:消息的一个逻辑上的订阅者是有多个物理节点组成的一个集群 A1 A2 A3 Publisher Broker 应用B B1 B2 B3 订阅者集群:消息的一个逻辑上的订阅者是有多个物理节点组成的一个集群

Notify——消息存储 多种安全级别的存储 支持存储节点的动态变化 File Oracle+小型机+存储 MySQL MySQL + Replication 同步写入两个存储节点 支持存储节点的动态变化

Meta——跟kafka有什么不同? 用java替换scala Consumer API没有采用kafka的stream方式,而是同时实现同步获取和异步订阅两种方式 存储结构上采用自定义结构,更简洁紧凑 客户端的连接复用 实现HA复制 实现发送的软负载 支持本地和XA事务 支持http协议 数据迁移、扩容对用户透明

Outline 淘宝消息中间件概览 消息中间件应用场景 分布式事务 数据复制 日志同步 delay queue 广播通知 总结

场景(一)分布式事务 为面向服务架构(SOA)提供分布式事务支持 保证全局数据的一致性 … 商品管理 store 物流 store 交易中心 付款成功消息 Broker … store CRM store

场景(二)数据复制 利用消息中间件将数据从源头复制到多个目的地 满足搜索、离线分析和分表规则变化等需求 Search DB binlog DB Sync Broker hadoop DB

场景(三)日志同步 应用通过可靠异步方式将日志同步到消息中间件 可以对日志做实时或离线分析 App App App App App Broker HBase Storm

场景(四)delay queue 把消息中间件当做可靠的延迟队列 分布式环境下的定时器 Publisher Broker 延迟投递 Subscriber recover

场景(五)广播通知 可靠的集群内广播通知 用于通知cache失效等事件 App App App ②广播通知 Broker ①发布通知 App

总结 消息中间件对于大型分布式系统非常重要 扩展性 可用性 自动流量调节 开源产品的选择 谨慎对待标准产品和企业级解决方案 KISS原则