领域驱动设计&中台/用状态机封装领域逻辑用状态机封装领域逻辑 潘加宇 CONTENTS 01 状态机的作用 02 状态机要点和建模思路 03 状态机的实现 危险! 小孩耍大枪 危险! 新瓶装旧酒  Research?Re-Search?  连Re-Search都没有,随意发明新词  Subdomain?主题图。 测试 答对问题有奖金 金额从2.56元到20.48元 请扫我微信以便当场转账 加微信时烦告知尊姓大名 所有的逻辑 测试 答对问题有奖金 金额从2.56元到20.48元 请扫我微信以便当场转账 加微信时烦告知尊姓大名 作用 逻辑内移 都以为自己在做正常的事情, 系统却出问题了 强制封装保护信息完整性 条件语句?泛化?不重要了 作用 帮助定义恰当的责任  专家原则、可视原则  减少get/set  接口变简单 要素 状态 行为由组合决定 复杂就在这里!0 码力 | 30 页 | 1.75 MB | 1 年前3
 刘道平-从0到1,移动政务应用小程序系统架构演化依托公安部门互联网可信身份认证体系 • 用户登录后,业务系统不再要求用户登录 9、前端开发 -- 封装公共组件 ,磨刀不误砍柴工 1、封装DGD-SDK公共组件 2、合包工具 3、Taro框架预研 10、API网关 – 限流保护已有系统、提升访问安全性 • 1.业务应用A 向网关申请接入,网关分配paasid、token给业务应用; • 2.业务应用A 使用paasid、token,接入网0 码力 | 35 页 | 15.60 MB | 1 年前3
 分布式异地多活架构实践之路几十毫秒的延迟; 跨机房性能较慢 机房天然延迟 专线费用高; 专线不稳定 跨机房专线问题 依赖小服务,有一 定改造成本; 依赖外部服务 服务依赖问题 减少对业务开发影响; 需要封装屏蔽细节 业务开发影响 如何精准调度; 如何合理调度 流量调度 存储系统自带同步 不成熟; 自研组件之间同步 数据同步 大纲 • 产品发展中遇到的问题 • 异地多活存在哪些技术挑战 N/A 本地模式 (单点读写) 设计思路 核心业务异地多活 精准流量调度 数据同步 多元化 最终一致性 依赖关系优化 配套系统支撑 主 从 多 主 汇 聚 混 合 场景区分 封装屏蔽细节 容量合理规划 当前总体架构 合肥 北京 广州 HTTPDNS 智能DNS GSLB GSLB Servers Servers Servers MS MS GSLB MS 上报/探测 结果:无法就近返回最优的机房IP、机房之间负载不均衡、机房异常后无法快速容灾 精准流量调度-全局 HTTPDNS LocalDNS 智能DNS 合肥IDC 北京IDC 广州IDC 弱依赖,可控 SDK封装: 重点域名预解析 缓存域名解析结果(sp、 wifi名) 出错或快过期异步解析 合法IP动态下发 IP请求结果统计 多级兜底容错 解析IP合法,IP请求 解析IP不合法,固定IP请求 GSLB0 码力 | 36 页 | 1.66 MB | 1 年前3
 领域驱动设计&中台/可视化的遗留系统微服务改造产品运 营⼈人员 产品运 营⼈人员 产品运 营⼈人员 寻找聚合 事件⻛风暴暴 命令⻛风暴暴 寻找聚合 什什么是聚合? 如何寻找聚合? 聚合是⼀一组相关领域模型的集合 , 是⽤用来封装业务的不不变性。确保 关联关系紧密的领域模型能够内 聚在⼀一起。 1. 按照事件顺序依次通过提问来分析: • 这个事件会改变的领域模型是什什么?明确 领域模型(简单理理解就是事件中的涉及的 业务名词) ⼊入;事件贴到聚合的右⾯面,是聚合的输 出。 3. 再根据聚合的原则(下⼀一⻚页描述)来 检验上⾯面的划分结果是否匹配,如不不匹 配则基于划分原则并结合业务重新调整 聚合。 使⽤用聚合的⽬目的是封装业务的不不 变性,同时强迫⼤大家尽可能的简 化领域模型之间的关联关系。在 业务层⾯面进⾏行行⾼高内聚,低耦合的 设计。 为什什么⽤用聚合? 划分限界上下⽂文 聚合示例例 添加 商品 商品0 码力 | 54 页 | 3.85 MB | 1 年前3
 声明式自愈系统——高可用分布式系统的设计之道-王昕API 的设计 Ø 所有API应该是声明式的 Ø 高层API以操作意图为基础设计 Ø 低层 API 根据高层 API 的控制需要设计 Ø API 对象是彼此互补而且可组合的 Ø 尽量避免简单封装,不要有隐藏的内部 API Ø API 操作复杂度与对象数量成正比 Ø API 对象状态不依赖于连接状态 Ø 针对全局状态设计自愈容错机制 最佳实践分享 有关系统设计和运营 Ø 分开设计理想状态和实际状态0 码力 | 44 页 | 2.47 MB | 1 年前3
 大规模分布式系统架构下调测能力构建之道Topic3-q2 Producer1 MQ Mock 通过本地JVM自带BlockingQueue队列模拟分布式队列, 提供消息的发布、暂存、订阅、消费处理能力 代理门面 将MQ的调用用代理模式做一层封装。 开关机制 支持多级开关切换 消息预取 通过消息预判定,解决找不到消费者导致消息被抛弃 的问题。 优势:能用极低的资源损耗实现单机环境下对分布式 MQ服务的仿真模拟 分布式MQ服务0 码力 | 19 页 | 2.74 MB | 1 年前3
 降级预案在同程艺龙的工程实践-王俊翔保护期窗⼝口 (10min) 窗⼝口期 探测期窗⼝口 (5min) 探测流量量分配 窗⼝口期外 窗⼝口期外 降级⽅方法 熔断 降级流程 恢复探测 探测 开启 开启 未降级 已降级 关闭 窗⼝口期 指标计算 降级触发/恢复 • 降级保护期窗⼝口内,不不进⾏行行恢复试探 • 流量量分配的⽅方式实施恢复探测,百分⽐比、总量量 • 实时计算探测流量量指标,指标恢复关闭降级0 码力 | 26 页 | 18.67 MB | 1 年前3
 全球架构师峰会深圳2015/研发体系构建_龚银_中型创业公司的技术管理之痛聚焦与系统思维 技术和管理比重随时调整和平衡 技术、业务和管理的平衡 技术管理者大多对技术热衷,对管理忽视 技术、业务、系统花费精力和时间太多,团队管理精力太少 平衡 时间的分配:轻重缓急,适度授权 根据团队规模和业务情况,选择合适自己的占比 制定规划,不同的时间点和阶段重心进行调整 招人要慢,辞退要快 招人要慢,辞退要快 找到合适的人真的是一件很难的事情0 码力 | 36 页 | 2.49 MB | 1 年前3
 海量用户推送后台系统架构实践-曾振波加快数据访问,减少请求处理时间 • 多级缓存 • 本地缓存 • Redis, Couchbase, LevelDB(PIKA), 定制化 极光推送后台系统架构 04 程序及系统优化 • 内存 • 静态分配 • 内存池 • 内存对齐 • CPU Affinity • 网卡多队列 • 用户态协议栈(DPDK) 极光推送后台系统架构 05 基础组件服务化 • 业务方透明 • 统一管理0 码力 | 23 页 | 1.26 MB | 1 年前3
 高性能高可用机票实时搜索系统| 郑 州 南 宁 | 天 津 … 索引库 DB Sync 规则库 供应商 A 供应商 B 供应商 M … 报价引擎 — 数据同步 Pipeline Canal 解析 拆分 分配 ⼊入队 CAN-NNG … … … PEK-SHA DataSync Diff ZK 按 供 应 商 分 表 按 航 线 分 表 报价引擎 — 同步系统⾼高可⽤用 DB主0 码力 | 26 页 | 1.94 MB | 1 年前3
共 10 条
- 1
 













