高可用分布式流数据存储设计-李玥⾼高可⽤用分布式流数据存储设计 李玥 京东集团 技术架构部 架构师 ⾃自我介绍 ⾃自我介绍 李李玥 京东集团 技术架构部 架构师 负责主导设计新⼀一代京东消息中间件系统,专注于流数据的⼀一致性分发和可靠存储、分布式实时计算和⾼高可⽤用分 布式系统架构等技术领域。 从事互联⽹网研发、架构10余年年,曾在浪潮集团、当当⽹网等公司从事架构相关⼯工作。2017年年加⼊入京东,期间提升京 What 如何定位?如何融入生态系统? How 如何实现?如何优化? WHY 为什什么需要流数据存储? 单体应⽤用 烟筒式 SOA 微服务 那些年年的服务 MySQL ES HDFS KV HBase Hive 这些年年的数据 Services Data MySQL ES HDFS KV HBase Hive 统⼀一的流数据存储平台 我们的愿景 Services ns 1 ms = 1, 000, 000 ns JournalQ有多快? 32, 961, 776 TPS 测试服务器器:32C/256G/4TB SSD/万兆以太⽹网 测试每条消息⼤大⼩小为:1KB LZ4 压缩 单节点 存储结构设计 0 10 50 55 80 Journal 0 10 50 55 80 Index 0 134217342 268433156 4026538530 码力 | 36 页 | 6.02 MB | 1 年前3
领域驱动设计&中台/演进式架构的平台化落地⾸首席咨询师 姚安峰 关于讲师 ThoughtWorks⾸首席咨询师。从事精益、敏敏捷等软件 产品研发⽅方法的践⾏行行与推⼴广,对从业务探索、产品与 服务设计、演进式架构、敏敏捷开发、持续交付、数据 运营等端到端数字化业务的⽅方法与实践及其规模化应 ⽤用有深⼊入研究和丰富实践经验。 ⽬目前致⼒力力于帮助各⾏行行业客户实现数字化转型,建⽴立数 字时代的精益研发体系,提升规模化创新能⼒力力。近两 package search component component component component component component microservice container ⼤大泥泥球 ⼤大量量⼦子尺⼨寸的应⽤用阻碍频 繁增量量变更更,因为⾼高耦合 性需要⼀一次部署⼤大量量代码、 ⼤大量量的应⽤用。 单例例架构 ⾮非结构的单例例架构 user interface Class module database API layer client requests client requests client requests 向以“领域”为中⼼心的架构迁移 演进数据库 (like code) — Tested — Versioned — Incremental scripting all db changes incrementally db0 码力 | 42 页 | 2.95 MB | 1 年前3
高可用与一致性:构建强一致性分布式数据库 TiDB-沈泰宁构建强⼀一致性分布式数据库 TiDB 沈泰宁 R & D Engineer @ PingCAP ⾃自我介绍 ⾃自我介绍 • 沈泰宁 • R&D Engineer @ PingCAP • Maintainer • rust-prometheus • grpc-rs • … ⽬目录 • What is TiDB? • How to test? What is TiDB? Single0 码力 | 45 页 | 4.63 MB | 1 年前3
ServiceComb 开源微服务框架技术演进之路 巨震基于SDK的传统微服务框架 • 何为Service Mesh • 演进:从SDK到Service Mesh • 拥抱Service Mesh开源生态 • 相关资源 #微服务 #Service Mesh #Sidecar #云原生 #SDK #数据面,控制面 大纲 服务形态的演进 SDK SDK SDK SDK proxy proxy proxy proxy Config Center Istio Apollo Huawei CSE 拥抱Istio开源生态 • Envoy Sidecar替换方案 • Go SDK接入Istio • 网络代理替代Iptables流量劫持 • Handler chain接入不同生态,不依赖Mixer Istio Pilot Proxy SDK Discovery Config 无商业强绑定,高自由度,企业自主可控 • 完整的生态栈,涵盖开源主流微服务运维和安全领域 • 低学习成本,有编程语言基础即可快速上手 华为开源 ServiceMesh方案 Mesher ServiceCenter Java-chassis ServiceComb Pilot Citadel Istio ServiceComb开源生态 Zipkin Prometheus0 码力 | 20 页 | 861.58 KB | 1 年前3
苏宁易购小程序架构实践 苏宁 禹立彬和百度地图,头条小程序,应用在今日头条和抖音,还有各大厂家的 快应用等项目、 • 同时,WAP/APP等应用场景也需要同步开发,成本巨大。 小程序生态 • 围绕着小程序,各厂家也推出了一系列针对小程序的生态标准,联合 登录,授权获取用户信息,支付,通知消息,客服等等 • 对于这些生态功能来说,也需要一系列基础服务去支持 小程序的不足 • 组件化能力不足,代码复用能力弱 • API不统一,代码无法兼容 二维码服务——— 二维码预生成服务 • 图片合成———素材+二维码朋友圈分享 小程序服务-服务通知 • 微信——收集formid • 业务系统消耗formid发送模板消息 小程序服务-数据推荐 • 百度推荐———用户冷启动服务 • 基于商品库推荐 2 小程序前端框架 CONTENTS 小程序的前端构成 小程序的业务主要分为,核心购物流 程,活动玩法,辅助页面三类0 码力 | 36 页 | 833.39 KB | 1 年前3
领域驱动设计&中台/可视化的遗留系统微服务改造引⾔言 遗留留系统、微服务架构 任何⼈人类的设计都会腐化 软件当然也不不例例外 拆成微服务 微服务架构的九⼤大特征 •通过服务进⾏行行组件化 •围绕业务能⼒力力组织 •做产品⽽而不不是做项⽬目 •智能端点与傻⽠瓜管道 •去中⼼心化地治理理技术 •去中⼼心化地管理理数据 •基础设施⾃自动化 •容错设计 •演进式设计 可视化能帮我们什什么 掌握系统业务 明确系统边界 ⼩小步改造系统 的设 计思想,试图分离技术实现的复杂性, 围 绕业务概念构建领域模型来控制业务的复 杂性,以解决软件难以理理解,难以演化等 问题。团队应⽤用它可以成功地开发复杂业 务软件系统,使系统在增⼤大时仍然保持敏敏 捷。 事件⻛风暴暴⼯工作坊 - Event Storming是⼀一种领域建模的实践,是⼀一种快速 探索复杂业务领域的⽅方法: - 最初由Alberto Brandolini 开发,经过DDD社区和 划分限界上下⽂文 什什么是限界上下⽂文? 如何探索限界上下⽂文? 业务的扩展会产⽣生越来越多的领域模 型,任何⼤大型项⽬目都会存在很多的领 域模型。当不不同领域模型对应的软件 代码被放在⼀一起后,软件就变得庞⼤大 且复杂,代码难于理理解、且容易易出现 bug,所以需要通过限界上下⽂文来明 确定义领域模型的范围和职责。 为什什么使⽤用限界上下⽂文? 限界上下⽂文可以分为限界和上下⽂文两个词 来理理解,限界:指⼀一个界限,具体的某⼀一0 码力 | 54 页 | 3.85 MB | 1 年前3
领域驱动设计&中台/淘宝应用架构升级——反应式架构的探索与实践• 就职于阿⾥里里,经历: • 负责淘宝应⽤用架构升级 • 核⼼心开发 - 建设⽤用户增⻓长设施与平台建设 • 负责过分布式调⽤用链跟踪框架 & 系统 • 核⼼心开发 - 分布式数据库同步系统 • Github :https://github.com/zavakid • 开源项⽬目: • otter 核⼼心开发者: https://github.com/alibaba/otter 多个流之间才可能是并⾏行行的 Your Mouse is a Database! — Erik Meijer 流定义 • ⾯面向数据 • 操作、组合 ⾯面向流 • 业务逻辑 → 数据变换 • 数据变换 → 业务逻辑 数据 vs 逻辑 ⾯面向流编程是 ⾯面向数据编程 流式架构 流 分布式 性能 并发控制 业务编写 流 - 业务编写 创建 just / from* / / window / scan / flatMap / groupBy 组合 merge / concat / startWith / zip / switch* ⼤大量量强⼤大的操作符 声明式表达 完备、更更⾼高级、更更快捷 requestFlow .buffer(10, MILLISECONDS, 16) .flatMap(service::batchOps)0 码力 | 27 页 | 1.13 MB | 1 年前3
美团点评旅游推荐系统的演进•负责酒旅搜索排序推荐 •负责酒旅数据仓库和数据产品建设 •2014年之前 美团网技术部数据组 •参与数据平台搭建 •负责全平台数据仓库和数据产品建设 •2011年 百度电子商务事业部 •有啊商城的开发 •2010年毕业于中科院计算所 Outline •美团点评酒旅业务简介 •基于用户画像的召回策略演进 •基于L2R的排序策略优化 •从海量大数据的离线计算到高并发在线服务的推荐引擎架构设计 World 新美大酒旅 国内发展最快的一站式综合住宿服务 平台 国内最大的在线门票交易平台 酒旅搜索推荐 2015Q3 组建推荐团队 2015Q4 周边游频道内推荐 2016Q1 搜索少/无结果推荐 2016Q2 详情页推荐 2016Q3 酒旅交叉推荐 2016Q4 点评旅游推荐 酒店住宿 境内度假 境外度假 大交通 搜索/推荐 数据产品 酒旅数据仓库 数据挖掘 集团数据平台 旅游推荐产品形态 旅游推荐产品形态 旅游场景下用户兴趣点不明 确,频道内超过50%订单来 自推荐 需求个性化 推荐形式多样 本异地差异大 季节性明显 旅游推荐面临的问题 本异地差异大 超过30%订单来自异地请求 常驻城市!=浏览城市 推荐形式多样 景点下有大量相似门票,不适合 按Deal样式展现 跟团游、景酒套餐关联多个景点 ,不适合按POI样式展现 季节性明显 冬季温泉订单占比超过20%0 码力 | 49 页 | 5.97 MB | 1 年前3
高性能高可用机票实时搜索系统海海量量数据 设计思路路 搜索框架 报价引擎 待解问题 系统诉求 • 全⽹网价最低 • 航线报价最全 • 实时性最好 • 产品最丰富 • 预定最流畅 ⾯面临问题 航班舱位时刻变动 供应商规则调整密集 航司政策各有不不同 供应商的office权限不不⼀一致 运价规则变化繁多 GDS数据成本不不菲 低价缺失 报价不不全 变价 海海量量数据 • 规则量量 ⼀一个巨⼤大的哈希表 • 响应所有渠道价格变动进⾏行行计算 • 快 • 0 变价 设计思路路 CAP BASE 理理论 按需计算 消息驱动 异步 分布式 分级缓存 ⽆无状态 搜索框架 PriceMerger 报价引擎 供应商直连 旗舰店 CacheManager 抓取 App WWW Touch 分销 Cache Redis MQ MQ 航班数据 运价数据 应⽤用层 应⽤用层 聚合层 报价源 基础数据 搜索框架 遇到问题 解决⽅方案 • 报价数量量多,内存问题 • 报价源多,不不稳定 • 响应时间要求苛刻 • 搜索条件有热点 • 缓存报价不不准 • 尽量量⽤用原⽣生数据类型,编码 • 回数⽐比例例,异步搜索更更新 • 分批回数 • ⼀一致性哈希,负载均衡 • 供应商粒度,主动更更新 报价引擎 供应商规则 航司运价 航班舱位状态0 码力 | 26 页 | 1.94 MB | 1 年前3
微服务和Service Mesh 在多个行业落地实践设计要点四:服务拆分与服务发现 www.163yun.com 设计要点亓:数据库横向扩展 www.163yun.com 设计要点六:缓存的设计 APP缓存 CDN 接入层 静态资源 动态资源静态化 应用本地缓存 分布式缓存 数据库为中心 缓存为中心 www.163yun.com 设计要点七:消息队列与异步化 统计 概览 知识 库 APM (应用运行期监控) 运行时 拓扑 性能 监控 服务 筛选 调用 链 调用 栈 JVM 监控 数据库 监控 性能 告警 自定义 数据 服务 告警 监控 大屏 账户 审计 CICD (开发流程管理) 代 码 检 出 代 码 编 译 镜 像 构 建 集 成 测 试 自 动 部 署 流水线管理 限流 熔断 降级 容错 路由 负载 均衡 参数 分流 拓扑 依赖 配置 中心 服务 监控 服务 告警 认证 鉴权 统计 概览 知识 库 服务 告警 监控 大屏 账户 审计 注册,发现,调用都提供鉴权 认证鉴权 接口文档统一维护 文档与运行时一致 减少调用沟通成本 知识库 根据平台、租户、项目三个层次区分权限作用域 操作记录,审计日志,事件查询0 码力 | 39 页 | 3.06 MB | 1 年前3
共 34 条
- 1
- 2
- 3
- 4













