微服务环境下的系统治理与容错
。 n 第五,也是最重要的,不能只是在技术上采用微服务架构。拥抱DevOps的原则和实践,在组织结构上实现跨 职能的自治团队,这必不可少。 还必须记住:实现微服务架构并不是你的目标。你的目标是加速大型复杂应用程序的开发。 --Chris Richardson 容错 故障和问题 线上故障“画像“ 系统稳定性指标 可监控设计 同步调用下-无线程池隔离 同步调用下-线程池隔离实现方法0 码力 | 45 页 | 16.09 MB | 1 年前3康彬-基于微服务的混合云和同城双活实践
• 同城双活的探索之路 • 未来的规划 大促的痛及混合云实践 业务服务层 资源层 分期乐 前端业务服务 桔子理财 鼎盛资管 …… mq管理系统 job管理系统 中台服务层 核心交易平台 风控审核平台 计算资源 (CPU) 存储资源 (内存|磁盘) 网络资源 (ip|端口|带宽) 中间件层 微服务框架 服务元数据管理 服务发布 服务订阅 消息中间件 消息元数据管理 情况无法应对 大促后机器闲置率高,资 源浪费巨大 混合云需求分析 机器资源按需 申请 01 接入层按url调 度流量 02 服务层set化的 路由策略 03 数据层读请求 上云,写请求 回自建idc 04 流量大户上云,顶住流量洪峰 机器器资源按需分配 接入层URL粒度流量调度 LB DNS app/browser Nginx-Proxy Nginx-Proxy 基础组件 (mq、fastdfs、redis、mysql) 操作系统 (CPU、内存、磁盘容量、系统负载) 出师不利后的复盘反思 相对更独立、历史包袱更轻业务板块试点 补齐短板、夯实基础 接入层具备用户维度流量调度能力 nginx+lua redis 获取分流策略 console 更新分流策略 uid=1 uid=3 uid=2 单元1 单元2 单元3 uid=1 uid=2 uid=30 码力 | 47 页 | 6.09 MB | 1 年前3微服务的设计原则与⽣态系统 - 王磊
Service ⽀支撑层 基础设施 交付流⽔水线与⼯工程实践 CaaS/PaaS IaaS 微 服 务 开 发 框 架 ⼯工 程 实 践 与 规 范 持 续 交 付 流 ⽔水 线 端 到 端 的 ⼯工 具 链 注册发现 监控 调⽤用链 路路由 授权认证 ⽇日志聚合 容错 集中配置 基础设施 业务层 - 聚合服务 - 基础服务 接⼊入层 • 流量量限制 • API⽹网关/Edge Service ⽀支撑层 基础设施 交付流⽔水线与⼯工程实践 CaaS/PaaS IaaS 微 服 务 开 发 框 架 ⼯工 程 实 践 与 规 范 持 续 交 付 流 ⽔水 线 端 到 端 的 ⼯工 具 链 注册发现 监控 调⽤用链 路路由 授权认证 ⽇日志聚合 熔断 集中配置 基础设施 接⼊入层 业务层 - 聚合服务 - 基础服务 API⽹网关/Edge Service ⽀支撑层 基础设施 交付流⽔水线与⼯工程实践 CaaS/PaaS IaaS 微 服 务 开 发 框 架 ⼯工 程 实 践 与 规 范 持 续 交 付 流 ⽔水 线 端 到 端 的 ⼯工 具 链 注册发现 监控 调⽤用链 路路由 授权认证 ⽇日志聚合 容错 集中配置 基础设施 接⼊入层 业务层 - 聚合服务 - 基础服务0 码力 | 62 页 | 6.65 MB | 1 年前3杨钦民-唯品会微服务架构演进之路v0.2
全链路监控/eIcLIO架构 Web FDLEe AgeFK 接y层 A22 数据源 CafCa 集 群 实时计算层 4HaIC 集 群 OpenTSDB� Elas-c Search� HBase� 数据存储层 数据服务层 (aKa 4eIMAce 数据消费层 准实时监控 (ashboaId 实时监控 其它应用 FDLEe ���� ���� ������ ��� ���� ���� ������ ���� ���� Kubernets���� 云平台 存储 主机层 宿主机管理 网络 容器层 Docker Docker Noah������Docker���� ���� kubernetes���� ������ 0oah容器云镜x存储h及分发 ��IDC�0 码力 | 43 页 | 3.89 MB | 1 年前3微服务架构实践-唯品会
�����Mercury�� Web FBJCe AgeDI 接s层 A22 数据源 AafAa 集 群 实时计算层 4FarA集 群 OpenTSDB Elas-c Search HBase 数据存r层 数据服务层 (aIa 4ervice 数据消费层 y实时监控 (aHhbEard 实时监控 其它应用 FBJCe0 码力 | 120 页 | 82.16 MB | 1 年前3微服务架构及ServiceComb实践
apache.org [Github ] https://github.com/apache?q=servicecomb 服务间的通信 背景:为什么服务间通信重要? • 每个微服务有自己的数据库(层) • 服务架构应用的质量很大程度取决于服务的拆分的高内聚,低耦合,不了解服务间通信,无法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID) 2 Saga同步qualification 1. 每个微服务对应自己数据层 2. 拆分经验:看业务,不看技术 3. 利用:saga, 事务性消息发布,最终一致性,同(异)步调用组合等微服务模式 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 步骤2 优化 先关注数据层的优化 1. 锁资格 - (锁库存-下订单) 的房子发起下 单请求 再次查 询缓存 列表 锁定 资格 下单 (减库 存) 减 资 格 有库存 无库存 有资格 无 有库存 无 Codis MySQL-MGR 微服务层的优化 1. SeviceComb优异的异步通讯模型,REST over Vertx。 2. 透明RPC模式+CompletableFuture。把异步继续进行。 3. 低超时+重试策略配置。“ 高可用”的定义?A跟a0 码力 | 14 页 | 2.04 MB | 1 年前3NTTDATA 汽车行业数字营销平台微服务化实践
github.com/apache?q=servicecomb servicecomb.apache.org 业务微服务化及分层设计 应用微服务引擎 第一层.CRM静态站点 第二层.CRM 业务网关 第三层.CRM 业务微服务 第四层.CRM 业务数据 服务中心 配置中心 治理中心 IT运维 日志可视化 (华为云) CDN/ WAF 资源监控预警 (华为云 AOM) 营销平台0 码力 | 11 页 | 2.25 MB | 1 年前3《Saga分布式事务解决⽅案与实践》演讲者/姜宁
OK commit() OK commit() OK • 提供强⼀一致保障 • 准备阶段完成资源操作 • 如果准备过程中出现问题,可以回滚 • 提交阶段不不允许出错 • 资源层⾯面提供保障业务侵⼊入性低 • 协议成本⾼高,并且存在全局锁的问题 ACID 与 BASE • ACID • 原⼦子性 (Atomicity) • ⼀一致性 (Consistency) icroxchg-sagas.html 如何应对隔离性问题 • 隔离的本质是控制并发,防⽌止并发事务操作相同资源⽽而引起结果错乱 • 在应⽤用层⾯面加⼊入逻辑锁的逻辑。 • Session层⾯面隔离来保证串串⾏行行化操作。 • 业务层⾯面采⽤用预先冻结资⾦金金的⽅方式隔离此部分资⾦金金。 • 业务操作过程中通过及时读取当前状态的⽅方式获取更更新。 代码: https://github0 码力 | 33 页 | 2.38 MB | 1 年前3《Saga分布式事务解决⽅案与实践》演讲者/姜宁
OK commit() OK commit() OK • 提供强⼀一致保障 • 准备阶段完成资源操作 • 如果准备过程中出现问题,可以回滚 • 提交阶段不不允许出错 • 资源层⾯面提供保障业务侵⼊入性低 • 协议成本⾼高,并且存在全局锁的问题 ACID 与 BASE • ACID • 原⼦子性 (Atomicity) • ⼀一致性 (Consistency) icroxchg-sagas.html 如何应对隔离性问题 • 隔离的本质是控制并发,防⽌止并发事务操作相同资源⽽而引起结果错乱 • 在应⽤用层⾯面加⼊入逻辑锁的逻辑。 • Session层⾯面隔离来保证串串⾏行行化操作。 • 业务层⾯面采⽤用预先冻结资⾦金金的⽅方式隔离此部分资⾦金金。 • 业务操作过程中通过及时读取当前状态的⽅方式获取更更新。 Saga的实现⽅方式 • 集中式的实现⽅方式0 码力 | 39 页 | 2.78 MB | 1 年前3使用微服务架构快速开发万级TPS高可用电商系统
apache.org [Github ] https://github.com/apache?q=servicecomb 服务间的通信 背景:为什么服务间通信重要? • 每个微服务有自己的数据库(层) • 服务架构应用的质量很大程度取决于服务的拆分的高内聚,低耦合,不了解服务间通信,无法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID) 2 Saga同步qualification 1. 每个微服务对应自己数据层 2. 拆分经验:看业务,不看技术 3. 利用:saga, 事务性消息发布,最终一致性,同(异)步调用组合等微服务模式 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 步骤2 优化 先关注数据层的优化 1. 锁资格 - (锁库存-下订单) 的房子发起下 单请求 再次查 询缓存 列表 锁定 资格 下单 (减库 存) 减 资 格 有库存 无库存 有资格 无 有库存 无 Codis MySQL-MGR 微服务层的优化 1. SeviceComb优异的异步通讯模型,REST over Vertx。 2. 透明RPC模式+CompletableFuture。把异步继续进行。 3. 低超时+重试策略配置。“ 高可用”的定义?A跟a0 码力 | 15 页 | 1.46 MB | 1 年前3
共 16 条
- 1
- 2