




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
开放消息服务 (ONS)原理与实践 沈询 中间件 自我介绍 花名 沈询 阿里巴巴中间件 新浪微博: 淘宝沈询_WhisperXD 阿里分布式数据库DRDS,TDDL负责人 阿里分布式消息服务ONS(Notify,MetaQ) 负 责人 加群聊架构:326140964 Open Notification Service(ONS) ONS的应用场景 ONS的设计思路 ONS的关键概念 消息乱序问题 消息重复问题 分布式事务与ONS ONS的应用场景 的应用场景 ONS的应用场景 异步 解耦 最终一致 并行 ONS的应用场景 过年了,拜年发微信 普通青年:编辑微信,群发给所有人 文艺青年:编辑微信,交给美腻秘书发送,自 己去 二逼青年:编辑微信,发送;编辑微信,发送; 编辑微信,发送;编辑微信,发送;编辑微信, 发送;编辑微信,发送;编辑微信,发送; 消息系统 消息中间件 解耦 异步 最终一致 并行 举一个淘宝的简单的例子 交易 创建 交易 日志 直冲 系统 其他 200个 系统 消息系统 消息中间件 解耦 异步 最终一致 并行 交易 创建 交易 日志 直冲 系统 其他 200个 系统 0.1s 10s 0.1 s 10s 交易 创建 交易 日志 直冲 系统 消息 中间 件 0.1s 0.1s 其他 200个 系统 ONS的设计思路 的设计思路 ONS的设计思路和关键概念 设计假定: 每台PC机器都可能down机不可服务 任意集群都可能处理能力不足 最坏情况一定会发生 内网环境需要低延迟来提供最佳用户体验 关键设计 分布式集群化 强数据安全 海量数据堆积 毫秒级投递延迟 无单点集群化设计 发布者 发布者 发布者 Ons Server Ons Server 订阅者 订阅者 订阅者 集群 集群 集群 理论上无限的处理能力 集群级别高可用 强数据安全和高可用 发布者 发布者 发布者 Notify Server Notify Server ONS Server 发送消息 消费消息 发布者 发布者 订阅者 单队列RAID保证数据冗余 单队列RAID保证数据冗余 异步跨机复制冗余 单队列RAID保证数据冗余 单队列RAID保证数据冗余 异步跨机复制冗余 海量数据堆积能力 任意集群都可能处 理能力不足 消息堆积是常态 交易创建 交易日志 直冲系统 消息中间 件 0.1s 0.1s 其他200 个系统 海量数据堆积能力 面向堆积设计 大量堆积,系统稳定,延迟不增 百亿级别的消息堆积能力 双11多年考验 单消息Server不可用数据不丢 默认就是落磁盘策略,并针对磁盘吞吐做 了大量优化 集群可无限扩展,保证足够堆积能力 毫秒级的投递延迟 采用长轮询/推送方式 ONS Server 订阅者 ONS的关键概念的关键概念 主题(Topic) 第一级消息类型 书的标题 交易消息 消息类型(Tag/MessageType) 第二级消息类型 书的目录 方便检索使用 交易消息 交易创建 交易完成 发送/订阅组(ProducerID/ConsumerID) 发送/接受机器的集群 消息乱序问题消息乱序问题 消息乱序问题 产生原因 有序队列优劣分析 阿里中间件经验谈 产生原因 吞吐+容错 vs. 方便 容易理解 发布者 Ons Server 订阅者 订阅者 订阅者 集群 集群 集群 0 1 2 3 4 5 6 有序队列优劣分析 优势: 容易理解 处理问题容易 劣势: 并行度瓶颈 异常处理 BUT 我们需要集群的容错性和高吞吐! 阿里中间件经验谈 在世界上解决一个计算机问题最简单的方 法: “恰好”不需要解决它! 阿里中间件经验谈 一笔订单有三个状态(创建,付款,发货) 订单之间没有先后顺序,所以乱序无所谓 某应用只关注付款 :) Bob给Smith转账 异步事务单元 Bob账户 事 务 时 间 序 事务单元 Smith账户 多人通过消息转账情况 异步事务单元2 事 务 时 间 序 Smith账户 异步事务单元1 阿里中间件经验谈 不关注乱序的应用是大量存在的 队列无序并不意味着消息无序 TCP协议 可以通过发送端编号和接收端恢复的方式恢复 顺序 消息重复问题消息重复问题 消息重复问题 产生原因 阿里中间件经验谈 产生原因 网络不可达问题 Ons Server 订阅者 订阅者 阿里中间件经验谈 最好的解决方法是 恰好不需要 幂等 S*S = S 某个操作无论重复多少次,结果都一样 阿里中间件经验谈 幂等 无论做多少次结果都一样 insert into T (col1) values (1) update T set col = 2 where col = 1 delete from T where col = 1 非幂等 update set col = col + 1 阿里中间件经验谈 非幂等消息去重 保证有个唯一ID标记每一条消息 保证消息处理成功与去去重表日志同时出现 代价? 分布式事务与分布式事务与ONS DRDS实践 事务的分布式优化 Bob账户 Smith账户 事 务 时 间 序 事务单元 DRDS实践 事务的分布式优化 事 务 时 间 序 Bob账户 Smith账户 DRDS实践 事务的分布式优化 异步事务 事务1 事务2 事务3 事务4 事务5 事 务 时 间 序 异步3 异步3 异步5 事务1 事务2 事务3 事务4 事务5 事 务 时 间 序 Bob账户 Smith账户 Bob账户 Smith账户 DRDS实践 事务的分布式优化 异步事务单元 Bob账户 事 务 时 间 序 事务单元 Smith账户 ONS消息与事务转账 关键设计难点 如何保证消息发出与Bob账户减钱同时成功或 同时失败? 消息处理超时如何解决? 消息处理失败如何解决? 消息发送者 事务单元 同时成功、同时失败(事务消息) 事务操作事务操作 Trx.begin() 查看Bob是否有100 元 减少Bob 100元 Tmit() 发消息 ONS消息集群 ONS消息集群 ONS消息集群 消息接收者 收消息处理 消息发送者 事务单元 同时成功、同时失败(事务消息) 事务操作事务操作 Trx.begin() 查看Bob是否有100 元 减少Bob 100元 Tmit() 发消息 ONS消息集群 ONS消息集群 ONS消息集群 消息接收者 收消息处理 消息发送者 事务单元 同时成功、同时失败(事务消息) 事务操作事务操作 Trx.begin() 查看Bob是否有100 元 减少Bob 100元 Tmit() ONS消息集群 ONS消息集群 ONS消息集群 消息接收者 收消息处理 发消息 确认消息发送 消息发送者 事务单元 处理超时问题(重复) ONS消息集群 ONS消息集群 ONS消息集群 消息接收者 事务单元 发消息 确认消息发送 事务操作事务操作 Trx.begin() Smith加一百
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年消化内科克罗恩病诊治规范模拟考试答案及解析
- 2025年药物治疗原理及不良反应考核模拟试卷答案及解析
- 2025年全科医学工伤鉴定的程序规定模拟考试试卷答案及解析
- 2025年儿科感染性疾病诊断治疗考试卷答案及解析
- 2025年产科分娩镇痛技术操作规范与生产过程监护答案及解析
- 新质生产力社会应用案例
- 2025年急诊科立体定向穿刺术实操考试答案及解析
- 2025年放射科影像学常见异常体征识别考核答案及解析
- 税收服务新质生产力发展策略
- 2025年急诊医学重症抢救技术模拟考试卷答案及解析
- 2025-2026学年人美版(2024)小学美术三年级上册(全册)教学设计(附目录P157)
- 2025年兵团普通职工考试试题及答案
- 2025年全国企业员工全面质量管理知识竞赛题库及答案(共70题)
- 西门子燃气轮机介绍课件
- 中国园林史全
- 社会调查研究方法-课件
- 雕塑基础教学课件
- 生理学(全套课件)
- 汉书-张骞传课件
- 市政道路养护工程监理工作
- 练平舌音和翘舌音的绕口令
评论
0/150
提交评论