领域驱动设计&中台/金融支付系统的改造之路0 码力 | 28 页 | 560.52 KB | 1 年前3
领域驱动设计&中台/可视化的遗留系统微服务改造⼈人员,架构师,测试⼈人员等关键⻆角⾊色都 要参与其中 ‣开放空间:有⾜足够的空间可以将事件流 可视化,让⼈人们可以交互讨论 ‣彩⾊色即时贴:⾄至少三种颜⾊色 活动准备 寻找领域事件 事件⻛风暴暴 命令⻛风暴暴 寻找聚合 划分限界上下⽂文 什什么是事件? 为什什么⽤用事件? 如何进⾏行行事件⻛风暴暴? 事件:领域专家关⼼心的,在业务上真实 发⽣生的事 例例1: 客户订单已提交 例例2: 对账已完成,每⽉月末夜间触发 域专家和⼯工作坊参与者⼀一起明确在业务上究 竟是什什么领域模型发⽣生了了什什么改变,最终的 软件系统需要关注业务过程中发⽣生的业务数 据的变化。 事件⻛风暴暴示例例 订单 已创建 订单 已⽀支付 商城库存 已扣减 仓库库存 已占⽤用 商品 已创建 订单 已撤销 商城库存 已增加 出库单已 ⽣生成 出库单已 发货 投诉单 已创建 投诉单已 处理理 商城库存 已增加 商品已 编辑 退货单已 创建 退货单已 审核 订单已 退货 ⼊入库单 已创建 ⼊入库单 已⼊入库 仓库库存 已增加 寻找命令 事件⻛风暴暴 命令⻛风暴暴 寻找聚合 什什么是命令? 为什什么⽤用命令? 如何进⾏行行命令⻛风暴暴? 命令:什什么活动产⽣生了了事件 例例1: 提交客户订单 例例2: 启动夜间对账 事件是业务上的输出,命令是业务 上的输⼊入。命令以及相应⻆角⾊色可以0 码力 | 54 页 | 3.85 MB | 1 年前3
领域驱动设计&中台/如何让DDD落地如何从需求到DDD? 我想要⼀一个电商 平台,我可以在 上⾯面卖东⻄西 ? Event Storming⾥里里缺少了了什什么信息 提交订单的时候 要做什什么检查? 如何添加商品? ⽀支付订单的时候和 ⽀支付宝对接的逻辑 是什什么样的? 魔⻤鬼隐藏在细节之中 今天既然是讲落地,那么就从⼀一个实际需求出发,我们看看 如何把需求拆解成⽤用户故事,然后如何把⽤用户故事转变成领 域故事,最后领域故事⼜又如何变成为代码。 以撤单,查看订单的状态,对订单进⾏行行⽀支付(⽀支付宝)。⽀支付成功后,仓储 管理理员会收到出库请求,进⾏行行配货并发货。同时,买家可以查看物流状态以 及确认收货。 事件⻛风暴暴的结果 事件⻛风暴暴得到的命令和事件就没⽤用了了吗? 订单 已创建 库存 已锁定 提交 订单 ⽤用户 SubmitOrderCommand OrderCreated StockLocked 订单聚合创建订单服务 接收 接收 仓库聚合的事件订阅者 仓库聚合锁定库存服务 发送 LockStockCommand ⽣生成 ⽣生成 接收 ⽣生成 QueryOrderCommand 订单域查询服务 接收 OrderList ⽣生成 需求分析到⽤用户故事 Story6 创建订单 作为⼀一个商城顾客 我可以确定购物⻋车中的商品和数量量,然后提交商品订单 为了了在商城上购买商品 Acceptance0 码力 | 32 页 | 3.25 MB | 1 年前3
付钱拉金融云系统架构演进和最佳实践业务模型 BUSINESS MODEL 服务/方案 基础产品 基础支撑 金融云服务 聚合支付 乐享理财 帮你贷 八方数据 … 资金管理 供应链 分期支付 扫码分销 … 基础支付1 SDK支付 扫码支付 分期支付 比特币 银行卡 开户 监控 报表 … 基础支付2 单笔代收 单笔代付 语音支付 余额查询 批量代收 身份鉴权 批量代付 快捷 … 账务 开户 记账 对账 账户托管 数据分析 … 运营后台 用户系统 商户后台 官网 企业网银 个人网银 解决方案 实时监控 业务属性 BUSINESS ATTRIBUTES 实时性、一致性 安全性、中间账户 聚合的复杂性、第三方依赖性 金融系统 The complexity of aggregation, third-party dependency Financial system Security 冷热数据隔离 读写分离 分库分表 容灾 限制 池化 ACK ... 变化 VARIETY adapter oltp db 银行/第三方支付 adapter service1 service2 银行/第三方支付 service3 … adapter service1 service2 service3 … adapter service1 service20 码力 | 35 页 | 6.05 MB | 1 年前3
降级预案在同程艺龙的工程实践-王俊翔⼤大量量超时 统⼀一资源⽹网关 搜索引擎 API⽹网关 ⼤大量量请求超时 缺乏熔断设计 交易易故障 第三⽅方⽀支付 ⽀支付中⼼心 ⽀支付回写 消息队列列 ⽀支付通知 交易易中台 ⽀支付时限任务 出票处理理 队列列故障 已⽀支付订单被取消 ⽀支付超时 订单取消 缺乏降级设计 稳定性之路路到底有多远 如何设计⾯面向容错的系统,如何提升系统的可⽤用性 强弱依赖 策略略管理理 流控管理理 预案管理理 指标管理理 监控告警 数据⼤大盘 脚本开发 ETCD管理理 故障演练 业务保障管理理后台 应⽤用JVM进程 故障动态注⼊入 Attach 故障注⼊入 指标聚合查询 熔断降级计算(Flink) ⽇日志中⼼心 KAFKA 数据采集、计算、存储 指标(HBase) 指标明细(ES) 降级⽇日志(ES) ETL 指标计算(Flink) 脚本引擎 查0 码力 | 26 页 | 18.67 MB | 1 年前3
QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双+效率优先 成长,移动后台旁路追赶 DB主 Server PC WEB AND/IOS/H5/Open 静态站 网贷服务 借款流程 Cache集群 安全加密 网贷服务 CDN 支付结算 订单 DB从 批 处 理 系 统 活动 DB主 DB从 版本管理 产品 ... 同步 …... 网站、基础服务 移动后台 业务和团队规模迅速扩张 粗粒度服务化,基础设施完善 … Android/ios/h5/php/openApi 积分系统 基础服务 优惠券 宜人币 基金服务 保险服务 网贷服务 支付中心 用户中心 电子签章 人脸识别 营销平台 埋点 基础服务 会员系统 资金存管 账户中心 Pc Web 支付/钱包 外 部 系 统 流控 熔断 限流 版本 更多... 标签 用户 管理平台 产品 理财单 渠道 版本 5G 代码、逻辑、结构等都要适时重构 最终架构[简版] 移动后台打散,界限趋于不明显 极大消除冗余,三级两层划分 底层服务有序汇总直面前端 流量统一出口 积分系统 优惠券 基金服务 保险服务 理财服务 支付中心 电子签章 第三方系统 营销支持 基础服务 数据支持 批处理 … 网关(略) 移动基础服务 消息 监控 配置 报警 金融产品 Yiri 财富圈 首页 feed 活动中心0 码力 | 42 页 | 19.96 MB | 1 年前3
QCon北京2018-《美团配送系统架构演进实践》-阴永俊• 提升运营系统迭代效率 骑手网关 规模化阶段:核心领域细分 主数据平台 (核心模型) 账号权限 组织架构 核心数据模型 配送服务 配送运力 ⋯ 订单中心 (送什么) 品类 重量 支付状态 运单中心 (配送任务) 运单归属 配送状态 调度中心 (工程框架) 需求池 运力池 计算平台 策略平台 (算法策略) 算法框架 分析平台 经营规划 (目标) 盈亏 绩效 快速起量,系统质量、研发效率问题凸显 合同 骑手网关 规模化阶段:核心领域细分 主数据平台 (核心模型) 账号权限 组织架构 核心数据模型 配送服务 配送运力 ⋯ 订单中心 (送什么) 品类 重量 支付状态 运单中心 (配送任务) 运单归属 配送状态 调度中心 (工程框架) 需求池 运力池 并行计算 策略平台 (算法策略) 算法框架 分析平台 经营规划 (目标) 盈亏 绩效 • 如何实现算法与工程结合 骑手网关 规模化阶段:核心领域细分 主数据平台 (核心模型) 账号权限 组织架构 核心数据模型 配送服务 配送运力 ⋯ 订单中心 (送什么) 品类 重量 支付状态 运单中心 (配送任务) 运单归属 配送状态 调度中心 (工程框架) 需求池 运力池 计算平台 策略平台 (算法策略) 算法框架 分析平台 经营规划 (目标) 盈亏 绩效0 码力 | 31 页 | 15.26 MB | 1 年前3
苏宁易购小程序架构实践 苏宁 禹立彬的 快应用等项目、 • 同时,WAP/APP等应用场景也需要同步开发,成本巨大。 小程序生态 • 围绕着小程序,各厂家也推出了一系列针对小程序的生态标准,联合 登录,授权获取用户信息,支付,通知消息,客服等等 • 对于这些生态功能来说,也需要一系列基础服务去支持 小程序的不足 • 组件化能力不足,代码复用能力弱 • API不统一,代码无法兼容 • 这些呼唤着快速解决方案 基于商品库推荐 2 小程序前端框架 CONTENTS 小程序的前端构成 小程序的业务主要分为,核心购物流 程,活动玩法,辅助页面三类 复用购物流程———同步器 • 主购物流程由于登录,支付,TAB原因,无法插件化 • 微信小程序间跳转策略的变化,使得无法集中在一个小程序上实现购 物流程,只能每个小程序都具备。 • 同步器中包含了最新的购物流程文件包——订单,购物车,商品详情 proxy?key={key}&url={trueURL}, 后 端服务写入cookie后,302跳转到真 正需要打开的页面,于是cookie传递 Webview + 后端中转 其他业务组件 • 支付(百度和微信) • 广告投放组件 • 推客支撑组件 • …… 苏宁 小程 序平 台 • 自上线以来,支撑了十余个微信小程序,和百度小程序 • 支撑了双十一期间每天几百万的UV的访问量0 码力 | 36 页 | 833.39 KB | 1 年前3
数字货币交易系统架构 Python实现 黄毅能睡个好觉(数据持久化,数据最终一致性,容错) • 设计简单,运维方便 交易系统架构设计-关键点 • 内存撮合服务的状态持久化和高可用 • 消息处理顺序的保证 • 异步服务之间消息传送的可靠性 • K线:实时的分组聚合操作 • 高效利用关系数据库 交易系统架构设计-架构图 撮合 资金清算 行情推送 K线计算 历史成交 订单状态 PG Redis 下单 交易系统架构设计-撮合服务 • C++实现的Redis redis-cli > ob.limit b{btc_usdt} * 10000 buy 1 10000 88181047656742912 交易系统架构设计-计算K线 • 实现为Redis Module的流式聚合组件(https://github.com/cryptorelay/redis-aggregation) $ redis-cli > agg.new agg{btc_usdt} time price0 码力 | 24 页 | 799.65 KB | 1 年前3
领域驱动设计&中台/化繁为简--DDD驱动复杂业务软件架构的演进基于业务对象的钢筋模型 • 不同构件归纳抽象 • 分析业务对象及其关系 • 识别聚合、实体、值对象 柱截面钢筋模型 压顶截面钢筋模型 人防截面钢筋模型 截面钢筋 截面多边形 点筋 截面钢筋 规格 端头 弯钩 规格 线筋 位置 位置 标高 标注 …... 重新定义边界后的截面钢筋模型 • 检视模型中聚合、实体、值对象的关系 • 检视模型边界 柱截面钢筋模型 压顶截面钢筋模型0 码力 | 33 页 | 1.25 MB | 1 年前3
共 14 条
- 1
- 2













