康彬-基于微服务的混合云和同城双活实践
核心交易平台 风控审核平台 计算资源 (CPU) 存储资源 (内存|磁盘) 网络资源 (ip|端口|带宽) 中间件层 微服务框架 服务元数据管理 服务发布 服务订阅 消息中间件 消息元数据管理 消息生产 消息消费 job调度系统 job元数据管理 job发布 job调度 配置中心 mq管理系统 调用链路 系统 监控告警 系统 发布系统 服务注册 中心 服务治理 业务板块边界模糊 registry(分期乐) 分期乐业务服务 分期乐业务数据 registry(桔子理财) 桔子理财业务服务 桔子理财业务数据 代理 应用 registry(鼎盛) 鼎盛业务服务 鼎盛业务数据 代理 应用 缺乏全链路的系统诊断能力 业务系统 (业务错误码) 服务框架 (请求数、成功率等) 基础组件 (mq、fastdfs、redis、mysql) RocketMq 链路日志埋点 接入层 服务层 中间件 数据层 4 Mysql、Redis mysql、redis组件采集请求中包含的traceid 3 RocketMq mq通过消息属性字段透传traceid 2 LSF框架 微服务框架通过RPC调用上下文透传traceid 1 Api-gateway、CGI、Job调度 在源头为每次请求生产唯一标识traceid 混合云&同城双活0 码力 | 47 页 | 6.09 MB | 1 年前3ServiceComb在华为消费者云的亿级用户微服务实践
微服务提供端 NIO异步通信 业务线程阻塞, 同步等待 唤醒等待的业务线程, 获取响应 1 2 微服务同步调用问题: 1、同步服务调用:业务线程将请求消息交给I/O线程之后, 无论I/O线程是同步还是异步发送请求消息,业务线程都会 同步阻塞,等待响应 2、异步I/O通信:I/O通信方式与服务调用方式没关联关 系,无论是同步服务调用还是异步服务调用,I/O通信都 可以采用异步非阻塞模式 在一个进程中线程总数是有限制的。提升线程的使用率,就能 够有效提升系统的吞吐量。在同步服务调用中,如果服务端没 有返回响应,客户端业务线程就会一直阻塞(wait),傻等期 间,无法处理其它业务消息。 2、纠结的超时时间:服务的超时时间配置是个比较纠结的事 情,如果超时时间配置过大,如果响应慢,会导致线程被长时 间挂住;如果配置过小,则会导致超时增多,成功率降低。 3、雪崩效应:假如超时时间配置较大(例如3S),服务端响 异步场景1:降低长流程/复杂业务流程时延:消费端需要调用多个微服务,进行业务逻辑编排,多个微服务之间没有执行先后顺序 和参数依赖,可以通过异步微服务调用并行执行 异步场景2:性能提升:使用更少的线程处理更多的消息,提升线程和I/O利用效率 异步场景3:业务超时较长:业务上对服务调用时延不敏感(例如1-3S),如果采用同步调用 + 大超时时间,在业务高峰期,如果 时延达到超时阈值,系统很容易被压挂 异步0 码力 | 15 页 | 1.15 MB | 1 年前3Service Mesh的思考及在华为云的实践
微服务架构引入的问题 6/30/2018 什么是Service Mesh • 一种基础设施层,服务间 通信通过Service mesh进 • 一种TCP/IP之上的网络模 型行 • 一个轻量的网络代理,与 业务部署在一起 • 可靠的传输复杂网络拓扑 中的服务请求,将服务变 为现代的云原生服务 Website: http://servicecomb.incubator.apache.org/ http://servicecomb.incubator.apache.org/ Gitter: https://gitter.im/ServiceCombUsers/Lobby 华为内部的代理架构演进 Website: http://servicecomb.incubator.apache.org/ Gitter: https://gitter.im/ServiceCombUsers/Lobby0 码力 | 29 页 | 1.55 MB | 1 年前3Service Mesh在华为公 有云的实践
Service Mesh • ⼀一种基础设施层,服务间的通信通过 Service Mesh进⾏行 • 可靠地传输复杂⺴⽹网络拓扑中服务的请 求,将服务变成现代的云原⽣生服务 • ⼀一种⺴⽹网络代理的实现,通常与业务服 务部署在⼀一起,业务服务不感知 • ⼀一种TCP/IP之上的⺴⽹网络模型 Application Service Mesh Transport Network Physical • 实现⼀一个Service Mesh • 使⽤用Service Mesh快速构建微服务 • ⽣生态与扩展 • Service Mesh在华为内部的技术演进 第⼀一代:基于Nginx的微服务代理 • 2013年,微服务开发平台中的组 件,公司内部某电信业务 • 400多个微服务,800左右实例, 200多个数据中⼼心 Sidecar模式 • 基于容器的分布式系统设计模式 • 容器可以共享存储与⺴⽹网络的能⼒力0 码力 | 52 页 | 4.37 MB | 1 年前3微服务架构及ServiceComb实践
考虑把商品的价格从商品维护微服务同步到订单系统,该同步动作 对性能没有要求,对事务性有要求。 常见的服务间通信模式:同(异)步通信,API组合,基于MQ的异步通信 事务性: saga, 事务性消息发布(一次仅一次),分布式事务等 很易用的服务间saga事务方案Servicecomb-Pack: https://github.com/apache/servicecomb-service-pack Login-db Redis Redis Gateway Saga同步qualification 1. 每个微服务对应自己数据层 2. 拆分经验:看业务,不看技术 3. 利用:saga, 事务性消息发布,最终一致性,同(异)步调用组合等微服务模式 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache0 码力 | 14 页 | 2.04 MB | 1 年前3张波-虎牙直播在微服务改造中的实践
Config2+Admin3+Portal*2+Mysql =8 Nacos*3+MySql=4 配置格式校验 支持 支持 通信协议 HTTP HTTP 数据一致性 数据库模拟消息队列,Apollo定时 读消息 HTTP异步通知 单机读(tps) 9000 15000 单机写(tps) 1100 1800 技术选型 • Dubbo生态产品, Nacos源于阿里内部服务的开源实现; •0 码力 | 27 页 | 1.03 MB | 1 年前3使用微服务架构快速开发万级TPS高可用电商系统
虑把购房资格信息从客户维护微服务同步到订单系统,改同步动作 对性能没有要求,对事务性有要求。 常见的服务间通信模式:同(异)步通信,API组合,基于MQ的异步通信 事务性: saga, 事务性消息发布(一次仅一次),分布式事务等 很易用的服务间saga事务方案Servicecomb ServicePack: https://github.com/apache/servicecomb-service-pack Login-db Redis Redis Gateway Saga同步qualification 1. 每个微服务对应自己数据层 2. 拆分经验:看业务,不看技术 3. 利用:saga, 事务性消息发布,最终一致性,同(异)步调用组合等微服务模式 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache0 码力 | 15 页 | 1.46 MB | 1 年前3ServiceComb 微服务框架
•Alpha充当协调者的角色,主要负责对事务的 事件进行持久化存储以及协调子事务的状态,使 其最终得以与全局事务的状态保持一致,即保证 事务中的子事务全执行,或全不执行。 •Omega是用户程序侧代理,负责对网络请求 进行拦截并向Alpha上报事务事件,并在异常情 况下根据Alpha下发的指令执行相应的补偿或重 试操作。 Service A Omega Service B Omega Alpha0 码力 | 11 页 | 668.81 KB | 1 年前3ServiceComb在Service Mesh的 探索与思考
Service Mesh - 2017年由William Morgan提出 - 一种基础设施层,服务间通信通过Service Mesh进行 - 一种TCP/IP之上的网络模型 - 轻量网络代理,与业务部署在一起 - 可靠传输复杂拓扑网络中的请求 - 将应用变为现代的云原生应用 4 Application Service Mesh Transport Network Physical0 码力 | 21 页 | 8.48 MB | 1 年前3华为微服务框架ServiceComb
1 深圳站: Cloud Native 架构下的 K8S 和微服务实践 Saga Pack版本 • Alpha - 族群领袖, Saga 协调器 • Omega – 族群成员, 事务协调代理 Alpha Service A Omega Service B Omega Alpha Alpha 2018 Building Microservice NO.1 深圳站:0 码力 | 28 页 | 1.53 MB | 1 年前3
共 16 条
- 1
- 2