ServiceComb在华为消费者云的亿级用户微服务实践
务 端的类库定义,双方互相解耦 微服务接口测试:测试基于流水线的API定义生成自动化测试用例, 防止开发本地随意修改API 微服务API依赖关系:通过微服务流水线编译、打包和系统集成 测试,识别并展示微服务API之间的依赖关系(我依赖谁、谁依赖我) API变更管控:API变更邮件通知和审批,每日微服务流水线构建, 及时发现接口不兼容问题 实践-不同的微服务开发风格 Website: incubator.apache.org/ Gitter: https://gitter.im/ServiceCombUsers/Lobby 利用ServiceComb的隔离仓技术,实现业务不同接口的故障隔离 充值服务 APP付费下载服务 APP评论服务 业务线程池 手机客户端 WAP客户端 图书门户 单点故障 故障扩散 故障扩散 无线程池隔离仓: 充值服务 开户服务 其它非关键服务 隔离仓-1 隔离仓-3 手机客户端 WAP客户端 图书门户 单点故障 正常 正常 隔离仓-2 配置隔离仓: 通过配置线程池隔离仓,实现快 慢接口、读写接口、核心和非核 心接口、管理和业务接口的调度 隔离,提升微服务可靠性 实践-轻量化 Website: http://servicecomb.incubator.apache.org/ Gitter: https://gitter0 码力 | 15 页 | 1.15 MB | 1 年前3NTTDATA 汽车行业数字营销平台微服务化实践
整业务模式快速配置,以最低成本适应弹性的数据需求。 • 主机厂/经销商、线上/线下线索管 理集中化 • 线索/会员/车主服务集中化 • 数据集中化 集中化 • 用户体验能力标准化 • 外部接口标准化 • 营销能力标准化、营销形式个性化 标准化 • 线索清洗评分智能化、智能分流 • 自动化个性精准营销 • 自动化投放追踪 • 营销内容自动分发 • 智能客服 智能化 • 移动端优先、用户体验优先 安全体系 协同平台 价值体系 流程体系 第三方渠道 展会 数字 展厅 PC门户 企业微信 官网 短信 小程序 公众号 标准体系 标签体系 数据 中台 …… 存储服务 安全服务 接口网关服务 日志服务 网络服务 …… 短信服务 技术 中台 ……. 消费者互动数据 消费者账号 消费者基础信息 消费者交易数据 消费者服务数据 ….. 人 人车关系数据 车况数据 车辆维修保养数 第三层.CRM 业务微服务 第四层.CRM 业务数据 服务中心 配置中心 治理中心 IT运维 日志可视化 (华为云) CDN/ WAF 资源监控预警 (华为云 AOM) 营销平台 接口服务 消息 REST NAT网关 NAT gateway 4核8G 按需扩容 4核8G 按需扩容 Nginx 按需扩容 My SQL 高 可 用 安全组隔离 安全组隔离 安全组隔离0 码力 | 11 页 | 2.25 MB | 1 年前3ServiceComb 介绍
提供用户支持也不太方便 Java Go 服务 契约 生成工具 框架 代码 框架 代码 框架 代码 接口 文档 接口 文档 接口 文档 生成 生成 • 面向接口契约而不是逻辑 • 解耦服务提供者和消费者的开发顺序 • 契约定义为语言中立 • 规范化系统接口,让实现与文档的同步 • 通过工具简化整个过程 API First & Code First 服务契约定义0 码力 | 16 页 | 1.26 MB | 1 年前3消费者云CSE微服务实践
尽管现在以Java和GO语言为主,但是从架构演进角度考虑,未来 会根据消费者业务自身的特点引入更适合的语言 服务框架丌要绑定具体的语言实现,例如内部通信协议使用某种 语言特定的序列化机制、发布泛型、抽象接口等 微服务框架技术选型-灵活和轻量级架构 当前业务服务端都是非Web应用,所以丌需要运行在Web容器中, 需要类似Main函数可以直接拉起来的Standalone模式 服务框架 障都比较给力 天生支持Docker容器不华为公有云,降低业务云化成本 CSE在消费者云业务的实践-API First API 接口 契约 消费者1 消费者2 消费者...N 提 供 者 1、接口定义 2、测试用例 3、码流 4、错误码... 最佳实践 无论Rest API,戒者RPC Highway API,统一使用Swagger 服务端和客户端都基于API定义,通过CSE提供的工具生成丌同语言的类库, 客户端可以丌导入服务端的类库定义,双方互相解耦 始终以在线的API定义为准,防止服务端私自修改接口代码(例如增减字段、 修改字段类型) 每日微服务流水线构建,及时发现接口丌兼容问题 CSE 消费者 提供者 模 拟 桩 服务 端 Mock 框架 客户 端 Mock 框架 CSE在消费者云业务的实践-Spring0 码力 | 22 页 | 1.39 MB | 1 年前3ServiceComb 的前世今生
Go 服务 契约 生成工具 框架 代码 框架 代码 框架 代码 接口 文档 接口 文档 接口 文档 生成 生成 • 面向契约而不是逻辑 • 解耦服务提供者和消费者的开发顺序 • 契约定义为语言中立 • 规范化系统接口,让实现与文档的同 步成为必须 • 通过工具简化整个过程 API First 增速微服务开发0 码力 | 16 页 | 1.45 MB | 1 年前3华为微服务框架ServiceComb
和微服务实践 异步性能支持 • 基于Vertx提供的异步内核 • 保持高性能的同时支持同步调用方式 • 将通信线程不业务处理线程分离 • 操作级别线程池控制,支持隔离仓 • 支持多种异步编程接口 • CompletableFuture • RxJava • Reactive Stream • ……. Process Event-Loop Process R R Native 架构下的 K8S 和微服务实践 Metrics • 覆盖关键指标 • 支持多时间周期性能指标统计 • 集成Prometheus,OverWatch • 提供health check 接口检查 Metrics 子项 说明 微服务资源使用 CPU、ThreadCount、Heap、NonHeap 基本的资源使用状态 Consumer端 Latency、CallCount、TPS Microservice NO.1 深圳站: Cloud Native 架构下的 K8S 和微服务实践 ServiceComb 1.0.0-m1新特性 • Java Chassis • 异步调用接口支持 • 监控指标模块优化,支持不prometheus, OverWatch • 支持通过携程Apollo劢态配置实例 • Service Center • 优化Service Center性能,修复Bug0 码力 | 28 页 | 1.53 MB | 1 年前3华为企业级PaaS 微服务应用
Cloud与ServiceComb等开源生态,使开发者能够无改造迁移上云 • 多语言解决方案:Java,Go两种语言框架与Service mesh方案 • 契约管理:自动生成API文档,并在中心管理,使集成更加流畅,约束接口不能任意变更 servicecomb.apache.org github.com/apache?q=servicecomb 引擎 把他们放在一起 微服务 微服务 微服务 DMS 发布订阅 浏览器 华为消费者云服务 6500万 应用市场日 活用户 4100万 日增照片 4.5亿+ 用户 举例:华为音 乐微服务改造 运营管理云服务 内容呈现云服务 用户呈现云服务 音乐媒资接口 媒资内容管理 内容转码 运营渠道管理 运营管理门户 内容呈现接入 内容搜索 内容推荐 产品呈现 活动呈现 用户呈现接入 音乐播放控制 订单 用户行为 用户社交 华为音 统一纵向 层级交换 机制 统一信息 安全体系 软件开发服务 ServiceStage 大数据服务 系统集成服务 IaaS(计算、存储、网络、安全) 中间件服务 标准与规范 应用全微服务化,接口标准由财政厅统一管控, ISV只需聚焦微服务交付,降低依赖性 统一业务模型和数据集成标准,系统无缝对接, 财政数据统一呈现,业务全盘管控 基于先进研发理念,标准化研发环境和工 具,开发效率高,财政需求上线快0 码力 | 17 页 | 3.42 MB | 1 年前3ServiceComb java SDK详解
endpoints Endpoint RESTful Highway All ...... 微服务调用-consumer 透明RPC: 同步、异步声明,可以分开进行,也可以在同一个接口中声明 interface Schema { String hello(String name); } interface Schema { CompletableFutureAsyncResponse callback HttpServerFilters. beforeSendResponse Future complete Edge Service • 作为整个微服务系统对外的接口,向最终用户提供服务,接入RESTful请求,转发给内 部微服务 • 基于ServiceComb标准consumer流程转发请求到内部微服务,所有consumer治理能力, 不必独立开发,直接重用 izer先执行 – Meters Initializer: 实现TPS、时延、线程 池、jvm资源等等数据的统计 – Publisher: 输出统计结果,内置了日志输出, 以及通过RESTful接口输出 • Metrics-prometheus提供与prometheus对接的能力 spectator spectator -reg- servo foundation-metrics metrics-core 0 码力 | 21 页 | 1.15 MB | 1 年前3Apache ServiceComb 微服务创新项目解读
mb-toolkit • 开发计划 - 支持API生成Spring Cloud微服务工程 - 支持OAI V3 - 支持toolkit plugin集成到Eclipse&Intellij 接口层 API提取 文档制作 API校验 代码解析 微服务开发框架层 ServiceComb SpringCloud …… 实现层 插件 命令行 …… …… 脚手架服务 [Website] toolkit 划分微服务 (含依赖关系) 定义契约 (接口和模型) 发布契约 ServiceComb 契约开发工具 开发微服务 测试微服务 客户+集成商 软件提供商 部署微服务 契约仓库 微服务 运行环 境 验收微服务 协同实现基于契约(API)的数据、服务标准化管控 划分微服务 (含依赖关系) 定义契约 (接口和模型) 发布契约 微服务 运行环 境 验收微服务0 码力 | 13 页 | 1.24 MB | 1 年前3ServiceComb雄关漫道
围绕服务契约进行开发以及运维 异步化支持 • 基于Vertx提供的异步内核 • 保持高性能的同时支持同步调用方式 • 将通信线程与业务处理线程分离 • 操作级别线程池控制,支持隔离仓 • 支持多种异步编程接口 • CompletableFuture • RxJava • Reactive Stream • ……. Process Event-Loop Process R R W W 线 2017年8月 2017年10月 2017年9月 2017年12月 ServiceComb 1.0.0-m1 新特性 • Java Chassis • 支持 CompletableFeature 异步调用接口 • 监控指标模块优化,支持与prometheus对接 • 支持通过携程的Apollo配置中心来动态配置实例 • Service Center • 优化Service Center性能,修复Bug0 码力 | 20 页 | 4.00 MB | 1 年前3
共 22 条
- 1
- 2
- 3