SlideShare une entreprise Scribd logo
1  sur  20
消息 列 与队 设计 实现总结
Sunzhidong
msn: everestsun@126.com
• 系统概述
• 应用场景
• 后续发展
• 项目总结
–设计
–实现
–优化
–思考
提纲
• 消息队列技术是分布式应用间交换信息的
一种技术。它简化了应用之间数据的传输
,屏蔽底层异构操作系统和网络平台,提
供一致的通讯标准和应用开发,确保分布
式计算网络环境下可靠的、跨平台的信息
传输和数据交换。
• “ 百度知道”
消息 列概述队
• BMQ 是百度 Ecom 和 IBase 两部门共同合
作研发,基于 pub/sub 模式的消息队列集群
服务
• 产品特性
–管理性:多产品线统一运维,支持多 topic
–安全性:用户管理,读写权限验证
BMQ 介绍
• 产品特性
–可靠性:保证消息在异常情况下不丢失、不重
复
–有序性:保证消息有序送达所有消费者
–可用性:异常情况下的 Failover 容错机制
–易用性:提供 C++/PHP 的客户端 API, 屏蔽通
讯细节
–高性能:多客户端聚合性能异步 5K/s, 单客户
端同步 1K/s 无 slave 模式 7K/s
BMQ 介绍
• 异步通讯应用
–MailboxIM
• 增量可靠传输
–Yahoo Pnutscm-transfer
• 社区消息广播
–TwitterFeed
• 复杂系统解耦
MQ 用 景应 场
• 集群可扩展能力
• 提升单点的可靠性
• 单点切换提高可用性
• 增强系统状态监控
• 制定运维管理系统
后 展续发
• 定制化的下游消费需求
• 丰富的多语言 API
• Restful 接口支持
• 特殊需求的扩展
–生产消费:单一的中间消费者
–点对点:单一的终极消费者
后 展续发
• 设计
–明确系统目标特性,逐一突破
–慎重引入开源、第三方产品库
–不要凭空想象出一些特殊需求
–多考虑便于测试、运维的需求
–缩小迭代的 Gap ,连续非跳跃
目项 总结
• 设计
–架构设计
•集群与分布:中心节点(单点)
•分布可管理性 : 问题 <- 中间层
•如何可扩展:无状态设计
•轻量级设计,与其避免异常,不如可恢复
目项 总结
• 设计
–数据模型
•需求决定了模型
•数据校验、压缩、索引
–内存管理
•Cache 设计
•同步一致性需求
目项 总结
• 设计
–负载均衡
•极端情况下的负载问题
•热点的发现和避免
–静态 Vs 动态
–主动 Vs 被动
•Pull /push
•懒惰更新,延迟策略
•外部驱动
目项 总结
• 开发
–什么更重要?
–KISS + DRY + SOLID
–Holley Wood : don’t call me, we will call u
–防御性编程的不信任法则:
•input/output check
•inner stat check
•double check
目项 总结
• 开发
–提高可单测性
–降低对外依赖
•低耦合 <- 高内聚
–代码设计分层
–关于代码重构
•refactor early and often
–DRY 事不过三
目项 总结
• 开发
–关于异常
•严格发现,延迟处理
•不稳定,不要过多容错
–多线程问题
•各种锁之外
–Lock free
–引用计数
–数据 + 状态
目项 总结
• 优化(软件 + 硬件)
–架构、流程、算法、代码
–明确性能目标和限制
–抓住瓶颈重点优化,权衡 ROI
–不要过早、过度优化
–通用影响性能,特有流程优化
系 化统优
• 优化
–网络模型选择, socket 40ms pro
–降低锁粒度,防止多重锁
Write 24/s->5000/s
–尽量应用异步接口和模型
–迭代开发,尽早建立测试基准
•便于分析和定位变化的根源
系 化统优
• 架构
–多 slave 是否必要
–网络线程模型优化
• 优化
–消息同步转发方式
• Slave Group Commit Vs 滑动窗口
• Common Batch Commit Vs 滑动窗口
–Slave 对性能的影响
–滑动窗口对性能的影响
–滑动窗口的动态调整
后 思考续
• 日志完整性
–线上问题的可跟踪性
• 深藏的 bug 某一天会灵魂附体
• 试运行和监控
–监控,监控,还是监控
后 工作续
结束语
谢 谢

Contenu connexe

En vedette

涨客资,用推策 推策产品介绍
涨客资,用推策 推策产品介绍涨客资,用推策 推策产品介绍
涨客资,用推策 推策产品介绍Baidu
 
Leveldb background
Leveldb backgroundLeveldb background
Leveldb background宗志 陈
 
The Anatomy Of The Google Architecture Fina Lv1.1
The Anatomy Of The Google Architecture Fina Lv1.1The Anatomy Of The Google Architecture Fina Lv1.1
The Anatomy Of The Google Architecture Fina Lv1.1Hassy Veldstra
 
Baidu
BaiduBaidu
BaiduNanor
 
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...DataStax
 

En vedette (9)

Level db
Level dbLevel db
Level db
 
涨客资,用推策 推策产品介绍
涨客资,用推策 推策产品介绍涨客资,用推策 推策产品介绍
涨客资,用推策 推策产品介绍
 
Leveldb background
Leveldb backgroundLeveldb background
Leveldb background
 
Bigtable
BigtableBigtable
Bigtable
 
The Anatomy Of The Google Architecture Fina Lv1.1
The Anatomy Of The Google Architecture Fina Lv1.1The Anatomy Of The Google Architecture Fina Lv1.1
The Anatomy Of The Google Architecture Fina Lv1.1
 
Baidu
BaiduBaidu
Baidu
 
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
 
GOOGLE BIGTABLE
GOOGLE BIGTABLEGOOGLE BIGTABLE
GOOGLE BIGTABLE
 
The Google Bigtable
The Google BigtableThe Google Bigtable
The Google Bigtable
 

Similaire à 百度消息队列设计和实现总结

达尔文信息云平台
达尔文信息云平台达尔文信息云平台
达尔文信息云平台SmartData
 
03 李实恭-乘云之势以智致远 0611
03 李实恭-乘云之势以智致远 061103 李实恭-乘云之势以智致远 0611
03 李实恭-乘云之势以智致远 0611ikewu83
 
Zh tw introduction_to_cloud_computing
Zh tw introduction_to_cloud_computingZh tw introduction_to_cloud_computing
Zh tw introduction_to_cloud_computingTrendProgContest13
 
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open CampAndrew Wu
 
雲端運算的演進與定義
雲端運算的演進與定義雲端運算的演進與定義
雲端運算的演進與定義Awei Hsu
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验guiyingshenxia
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验colderboy17
 
新浪微博平台与安全架构
新浪微博平台与安全架构新浪微博平台与安全架构
新浪微博平台与安全架构n716
 
天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011Yiwei Ma
 
Novice's and Expert's Mental Model of Interacting with Router
Novice's and Expert's Mental Model of Interacting with RouterNovice's and Expert's Mental Model of Interacting with Router
Novice's and Expert's Mental Model of Interacting with RouterYian Lu
 
3com 20101116
3com 201011163com 20101116
3com 20101116i70
 
Iaa s管理平台的规划与研发 社区
Iaa s管理平台的规划与研发 社区Iaa s管理平台的规划与研发 社区
Iaa s管理平台的规划与研发 社区benbenhappy
 
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用Zac John
 
01.ofm11g概览
01.ofm11g概览01.ofm11g概览
01.ofm11g概览Meng He
 
Challenges and opportunities computing Kuo-Yi Chen
Challenges and opportunities computing   Kuo-Yi ChenChallenges and opportunities computing   Kuo-Yi Chen
Challenges and opportunities computing Kuo-Yi Chenkuoyichen
 
云计算在电信业务中的应用分析 罗圣美
云计算在电信业务中的应用分析 罗圣美云计算在电信业务中的应用分析 罗圣美
云计算在电信业务中的应用分析 罗圣美Riquelme624
 
美国云计算发展现状及趋势-2010
美国云计算发展现状及趋势-2010美国云计算发展现状及趋势-2010
美国云计算发展现状及趋势-2010Jiang Zhu
 
安全云平台的探索实践
安全云平台的探索实践安全云平台的探索实践
安全云平台的探索实践Hardway Hou
 
淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)vanadies10
 

Similaire à 百度消息队列设计和实现总结 (20)

达尔文信息云平台
达尔文信息云平台达尔文信息云平台
达尔文信息云平台
 
03 李实恭-乘云之势以智致远 0611
03 李实恭-乘云之势以智致远 061103 李实恭-乘云之势以智致远 0611
03 李实恭-乘云之势以智致远 0611
 
Zh tw introduction_to_cloud_computing
Zh tw introduction_to_cloud_computingZh tw introduction_to_cloud_computing
Zh tw introduction_to_cloud_computing
 
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
 
雲端運算的演進與定義
雲端運算的演進與定義雲端運算的演進與定義
雲端運算的演進與定義
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
 
新浪微博平台与安全架构
新浪微博平台与安全架构新浪微博平台与安全架构
新浪微博平台与安全架构
 
天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011
 
Novice's and Expert's Mental Model of Interacting with Router
Novice's and Expert's Mental Model of Interacting with RouterNovice's and Expert's Mental Model of Interacting with Router
Novice's and Expert's Mental Model of Interacting with Router
 
3com 20101116
3com 201011163com 20101116
3com 20101116
 
Iaa s管理平台的规划与研发 社区
Iaa s管理平台的规划与研发 社区Iaa s管理平台的规划与研发 社区
Iaa s管理平台的规划与研发 社区
 
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
 
01.ofm11g概览
01.ofm11g概览01.ofm11g概览
01.ofm11g概览
 
Challenges and opportunities computing Kuo-Yi Chen
Challenges and opportunities computing   Kuo-Yi ChenChallenges and opportunities computing   Kuo-Yi Chen
Challenges and opportunities computing Kuo-Yi Chen
 
云计算在电信业务中的应用分析 罗圣美
云计算在电信业务中的应用分析 罗圣美云计算在电信业务中的应用分析 罗圣美
云计算在电信业务中的应用分析 罗圣美
 
美国云计算发展现状及趋势-2010
美国云计算发展现状及趋势-2010美国云计算发展现状及趋势-2010
美国云计算发展现状及趋势-2010
 
安全云平台的探索实践
安全云平台的探索实践安全云平台的探索实践
安全云平台的探索实践
 
淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)
 
Mocha Bsm
Mocha BsmMocha Bsm
Mocha Bsm
 

百度消息队列设计和实现总结