饿了么实时架构演进
2020-02-27 192浏览
- 1.饿了么实时架构演进 to 常盛 2016.10.27 The way to do really BIG things is to do really SMALL things , and grow them bigger.
- 2.日均交易额 2亿元+ 日均订单量 500w+ 覆盖城市 1000+ 员工数 15000+
- 3.分享提纲 从0到1 高速发展 成熟与完善 新方向&新挑战 未来构想 Q&A
- 4.实时平台架构图 每一个组件也许都踩过N次的坑 。。。
- 5.从0到1的实践 数据源: 数据收集: 消息队列: 实时引擎: 数据存储: +
- 6.从0到1的应用 Ø 页面访问性能 Ø 主站&各页面PV/UV Ø 脚本JS错误 页面性能(分城市) JS脚本错误(分运营商)
- 7.从0到1的总结 巧妇难为无米之炊(业务场景) 欲善其事,必利其器(技术工具) 兵马未动,粮草(监控)先行 他山之石,可以攻玉(高效、快速)
- 8.分享提纲 从0到1 高速发展 成熟与完善 新方向&新挑战 未来构想 Q&A
- 9.高速发展之烦恼 1、业务场景:交易、推荐、测试 ... 2、平台问题:雪崩、规范 ... 3、监控:粒度粗、告警多 ... 4、压力:大促销、多维指标 …. 5、资源:机器&人力、经验匮乏 … 监而不控 平台问题 不断 实时业务 剧增 监而难控 平台升 级优化 大促压力 资源不足 经验匮乏
- 10.高速发展之行动 数据源 • 流量日志 • 交易订单 • 物流配送 架构优化 • Binlog Parser • JVM HLL方案 • 双链路高可用 • 链路压测 1. 数据源: • 流量(UBT集群) • 交易订单(MySQL) • 物流配送(MySQL、Rabbitmq) 数据存储 • Hbase • MySQL • RedisCluster 2. 数据存储: • RedisCluster (双写) • Hbase • MySQL(DAL控制)
- 11.高速发展之架构优化 String -‐> Pb 格式优化 自动拉起 Snappy compress Binlog(OR) Data2Kafka Commit Zk Offset 数据回放
- 12.高速发展之应用优化 JVM HLL方案 • 存储方式优化 • qps降低4倍 双链路高可用 方案 • 链路双写 • 应用自动降级 • 数据自动恢复 实时链路梳理 压测 • 延迟毫秒级 • Storm Heatbeat调整 • 灾备演练
- 13.高速发展监控优化 监控 问题 监控 梳理 监控 完善 监控 展示 监而 可控 1. 监控问题:粒度粗、无效告警多 …… 2. 监控梳理:全链路、机器级别、服务级别、应用级别 …… 3. 监控完善:链路延迟、组件Metric、DB 性能 …… 4. 监控展示:阈值实时告警; 数据入库展示 …… 5. 监而可控:应用自动拉起、监控驱动优化 ……
- 14.高速发展之成果 用户行为实时测试系统 上海街道配送热力图 全国订单实时热力图
- 15.高速发展之成果 订单流量实时指标
- 16.高速发展之总结 Ø 实时集群容量 200台+(7 storm集群) Ø 数据量 qps:10w/s Ø 计算量 400w/s Ø 链路压力 各组件20%以内 总结经验 疑难杂症
- 17.分享提纲 从0到1 高速发展 成熟与完善 新方向&新挑战 未来构想 Q&A
- 18.成熟与完善之窘境初现 1. 实时计算平台?不就Storm吗? 2. 业务实现实时应用,如何开发、上线、监控? 1. 消息队列里同一份数据,总是被多次重复处理? 2. 各种乱七八糟的报警,如何屏蔽或自定义监控? 3. 应用又报错,哪里可以快速、高效检索应用日志? 。。。。。。
- 19.成熟与完善之思考 统一日志 检索 数据清洗、 归档、共 享 常用组件 封装 实时平台 成熟完善 实时任务 平台化管 理 多元化计 算引擎/ 存储
- 20.成熟与完善之数据共享 Ø 清洗、分离、归档 Ø 数据复用 Ø 跨IDC传输 • 99% Delay 2s以内 • Protobuf + Snappy Compress
- 21.成熟与完善之数据检索 ElasticSearch检索性能 2个集群,上海20台ssd机器 qps : 13w/s 25亿/天 Cpu 5% Heap Usage:20% Ø 应用日志/监控实时收集 • 日志按应用合理限流 Ø • • • Ø Hangout VS Flume 性能对比 • 30 Flume Agent 高峰延迟10min • 1 Hangout 10线程 数据无延迟 Ø ElasticSearch监控 • Metric监控 • KOPF、HQ …
- 22.成熟与完善之组件封装 Typhon BaseBolt BaseSpout Kafka Spou t Mysq l Spou t Drc Spou t Eleme Base Base Func Redis Proto buf Bolt Bolt Bolt Delay Bolt Topology HyperL ogLog Bolt ElasticS earch Influx db Report er Repor ter
- 23.成熟与完善之平台化 Ø 项目任务管理、权限控制 Ø 多版本控制,方便回滚 Ø 发布前置检测
- 24.成熟与完善之平台化 Ø 实时任务Metric监控指标 Ø 自定义监控
- 25.成熟与完善之平台化 Ø 数据源探查 Ø 实时集群管理 Ø 容量监控
- 26.成熟与完善之平台化 Ø 实时任务指标管理 Ø Binlog Parser 管理 Ø 数据质量管理
- 27.成熟与完善之多元化 Grace(监控离线性能) 数据源: 数据收集: 消息队列: 实时平台: 数据存储: Redis时间响应系统
- 28.成熟与完善之应用 Ø 热卖美食实时推荐 Ø 猜你喜欢实时特征提取 Ø 准时达实时定位 Ø 饿了么实时看板指标 Ø 实时风控
- 29.分享提纲 从0到1 高速发展 成熟与完善 新方向&新挑战 未来构想 Q&A
- 30.新方向之选型 BI同学想说: 如何快速实时数据报表&&实时数据分析 实时计算同学想说: 计算框架能否更快、更准确、更完美
- 31.新方向之Flink实践 Flink Features: • 高吞吐、低延迟 • 支持 Event Time • exactly-once • 高度灵活的流式窗口 • 迭代和增量迭代
- 32.分享提纲 从0到1 高速发展 成熟与完善 新方向&新挑战 未来构想 Q&A
- 33.不断完善的平台框架图
- 34.不断完善平台之Next 平台性能提升 Storm调优/资源隔离 Flink、Jstrorm适配 平台自动化运维支撑 运维一键化/容量分析 资源审计、治理 多元化平台 StreamCQL RDP优化
- 35.Q&A