《Saga分布式事务解决⽅案与实践》演讲者/姜宁prepare() OK prepare() OK commit() OK commit() OK • 提供强⼀一致保障 • 准备阶段完成资源操作 • 如果准备过程中出现问题,可以回滚 • 提交阶段不不允许出错 • 资源层⾯面提供保障业务侵⼊入性低 • 协议成本⾼高,并且存在全局锁的问题 ACID 与 BASE • ACID • 原⼦子性 (Atomicity) cfm?id=1394128 TCC • Try: 尝试执⾏行行业务 • 完成所有业务检查,预留留必须的业务资源 • Confirm:确认执⾏行行业务 • 真正执⾏行行业务,不不做业务检查 • Cancel:取消执⾏行行业务 • 释放Try阶段预留留的业务资源 业务服务 try confirm cancel 通过领域建模来解决 • 微服务内:聚合通过数据库事务保证强⼀一致 原⼦子性(通过Saga协调器器实现) • ⼀一致性 (本地事务 + Saga log) • 隔离性 (Saga不不保证) • 持久性 (Saga log) 缺乏隔离性带来的问题 • 两个Saga事务同时操作⼀一个资源会出现数据语义不不⼀一致的的情况。 • 两个Saga事务同时操作⼀一个订单 ,彼此操作会覆盖对⽅方(更更新丢失) • 两个Saga事务同时访问扣款账号,⽆无法看到退款 (脏读取问题) •0 码力 | 33 页 | 2.38 MB | 1 年前3
《Saga分布式事务解决⽅案与实践》演讲者/姜宁prepare() OK prepare() OK commit() OK commit() OK • 提供强⼀一致保障 • 准备阶段完成资源操作 • 如果准备过程中出现问题,可以回滚 • 提交阶段不不允许出错 • 资源层⾯面提供保障业务侵⼊入性低 • 协议成本⾼高,并且存在全局锁的问题 ACID 与 BASE • ACID • 原⼦子性 (Atomicity) cfm?id=1394128 TCC • Try: 尝试执⾏行行业务 • 完成所有业务检查,预留留必须的业务资源 • Confirm:确认执⾏行行业务 • 真正执⾏行行业务,不不做业务检查 • Cancel:取消执⾏行行业务 • 释放Try阶段预留留的业务资源 业务服务 try confirm cancel 通过领域建模来解决 • 微服务内:聚合通过数据库事务保证强⼀一致 原⼦子性(通过Saga协调器器实现) • ⼀一致性 (本地事务 + Saga log) • 隔离性 (Saga不不保证) • 持久性 (Saga log) 缺乏隔离性带来的问题 • 两个Saga事务同时操作⼀一个资源会出现数据语义不不⼀一致的的情况。 • 两个Saga事务同时操作⼀一个订单 ,彼此操作会覆盖对⽅方(更更新丢失) • 两个Saga事务同时访问扣款账号,⽆无法看到退款 (脏读取问题) •0 码力 | 39 页 | 2.78 MB | 1 年前3
Metrics in ServiceComb 1.0.0-m1务或同一个微服务的多 个实例之间比较; • Understandable(易理解):指标所衡量的对象、计算方法和输出的结果 值都是容易理解的; • Ratio(理想的比例):理想结果可预见,可以立即用于比较。 最常见的Metrics • 衡量Metrics实现 优劣的标准: • 关键指标覆盖 全 • 计量准确 • 高性能低资源 占用 • 无侵入或低侵 入 Metrics的分类 • Metrics有很多种分类方式,在技术实现上我们偏向以取值方式区 分为两种: • 1. 直接取值 • 任何时候都能够立刻获取到最新值,例如资源使用率,包括CPU使用率,线程数, Heap使用数据等等,还有调用累加次数,当前队列长度等等。 • 2. 统计取值 • 经过一个特定的时间周期才能够统计出值,这个时间间隔我们可以称为窗口周期 Java Chassis Metrics • 如何与普罗米修斯集成 依赖关系 Metrics列表 Metrics 子项 说明 微服务资源使用 CPU、ThreadCount、Heap、 NonHeap 基本的资源使用状态 Consumer端 Latency、CallCount、TPS 包含操作级别和微服务实例级别 Producer端 waitInQueue、lifeTimeInQueue、0 码力 | 18 页 | 938.89 KB | 1 年前3
康彬-基于微服务的混合云和同城双活实践单元化&双活的应用场景 • 同城双活的探索之路 • 未来的规划 大促的痛及混合云实践 业务服务层 资源层 分期乐 前端业务服务 桔子理财 鼎盛资管 …… mq管理系统 job管理系统 中台服务层 核心交易平台 风控审核平台 计算资源 (CPU) 存储资源 (内存|磁盘) 网络资源 (ip|端口|带宽) 中间件层 微服务框架 服务元数据管理 服务发布 服务订阅 消息中间件 机器准备周期长,紧急 情况无法应对 大促后机器闲置率高,资 源浪费巨大 混合云需求分析 机器资源按需 申请 01 接入层按url调 度流量 02 服务层set化的 路由策略 03 数据层读请求 上云,写请求 回自建idc 04 流量大户上云,顶住流量洪峰 机器器资源按需分配 接入层URL粒度流量调度 LB DNS app/browser Nginx-Proxy nginx-Proxy nginx-Proxy data(r) 同城双活的探索 未来的担忧 单机房 如果发生机房级的灾难怎么办? 单集群 随着流量越来越大,集群规模 越来越大,怎么破? 单元化&多活的范围 boss 客服系统 销售系统 风控审核 催收系统 政策管理 prod devops 监控系统 调用链路 日志系统 …… oa 人事系统 智能推荐 大数据 AI/BI0 码力 | 47 页 | 6.09 MB | 1 年前3
Service Mesh在华为公
有云的实践与微服务部署在⼀一个Pod • 占⽤用资源很⾼高 Mesher • Service Mesh的⼀一种实现 • 基于⾃自研的Go语⾔言微服务框架(即将开源)开发 • 使⽤用CSE注册中⼼心与配置中⼼心 • 以Sidecar的⽅方式部署在微服务所运⾏行的环境中,也可以 PerHost模式运⾏行 • ⽀支持多种部署⽅方式 • 占⽤用资源⼩小(闲置10多M,并发运⾏行时30多M) • 简介 • 实现⼀一个Service Local selector Tracing Order Mesher Http Server 可定制 固定组件 Transport Transport Source Resolver 多协议⽀支持 • 任意协议请求都被抽象为Invocation模型进⾏行处理,最终再转换为协议请 求转发 Http Request Grpc Request Thrift Request Transfer ServiceMesh? 为什么要开发Mesher • Istio的性能问题 • Istio强绑定Kubernetes平台(1.7.4+) • 从成本⾓角度讲Linkerd并不适合做SideCar部署,JVM资源占⽤用较多 • 在ServiceComb和CSE中的积累 • 最⼤大优势,侵⼊入式与⾮非侵⼊入式的⽆无缝结合,混编,统⼀一的产品体验。 开源 • Service Center https://github0 码力 | 52 页 | 4.37 MB | 1 年前3
ServiceComb 的前世今生文档生成器:生成HTML与符合 华为规范文档 Mock生成器:生成Mock工具, 用于测试微服务 现有代码提取 OpenAPI工具 与RPC的IDL互 转工具 protobuf3 多语言多框架代 码生成器 多语言Protobuf3对象 编码库 Java 微服务编程框架 Go 框架 其他 框架 Spring MVC JAX-RS POJO Martini 微服务部署平台(PaaS) 微服务开发 微服务基础治理 微服务高级治理 服 务 发 现 服 务 配 置 服 务 路 由 多 通 信 访 问 调 用 链 跟 踪 多 事 务 管 理 多 运 行 时 管 理 ServiceMesh 容 错 & 熔 断 限 流 降 级 服 务 隔 离 容 量 预 测 微服务 流水线 资源管理 容器编排 & 调 度 应用管理 弹性伸缩 灰度发布 监控运维APM Go语言 XXX语言 Java语言 服务契约 & OpenAPI SpringMVC JAX-RS RPC编程 REST通讯 XX通讯插件 RPC通讯 TCC XX事务 强事务 多语言 多编程框架 多通信协议 多事务一致性0 码力 | 16 页 | 1.45 MB | 1 年前3
2-4-禚娴静-微服务你玩得起吗- Rebecca Parsons 让系统尽可能快的响应变化! 初衷 • 服务足够小 • 独立运行 • 轻量级通信机制 • 独立的部署 • 去中心化 • 要多小? • 怎么部署? • 出错怎么办? • 如何保证一致性 玩得起微服务的条件 持续改进的⾃自组织⽂文 快速响 Tall enough 服 务 ⾃自 演 进 2014年问题倍出 部署成功率很低,部署时经常 有⼀一堆环境修改需求,运维⼈人 员出错机会增加,运维效率极 低。 2 缺乏有效监控 ⽆无法快速有效定位问题,⽆无法 快速有效知晓服务运⾏行状态, 服务资源浪费。 3 服务过⼤大,堵塞交付 快速增⻓长的结果导致服务过⼤大 或者服务过⼩小。⽽而过⼤大的服务 导致整个提交流⽔水线堵塞,测 试⼈人员⽆无法拿到新的版本,交 付延期 4 团队出现冲突,架构腐化严重 接⼝口⼀一⽚片混乱,核⼼心⼈人员离 职。 部署成功率很低,部署时经常 有⼀一堆环境修改需求,运维⼈人 员出错机会增加,运维效率极 低。 ⽆无法快速有效定位问题,⽆无法 快速有效知晓服务运⾏行状态, 服务资源浪费。 回到问题 1.运维⾃自动化 1 基础设施⾃自动化 实施了新的部署流程,成功率 ⼤大⼤大提⾼高,部署时间缩短到 30分钟。 2 ⾼高效监控 服务提供状态汇报,利⽤用 Splunk聚合⽇日志,对服务运0 码力 | 51 页 | 8.18 MB | 1 年前3
消费者云CSE微服务实践服务框架要足够轻量级,可以按需加载类库,防止不当前业务的 三方库发生冲突 启停速度要快(秒级弹性伸缩)、资源占用要合理 微服务框架技术选型-微服务安全 有些业务场景对微服务调用安全要求较高,需要微服务框架支持 SSL传输、API鉴权和认证等 对于一些敏感信息,例如用户账号、金额等,在记录日志等落盘 和采集时需要做脱敏处理、资源占用要合理 敏感运维操作,需要记录安全日志,例如服务上线和下线、服务 1、分布式服务化本身引入的潜在故障点: 2、微服务第三方依赖潜在故障点: CSE的可靠性设计: 集群容错,自劢路由 服务中心、配置中心无状态集群,宕机丌影响已有业务 支持服务级故障隔离 支持多链路和链路级故障隔离 支持服务熔断和降级,以及第三方故障隔离(集成Hystrix) CSE在消费者云业务的实践-服务调用高性能 CSE的高性能设计: 提供Rest和Highway0 码力 | 22 页 | 1.39 MB | 1 年前3
微服务的设计原则与⽣态系统 - 王磊调⽤用链 路路由 授权认证 ⽇日志聚合 熔断 集中配置 基础设施 接⼊入层 业务层 - 聚合服务 - 基础服务 • ⾯面向对象设计(名词/动词) • 可重⽤用的逻辑 • 资源密集型部分 • 领域驱动设计 • 数据访问⽅方式 服务设计与拆分 44 Node.js Java 基础服务实现 聚合服务实现 Proxy Chained Shared Cache 集中配置管理理 配置信息的管理理 50 • 与服务在同⼀一个包中 • 使⽤用隔离的配置⽂文件 • 使⽤用环境变量量管理理 配置信息管理理的挑战 51 • 动态更更新配置信息 • 多实例例间的同步 • 配置信息的版本管理理 容错(Resilient) 52 • 降级 - 关闭⾮非核⼼心业务,保证核⼼心业务可⽤用 • 限流 - 超过处理理能⼒力力,采⽤用适当策略略丢弃 •0 码力 | 62 页 | 6.65 MB | 1 年前3
Apache ServiceComb 开源微服务社区RPC 云原生 接入 流行 生态 Apache ServiceComb 融合开源生态的一站式微服务解决方案 融合开源生态的一站式微服务解决方案 • 团队协作困难 • 问题定位困难 • 资源利用率低 • 对现有系统改动小 • 提升性能和硬件 利用率 • 提升定位问题效率 Apache ServiceComb 插件式处理链 SpringMVC 编程模型 限流 负载均衡 分布式追踪 跨服务事务一致性 • 多语言,同时选型 • 灵活扩展、定制 • 减少基础设施运 维工作量 为解决微服务化痛点而生 在同一个业 务领域的微 服务中使用 了多种不同 语言进行开 发部署 使能多微服 务技术栈开 发的微服务 应用之间协 同工作和共 同治理 使能满足第三 方认证被广泛 采纳的趋势下 认证鉴权的性 能和安全的要 求 帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理0 码力 | 15 页 | 2.86 MB | 1 年前3
共 31 条
- 1
- 2
- 3
- 4













