领域驱动设计&中台/淘宝应用架构升级——反应式架构的探索与实践反应式架构的探索与实践 淘宝 泽彬(许泽彬) • 花名:泽彬 • 就职于阿⾥里里,经历: • 负责淘宝应⽤用架构升级 • 核⼼心开发 - 建设⽤用户增⻓长设施与平台建设 • 负责过分布式调⽤用链跟踪框架 & 系统 • 核⼼心开发 - 分布式数据库同步系统 • Github :https://github.com/zavakid • 开源项⽬目: • otter 核⼼心开发者: • 远程调⽤用已经异步化,所以是已经且过 Scheduler • 可以⼿手⼯工切 Scheduler (subscribeOn / observeOn) 业务顺序编写 并发⽅方式执⾏行行 • 不不同的流 • ⽆无依赖 • 切过 Scheduler 就可以⾃自动并发 多流并发 • 业务按照语义顺序编写 • 更更友好的控制并发 维护性 和 性能 更更优! 优雅控制 已有集成,或集成成本低 5. DB(JDBC)(Block) * ⽤用 Ali JVM协程 异步集成 * 或⽤用线程池异步集成 6. 限流组件 7. 分布式跟踪系统 解决业务异步/回调 引⼊入的 上下⽂文传递 问题 8. iOS Objective-C 的 Rx 框架 实现 AliRxObjC (会开源) 业务实施 1. 先⾯面向应⽤用级升级 * 应⽤用实施升级0 码力 | 27 页 | 1.13 MB | 1 年前3
全球架构师峰会2019北京/量子计算/量子计算及其潜在应用&mdash2018年4月: Google发布72量子比特 超导计算机芯片 Bristlecone 2016年:IBM研制出5 量子比特的超导量子计 算机 2019年10月: Google 在Nature 发文,演示量子优 势 量子力学建立 量子计算理论发展 量子工程 1930 1960 1980 1990 2000 2010 1993年:姚期 智首次证明了 量子图灵机模 型与量子电路 模型的等价性 2019 HiQ Fermion 量子-经典混合算法VQE 量子-经典混合算法VQE(Variational Quantum Eigensolver) 量子-经典混合算法VQE结合经典计算机和量子计算机各自的优 势,协同求解能量本征值。用量子计算机处理量子态的制备、演化 和测量,用经典计算机处理能量及参数优化更新。 量子部分 经典部分 华为 HiQ Fermion: 部分关键功能测试数据 提供不同优化器作对比 全面的云上脉冲设计平台方案 动态迭代 优化脉冲 布洛赫球 量子调控主要利用优化算法优化脉冲波形,精准操控实 际量子芯片;在当前嘈杂中型量子(NISQ)发展阶段, 提供具有很好鲁棒性的优化脉冲。通过GUI展现量子调 控的过程,为用户提供一个我们开发的HiQpulse平台, 为客户提供更好的服务。 参数输入,包括系统参数、目标量子门或量子态、时 间、迭代次数、保真度、HiQ Pulse 提供的算法库 支持量子线路生成目标量子态0 码力 | 34 页 | 5.57 MB | 1 年前3
大规模分布式系统架构下调测能力构建之道大规模分布式系统架构下调测能力构建之道 李鑫 大纲 分布式环境下开发的调测效率问题 应对之道 远程应用服务 契约测试 分布式消息服务 分布式缓存 分布式服务的“租户”隔离策略 总体调测框架实践 分布式环境下调测方法论 单体应用 服务化 微服务 小中型规模应用+小型团队 中大型规模应用+多团队协同 Cache DB NFS Load Balancer (超)大型规模应用+契约协同 应用的发展演变历史 服务化后的问题 多团队协同的分布式环境下,不仅环境“重”,而且外部的服务是别的团队开发 的,你很难得到一个稳定、快速的外部服务提供环境,在此背景下进行功能/接口 调测存在如下困难: 开发依赖重 联调成本高 变动把控困难 拆 应用拆分 数据拆分 团队拆分 分布式服务 API Gateway 分布式文件 分布式缓存 分布式消息 DB Cluster 么也做不了 2. 我负责的功能依赖一堆的远程服务,为了本地调测,我必须从 头到尾梳理代码,再写一堆的mock语句把他们全mock掉了。 每当业务逻辑变化了,代码中要增减相应的mock语句;每当依 赖服务上线后,要把测试用例中对应的mock语句去掉。对测试 用例的修改工作贯穿于整个开发工作之中。 3. 我和某同事通过服务框架进行调用联调,结果另一同事也把同 名服务挂了上来,不幸的是,他的服务版本和我们的不一样,0 码力 | 19 页 | 2.74 MB | 1 年前3
从百度文件系统看大型分布式系统设计中的定式与创新cn 提纲 • 百度文件系统简介 • 分布式系统设计实践 • 总结与致谢 百度的集群环境 • 单个集群通常几千台机器 • 百度文件系统(BFS)、集群调度系统(Galaxy)、分布式协 调服务(Nexus)是核心服务 • 实时任务与批量任务混合部署 Galaxy master BFS master Nexus lock service 分布式软件栈中的BFS The Baidu BFS 集群调度系统 Galaxy 分布式协调服务 Nexus 分布式数据库 Tera 分布式计算框架 Shuttle Apps(Spider/Index/Search) 数据中心操作系统(DCOS) • 进程调度&内存管理 - Galaxy - 应用部署和任务调度 • 锁和信号量 - Nexus - 分布式锁 - 分布式通知 • 文件系统 - The Baidu File0 码力 | 24 页 | 937.45 KB | 1 年前3
领域驱动设计&中台/如何让DDD落地行订单 创建,创建成功后返回成功结果给订单API控制器器 如果商品库存不不⽀支持订单数量量,返回出错结果和原因给订单API适配器器 3.创建订单服务收到命令后,会把创建订单命令转换成订单,然后调⽤用订单仓库进⾏行行 保存,保存成功后会让事件发布器器发布订单已创建事件 4.事件发布器器会根据事件类型把订单已创建事件转发给商品库存订阅者, 5.商品库存订阅者收到事件以后会根据事件中的商品ID和订单数量量创建锁定商品库存 数量量创建锁定商品库存 命令,然后给锁定商品库存服务进⾏行行库存锁定 6.锁定商品库存服务收到命令后,会把根据命令中的商品ID从商品库存仓库中获取商 品库存,然后根据让商品库存锁定订单数量量,之后调⽤用商品库存仓库进⾏行行保存,最后 让事件发布器器发布商品库存已锁定事件 ……. 领域故事中的主要对象 领域对象 类型 命名 订单API控制器器 Adapter OrderController ��Address/Color 如何区分应⽤用服务和领域服务 应⽤用服务(很薄,没有业务逻辑) 领域聚合A 领域聚合B 领域聚合C 领域服务 领域服务 领域服务 X 领域服务之间最好不不要相互直接调⽤用 使⽤用什什么架构 六边形架构为什什么是六条边 领域故事中的对象怎么对应到架构上 命名 OrderController CreateOrderCommand CreateOrderApplication0 码力 | 32 页 | 3.25 MB | 1 年前3
领域驱动设计&中台/可视化的遗留系统微服务改造仓库库存 已增加 商品已 编辑 退货单已 创建 退货单已 审核 订单已 退货 ⼊入库单 已创建 ⼊入库单 已⼊入库 仓库库存 已增加 添加 商品 ⽀支付宝 回调 超过1⼩小时 未⽀支付 ⏱ 编辑 商品 产品运 营⼈人员 编辑库存 编辑销售 价格 发布商品 创建订单 扣减库存 创建 出库单 占⽤用库存 发货 扣减库存 发货 收货 撤销订单 创建 退货单 审核 退货单 创建 ⼊入库单 ⼊入库 增加库存 买家 系统 系统 系统 出库单已 配货 配货 仓库 管理理员 仓库 管理理员 系统 系统 物流系统 回调 超过48⼩小时 未确认 ⏱ 买家 买家 系统 买家 订单 专员 系统 仓库 管理理员 退货 系统 系统 创建 补货单 审批补 货单 创建 ⼊入库单 ⼊入库 增加库存 编辑 编辑 商品 商品销售 价格已编辑 编辑销 售 商品 已发布 发布商 品 订单 已创建 创建订 单 订单 已撤销 撤销订单 订单 已⽀支付 ⽀支付宝 回调 商城库存 已编辑 编辑库 存 商城库存 已扣减 扣减库 存 商城库 存 增加库存 订单 已发货 发货 订单 已签收 订单已 确认收货 收货 物流系 统 仓库库存0 码力 | 54 页 | 3.85 MB | 1 年前3
领域驱动设计&中台/架构分层模型适配给⽤用户提供界⾯面,关注⽤用户交互和体验 前端应⽤用 API服务 业务领域 基础设施 为前端应⽤用提供API服务,关注事务和分布式等技术性问题 领域模型和领域逻辑,关注业务概念。 访问外界系统(调⽤用外界系统)的技术相关实现。 后台服务 前端应⽤用 分层依据: ⼲干系⼈人和技术点 DDD分层参考架构 - 前端应⽤用 DDD重点关注后台业务服务,不不解决前端交互问题 前端界⾯面 API服务 访问外界系统(调⽤用外界系统)的技术相关实现。 前端应⽤用 API服务 业务领域 基础设施 ⼲干系⼈人: 外界系统 诉求: 稳定调⽤用外部系统 技术点: 使⽤用和适配外部系统模型,隔离和快速诊断错误 ⼯工作内容: • 学习和使⽤用外部系统,如数据库,邮件系统 • 适配外部系统模型,如SQL映射到模型对象 技术⼈人员关注的层 基础设施 腐化案例例: 业务逻辑和外部调⽤用逻辑混合 业务逻辑和外部调⽤用逻辑混合 如⼀一个⽅方法⾥里里即处理理业务逻辑⼜又调⽤用SQL 模型内容: • PO • 第三⽅方Protobuffer • 第三⽅方SDK DDD分层参考架构 — Java技术视⻆角 前端应⽤用 API服务 业务领域 基础设施 技术⼈人员关注的层 技术⼈人员关注的层 业务⼈人员关注的层 UX关注的层 Web,Spring Boot, Kafka, Redis, JTA0 码力 | 39 页 | 2.54 MB | 1 年前3
《58到家技术架构快速规划与落地》 - 沈剑58集团技术专场 2. 监控平台- 最佳实践 � 单维度正常,能说明系统正常吗? � 什么是立体化监控? � 怎么个多维度法? (1)机器、操作系统 (2)进程、端口 (3)日志 (4)接口 58集团技术专场 机器、操作系统监控 58集团技术专场 2. 监控平台-进程/端口/JVM • 两类思路:分发/汇总 • 分发类实现Tips (1)易扩展的配置 (2)远端接口探测,命令执行 调用链跟踪-效果 58集团技术专场 3. 调用链跟踪-效果 58集团技术专场 4. 守望者平台 � 服务信息量化管理 (1)上游 (2)下游 (3)缓存 (4)数据库 (5)操作系统 (6)… 58集团技术专场 4. 守望者平台-上游 58集团技术专场 4. 守望者平台-下游 58集团技术专场 4. 守望者平台-DB/Cache 58集团技术专场 4. 守望者平台-JVM/OS/其他 58集团技术专场 强调:统一组件真的很重要! 58集团技术专场 三、总结 58集团技术专场 总结-初创公司技术体系怎么玩 � 服务化:统一框架,统一数据访问,解耦组件 � 监控平台:机器/操作系统,进程/端口,日志,接口 � 调用链跟踪:修改点,串联/时序/深度,数据收集,可视化 � 守望者平台:应用视角,上下游,数据收集,统一展现 统一组件 快速落地 58集团技术专场 Q&A0 码力 | 42 页 | 1.52 MB | 1 年前3
分布式 KV 存储系统 Cellar 演进之路ldb fdb rdb 引擎层 迁移 复制 • 中心化集群问题 • 可用性问题 • 性能问题 • 运维问题 Cellar起源—Tair问题 Cellar起源 架构升级 性能优化 可用性优 化 可运维性 Cellar 开源 Tair • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 Cellar—中心节点架构演进0 码力 | 34 页 | 1.66 MB | 1 年前3
美团点评旅游推荐系统的演进Item CF User CF 用户画像 离线 计算 层 用户基础数据 路由调用 Deal&POI数据 日志基础数据 用户偏好 协同过滤 城市热单 应用数据 基础数据 算法 模型 调 度 / 协 调 服 务 基础数据 任务调度平台 POI中心 Deal中心 ElasticSearch POI Index Deal New Index Deal Index Alias Deal0 码力 | 49 页 | 5.97 MB | 1 年前3
共 13 条
- 1
- 2













