降级预案在同程艺龙的工程实践-王俊翔统⼀一资源⽹网关 资源2 资源3 资源4 …… 资源4 ⼤大量量超时 统⼀一资源⽹网关 搜索引擎 API⽹网关 ⼤大量量请求超时 缺乏熔断设计 交易易故障 第三⽅方⽀支付 ⽀支付中⼼心 ⽀支付回写 消息队列列 ⽀支付通知 交易易中台 ⽀支付时限任务 出票处理理 队列列故障 已⽀支付订单被取消 ⽀支付超时 订单取消 缺乏降级设计 稳定性之路路到底有多远 如何设计⾯面向容错的系统,如何提升系统的可⽤用性 指标聚合查询 熔断降级计算(Flink) ⽇日志中⼼心 KAFKA 数据采集、计算、存储 指标(HBase) 指标明细(ES) 降级⽇日志(ES) ETL 指标计算(Flink) 脚本引擎 查 询 服 务 ⽇日志数据 指标(Redis) 业务异常数据快照(ES) 熔断降级通知 降级服务管理理 故障代码注⼊入 降级服务注册设计 serviceA serviceB serviceC center mysql sharding watch admin • 使⽤用ETCD实现注册中⼼心 • 简单 - Go语⾔言编写部署维护简单,定义良好的API • 安全 - SSL认证机制 • 快速 - ⽀支持上万次写⼊入操作 • 可信 - Raft算法保证强⼀一致性,Proxy反向代理理模式⽀支持 • 服务数据存储 • 应⽤用、服务元数据、状态数据,etcd、mysql双份存储0 码力 | 26 页 | 18.67 MB | 1 年前3
领域驱动设计&中台/可视化的遗留系统微服务改造如果⼀一个事件有同步发⽣生的其它事件,把其它 事件放在事件下⽅方; 5. 如果发现了了业务中的问题点,⽤用红⾊色便便利利贴记 录为什什么是⼀一个问题; 6.以上步骤完成以后,再从最后⼀一个事件开始来 反向验证事件的完整性(即:⾛走查前后事件的关 联关系,防⽌止有些事件被遗漏漏)。 通过事件的⽅方式对过去发⽣生的事情进⾏行行溯源, 因为过去所发⽣生的对业务有意义的信息都会 通过某种形式保存下来。事件⻛风暴暴能够让领 域专家和⼯工作坊参与者⼀一起明确在业务上究 仓库库存 已增加 商品已 编辑 退货单已 创建 退货单已 审核 订单已 退货 ⼊入库单 已创建 ⼊入库单 已⼊入库 仓库库存 已增加 添加 商品 ⽀支付宝 回调 超过1⼩小时 未⽀支付 ⏱ 编辑 商品 产品运 营⼈人员 编辑库存 编辑销售 价格 发布商品 创建订单 扣减库存 创建 出库单 占⽤用库存 发货 扣减库存 发货 收货 撤销订单 创建 退货单 审核 退货单 创建 ⼊入库单 ⼊入库 增加库存 买家 系统 系统 系统 出库单已 配货 配货 仓库 管理理员 仓库 管理理员 系统 系统 物流系统 回调 超过48⼩小时 未确认 ⏱ 买家 买家 系统 买家 订单 专员 系统 仓库 管理理员 退货 系统 系统 创建 补货单 审批补 货单 创建 ⼊入库单 ⼊入库 增加库存0 码力 | 54 页 | 3.85 MB | 1 年前3
微服务和Service Mesh 在多个行业落地实践配置灵活:可配置检测粒度为每M毫秒N个请求P%的错误率 指标多样:RT值,错误率,线程池参数 熔断 粒度更细:可指定调用者和被调用者服务版本,支持failover、failfast、failback容 错机制。 配置灵活:支持自定义超时时间和重试次数。 可自行定制:通过暴露自定义异常NSFExcetion解决任意业务方法的容错,支持超时、 failover,failfast容错。 容错 微服务框架负责服务之间的调用——熔断与容错 网易分布式事务的实现机制 www.163yun.com 事务发起者、事务参与方 分支事务用事务id做幂等 生成对应分支事务记录 并行调用 定时任务兜底 红色为异常流程 Q:回滚的时候,如果分支事务记录不存在,该 怎么返回? option1:返回成功 option2:返回失败 option3:引入超时判断机制 ✘0 码力 | 39 页 | 3.06 MB | 1 年前3
付钱拉金融云系统架构演进和最佳实践道 D … 通 道 A 通 道 B 通 道 C 通 道 D … 单 笔 代 收 单 笔 代 付 快 捷 鉴 权 短 信 批 量 代 收 交 易 查 询 批 量 代 付 批 量 代 收 交 易 查 询 分而治之 DIVIDE AND RULE IT 核对查询 响应码 防刷 一致性问题 ... 资金风险 重路由 从1到N的业务成长 FROM 1 TO THINKING 预见运行期、所想即所得、限制和保护 设计可容错的系统(快速失败、超时、自动重路由) 设计具备自我保护的系统(拆分、限制、优雅停止) 制定合适的开发规范 撒网 实时监控(傻瓜式、开发不用查日志) 可视化运营 网络监控 主机监控 服务监控 业务监控 中间件、接口探测、日志抓取 状态类(响应码、交易状态、退款状态、商户状态) 耗时类(交易总时长、分段时长、SQL耗时、代码耗时)0 码力 | 35 页 | 6.05 MB | 1 年前3
大规模分布式系统架构下调测能力构建之道分布式服务框架mock能力构建 应用 服务容器(Consumer) Filter Chain 将mock能力内置到分布式服务框架中 开发mock能力过滤器,在服务调用链路上对服务调用进行挡截。 “开关机制”控制mock能力启停 mock能力启用时,服务容器初始化期间将加载mock数据文件到内存中,每个服务请求将和mock数据的入参定 义进行比对,满足(静态匹配 或动态匹配)规范的请求,直接用mock数据的出参定义作为服务调用的结果。 不需要服务消费者注册,直接通过本地配置文件指定的IP地址来绕过“服务路由”及“负载均衡”机制。 服务提供者不能采用token验证模式 基于包名过滤服务 团队往往开发某类业务服务,这类服务一般都具有相同的包名,因此,可以通过配置包名和服务IP的映射关系, 让服务框架自动将一批服务和特定的IP关联到一起。 直连调测机制 提供者B 服务容器 提供者B 服务容器 本地配置文件 com.company : 一部分依赖服务从本机的Runtime环境即可获取, 一部分需要从协同团队的远程开发机上临时获取(联调模式), 一部分服务可能还未完成开发并发布,需要通过mock机制进行模拟。 我们需要综合利用前面所介绍的各种调测机制来保障日常开发中对应用服务的正常调测: 服务调用 本地服 务? 调用本地服务 是 是否直 连? 否 RPC远程直连 调用 是 是否有 mock 数据? 否0 码力 | 19 页 | 2.74 MB | 1 年前3
领域驱动设计&中台/淘宝应用架构升级——反应式架构的探索与实践�������� �����P�I� ��������� ������ ������ �������� ��A� 流引⽤用可被远程化 系统级的流式贯通 架构治理理能⼒力力加强: • 回压 • 三⻆角模式透传 • 业务快速截⾯面创新 • … 流的概念分层 业务编程框架(⾯面向业务) • 核⼼心概念:流 • 业务涉及的⼤大量量/强⼤大操作 • 流程编排、全异步化 已有集成,或集成成本低 5. DB(JDBC)(Block) * ⽤用 Ali JVM协程 异步集成 * 或⽤用线程池异步集成 6. 限流组件 7. 分布式跟踪系统 解决业务异步/回调 引⼊入的 上下⽂文传递 问题 8. iOS Objective-C 的 Rx 框架 实现 AliRxObjC (会开源) 业务实施 1. 先⾯面向应⽤用级升级 * 应⽤用实施升级 业务提供的不不同⽅方案 • 提供⽅方案,⽹网关、RPC、分布式调⽤用跟踪、RxJava等所有中间件 已统⼀一接⼊入 ⽬目标与规划 • 实现分布式回压(backpressure) • 保证整体系统稳定不不过载且充分利利⽤用资源 • 2018双11有试点实验,后续重点 •通过回压把应⽤用集群压⼒力力反馈到基础设施 • 更更精准有效的应⽤用弹性调度 •实现全异步/流式为核⼼心的服务框架 • 考虑引⼊入0 码力 | 27 页 | 1.13 MB | 1 年前3
全球架构师峰会深圳2015/研发体系构建_龚银_中型创业公司的技术管理之痛聚焦,聚焦,集中火力开火 业务优先,区分核心业务,重要性四象限 业务先行,基础建设适当的平衡和取舍,一步一步来 重视规划和系统思维的作用,根据现状随时调整轻重缓急 充分的沟通机制和反馈机制,让大家都能有一致的理解 聚焦与系统思维 技术和管理比重随时调整和平衡 技术、业务和管理的平衡 技术管理者大多对技术热衷,对管理忽视 技术、业务、系统花费精力和时间太多,团队管理精力太少 观念和思维的碰撞,不同文化不同背景快速聚集带来的必然摩擦 不就是这里改一下么,不就是流程调整一下么? 沟通、沟通、沟通、无他 不同的对象,沟通方式不一样,灵活处理,使用不同的技巧 沟通只是第一步,形成固定机制,落实并执行才最重要 Motivation 正确的激励导向,使团队快乐 需要的素质和「心得」 需要的素质 指得了路 扛得了枪 吃得了苦 卖得了萌0 码力 | 36 页 | 2.49 MB | 1 年前3
领域驱动设计&中台/化繁为简--DDD驱动复杂业务软件架构的演进外部接口深入到上游的业务逻辑 限界上下文解耦-发布订阅机制 钢筋模型 上下文 建模模型 上下文 调度中心 平法模型 上下文 发布 解决: 上游模型变化,下游模型联动 发布-订阅机制 架构演进 1 2 3 领域拆分 架构分层 构建领域模型 架构分层 持久化层 领域层 CAD图纸管理 建模UI 通用UI组件 几何算法 通用框架机制 通用算法 CAD/BIM UI0 码力 | 33 页 | 1.25 MB | 1 年前3
异构系统链路追踪——滴滴 trace 实践异构系统链路追踪 ——滴滴trace实践 背景 诉求 挑战—在滴滴落地面临的挑战 方案 日志规范和组件 日志数据处理 日志应用 Trace机制 —传递trace context Trace落地—结合滴滴情况落地 Trace应用 —调用链路跟踪 Trace应用 —调用链路跟踪 Trace应用 —场景还原 ③ 时间顺序还原操作序列 ① 业务id和traceid关联 ② 根span具有业务代表性0 码力 | 19 页 | 3.00 MB | 1 年前3
Facebook messenger架构介绍-覃超 facebookFacebook Messenger Messenger 0.0 Messenger 1.0 系统难点 1. 信息传输的时效性 2.‘在线状态’跟踪 3. Queue(消息队列)+ 送达机制 4. 多并发连接 5. 消息的历史记录 1.0 Architecture Messenger 2.0 The New Facebook Messages Emails Chats0 码力 | 51 页 | 4.39 MB | 1 年前3
共 18 条
- 1
- 2













