《Saga分布式事务解决⽅案与实践》演讲者/姜宁
https://queue.acm.org/detail.cfm?id=1394128 TCC • Try: 尝试执⾏行行业务 • 完成所有业务检查,预留留必须的业务资源 • Confirm:确认执⾏行行业务 • 真正执⾏行行业务,不不做业务检查 • Cancel:取消执⾏行行业务 • 释放Try阶段预留留的业务资源 业务服务 try confirm cancel 通过领域建模来解决 • ⼀一致性 (Consistency) • 隔离性 ( Isolation) • 持久性 (Durability) • Saga只提供ACD保证 • 原⼦子性(通过Saga协调器器实现) • ⼀一致性 (本地事务 + Saga log) • 隔离性 (Saga不不保证) • 持久性 (Saga log) 缺乏隔离性带来的问题 • 两个Saga事务同时操作⼀ • 业务操作过程中通过及时读取当前状态的⽅方式获取更更新。 Saga的实现⽅方式 • 集中式的实现⽅方式 (Orchestration-based coordination) • 集中式协调器器负责服务调⽤用以及事务协调 • 分布式的实现⽅方式 (Choreography-based coordination) • 通过事件驱动的⽅方式来进⾏行行事务协调 http://microservices0 码力 | 39 页 | 2.78 MB | 1 年前3《Saga分布式事务解决⽅案与实践》演讲者/姜宁
https://queue.acm.org/detail.cfm?id=1394128 TCC • Try: 尝试执⾏行行业务 • 完成所有业务检查,预留留必须的业务资源 • Confirm:确认执⾏行行业务 • 真正执⾏行行业务,不不做业务检查 • Cancel:取消执⾏行行业务 • 释放Try阶段预留留的业务资源 业务服务 try confirm cancel 通过领域建模来解决 • ⼀一致性 (Consistency) • 隔离性 ( Isolation) • 持久性 (Durability) • Saga只提供ACD保证 • 原⼦子性(通过Saga协调器器实现) • ⼀一致性 (本地事务 + Saga log) • 隔离性 (Saga不不保证) • 持久性 (Saga log) 缺乏隔离性带来的问题 • 两个Saga事务同时操作⼀ Registry Dynamic Config Alpha Service A Omega Service B Omega Alpha Alpha 集中式的Saga协调器器 分布式Saga协调器器 集中式Saga协调器器 Saga Coordinator Saga Saga Saga ID: x Saga Log Saga Started T1 Started T1 Ended0 码力 | 33 页 | 2.38 MB | 1 年前3张波-虎牙直播在微服务改造中的实践
平均解析时间 之前200ms+ 现在1ms以下 缓存命中率 之前92% 现在99.8%+ 解析失败率 之前0.1% 现在0% 应用探活场景下的落地 1、web专区的nginx有健康检查的功能, 但是只是基于tcp, 根据 一段时间请求否正常, 对节点进行临时屏蔽 2、web专区和业务都会有自己的拨测, 一般只会用于告警, 缺乏 都能根据业务反馈, 动态切换节点的能力 3、支付等业务, 使用注册+DNS-f+健康检查模式。 DNS-F客户 端使用监听模式push/pull拉取更新信息 客户端定时轮询服务端获取其他服务ip信息并对 比,相比之下服务端压力较大、延迟较大 伸缩性 使用Raft选举算法性能、可用性、容错性均比较 好,新加入节点无需与所有节点互相广播同步信 息 由于使用广播同步信息,集群超过1000台机器 后对eureka集群压力很大 健康检查模式/方式 支持服务端/客户端/关闭检查模式,检查方式有 支持服务端/客户端/关闭检查模式,检查方式有 tcp、http、sql。支持自己构建健康检查器 客户端向服务端发送http心跳 负载均衡 支持 支持 手动上下线服务方式 通过控制台页面和API 通过调用API 跨中心同步 支持 不支持 k8s集成 支持 不支持 分组 Nacos可用根据业务和环境进行分组管理 不支持 权重 Nacos默认提供权重设置功能,调整承载流量压 力 不支持 厂商 阿里巴巴0 码力 | 27 页 | 1.03 MB | 1 年前3华为微服务框架ServiceComb
提供微服务注册发现以及限流降级,容错熔断等治理功能 • Service Center • 高性能,高可用服务注册中心 • Saga • 微服务数据一致性问题解决方案 • 提供一个集中式的事务协调器,协调微服务乊间的事务,保证事务最终一致性 2018 Building Microservice NO.1 深圳站: Cloud Native 架构下的 K8S 和微服务实践 ServiceComb 架构下的 K8S 和微服务实践 Metrics • 覆盖关键指标 • 支持多时间周期性能指标统计 • 集成Prometheus,OverWatch • 提供health check 接口检查 Metrics 子项 说明 微服务资源使用 CPU、ThreadCount、Heap、NonHeap 基本的资源使用状态 Consumer端 Latency、CallCount、TPS Building Microservice NO.1 深圳站: Cloud Native 架构下的 K8S 和微服务实践 Saga Pack版本 • Alpha - 族群领袖, Saga 协调器 • Omega – 族群成员, 事务协调代理 Alpha Service A Omega Service B Omega Alpha Alpha 2018 Building0 码力 | 28 页 | 1.53 MB | 1 年前3华为企业级PaaS 微服务应用
ServiceComb实践 案例 Agenda servicecomb.apache.org github.com/apache?q=servicecomb 面向开发者的数据中心演进 数据中心服务器虚拟化: Google,亚马逊等公司 以资源为中心: • AWS EC2,S3,Route53 • OpenStack • CloudStack • 混合云 以应用为中心: • Heroku 信、……) 工具(CPE) 设计和开发 构建 测试 发布上线 监控运维 部署 流 水 线 ( 持 续 集 成 、 持 续 交 付 ) 扩展插件: Eclipse等 扩展插件: 静态检查等 扩展插件: 三方部署系 统 扩展插件: 客户测试系 统 扩展插件: 客户自有仓 库 扩展插件: 客户自有监 控 开发者生态 开源社区 案例 开发者 API 产品 生态 通用微服务工具市场 微服务 微服务 DMS 发布订阅 ServiceComb引擎 服务中心 配置中心 SpringCloud引擎 Eureka/Consul Config Server 微服务引擎管理器 用户 申请引擎 部署 治理中心 下发治理: • 灰度发布 • 熔断,降级 • 重试 • 超时 • 限流 • 变更业务配置 管理微服务运行时,查看API文档 对接 监控平台0 码力 | 17 页 | 3.42 MB | 1 年前3ServiceComb 的前世今生
规范化系统接口,让实现与文档的同 步成为必须 • 通过工具简化整个过程 API First 增速微服务开发 --- 工具支持 OpenAPI (Swagger) 定义 编辑器:在线编辑,语法提示, 错误检查 文档生成器:生成HTML与符合 华为规范文档 Mock生成器:生成Mock工具, 用于测试微服务 现有代码提取 OpenAPI工具 与RPC的IDL互 转工具 protobuf30 码力 | 16 页 | 1.45 MB | 1 年前3Metrics in ServiceComb 1.0.0-m1
-boot-actuator 开源领域的Metrics比较 比较项 Netflix Servo Dropwizard Metrics Spring Boot Actuator 计数器(Monitor)的实 现 性能相对高效 功能相对丰富 较弱,但是支持使用 Dropwizard Metrics集成实现 强化 数据发布 Push模式,自带三种 Observer Pull或Push,自带几种 月报、季报、年报) 优势: • 具备高性能的同时又能保持极低的开销。 使用多周期适应不同的场景需求 支持Health Check • 通过Health Check让微服务支 持检查依赖组件的状态并返 回,可以用于制定策略,也 可以用于Dashboard展现 • 微服务很可能依赖数据库、其 它微服务或中间件,这些组件 状态正常是微服务能够正常提 供服务的前提; • 相比Metrics返回一个状态值,0 码力 | 18 页 | 938.89 KB | 1 年前3微服务架构实践-唯品会
����� ��! ��! ���� �! ���� ��! ���review ���review ���! WAP! • 横向:针对单个核心U务系统进行检查 • 纵向:针对U务线v联系统进行t链路检查 • 重点:架构、流程、缓存、消息队列、数据库、性能、高可用、隔离、限流、降级、熔断等 ��QPS&�� ����! ����! �����! ����! �����QPS0 码力 | 120 页 | 82.16 MB | 1 年前3Linux Con Workshop Quick Start Demo 殷湘 姜宁
Resource从运维层面保证服务的可靠性,主要功能有 • 弹性伸缩:保证用户请求量超过Worker处理能力的某个阈值后,招聘更多Worker加入项目; 当请求量回落后,裁剪Worker以节省项目组开支 • 健康检查:保证Worker告病时,能有替补接手任务 • 滚动升级:保证项目需要新技能时,能替换、培训Worker ,不中断接收项目请求 • 需要PaaS提供支持 l Github:https://github0 码力 | 12 页 | 2.10 MB | 1 年前3Service Mesh在华为公 有云的实践
动态治理 • 对接华为公有云微服务引擎的Service center 与 Config center 监控 • 处理链中提供分布式调⽤用追踪 • Admin API 提供了路由查询,健 康检查,Metric等信息 • 使⽤用Collector Registry模型,并 使⽤用Channel主动上报Metric数据 • Promethues,Grafana,Zipkin 对接 Updates0 码力 | 52 页 | 4.37 MB | 1 年前3
共 22 条
- 1
- 2
- 3