ServiceComb在华为消费者云的亿级用户微服务实践incubator.apache.org/ Gitter: https://gitter.im/ServiceCombUsers/Lobby 遵循OpenAPI Specification,消费端、提供端只依赖API API描述:无论Rest API,或者RPC Highway API,统一使用Swagger YAML定义API 微服务代码生成:服务端和客户端都基于API定义,通过 Se 端的类库定义,双方互相解耦 微服务接口测试:测试基于流水线的API定义生成自动化测试用例, 防止开发本地随意修改API 微服务API依赖关系:通过微服务流水线编译、打包和系统集成 测试,识别并展示微服务API之间的依赖关系(我依赖谁、谁依赖我) API变更管控:API变更邮件通知和审批,每日微服务流水线构建, 及时发现接口不兼容问题 实践-不同的微服务开发风格 Website: im/ServiceCombUsers/Lobby 适合异步的业务采用全栈异步架构,提升性能和可靠性 异步场景1:降低长流程/复杂业务流程时延:消费端需要调用多个微服务,进行业务逻辑编排,多个微服务之间没有执行先后顺序 和参数依赖,可以通过异步微服务调用并行执行 异步场景2:性能提升:使用更少的线程处理更多的消息,提升线程和I/O利用效率 异步场景3:业务超时较长:业务上对服务调用时延不敏感(例如1-3S),如果采用同步调用0 码力 | 15 页 | 1.15 MB | 1 年前3
Apache ServiceComb 微服务创新项目解读ServiceComb toolkit 划分微服务 (含依赖关系) 定义契约 (接口和模型) 发布契约 ServiceComb 契约开发工具 开发微服务 测试微服务 客户+集成商 软件提供商 部署微服务 契约仓库 微服务 运行环 境 验收微服务 协同实现基于契约(API)的数据、服务标准化管控 划分微服务 (含依赖关系) 定义契约 (接口和模型) 发布契约 微服务 运行环0 码力 | 13 页 | 1.24 MB | 1 年前3
庖丁解牛:华为云微服务工具解放开发者产品创新复杂度 困难 容易 一致性实现成本 低 高 时延 低 高 资源成本 低 高 关联查询复杂度 简单 复杂 远程调用 不涉及 涉及 服务治理 不涉及 涉及 对开发人员的要求 低 高 对工具的依赖 较低 较高 运维复杂度 低 高 Huawei Confidential 4 微服务架构的第一大问题——如何拆分微服务? •影响因素 >团队大小 >交付周期 >业务方向 >故障范围 >现有数据规模 语法分析 语法分析 语法分析 表关联分析 图切割+启 发式规则 Step1:提取系统所有SQL Step2:逐条根据SQL创建语法树 Step3:在每棵语法树上分析表的关联关系并汇集 成表关联关系加权图 Step6:采用图切割算法并配合启发式规则将表分 割到不同库中 原则:低耦合,高内聚 耦合度:微服务划分后,微服务与微服务连接的边的权重之和 内聚度:微服务划分后,微服务内部表与表之间的边权重之和 现水平扩展,提升访问速度 (分区分库) 步骤4:根据表结构变化,自动调整DDL/CRUD等SQL语句自动生成java的数据访问服务 步骤5:数据表执行、数据搬迁 业务应用层 业务应用层 业务应用层 通过对表的关联 关系及应用情况, 反向推导微服务 拆分策略 ╳ ╳ Huawei Confidential 9 拆分原理 handler scissors 1.指定代码路径 /home/xxx/project0 码力 | 14 页 | 1.54 MB | 1 年前3
解读Apache核⼼原则 “Apache之道” 核⼼原则 粗略的共识和可以⼯作的代码 ⼩的可逆步骤(进⾏探索) 任何建设性的贡献都可以获得功绩… … ⽽企业从属关系和资 历却没有 功绩不会过期 功绩不给你权威; 它可以让你有⾏使权⼒威信 没有独裁者,没有否决权 - 依赖于建⽴共识 “Apache 之道” AKA “社区胜于代码” ASF依托于Apache之道运作 ASF依托于Apache之道运作 精英之治 免费⽤于商业和⾮商业⽤途 兼容其他开源协议 协议 协议 A 类 - 可以依赖并包括在发布中 MIT, 2 和 3 条款 BSD B 类 - 可以依赖并且可能包括 通⽤开发和发布协议 (CDDL), Eclipse公共协议 (EPL), Mozilla公共协议 (MPL), 知识共享许可协议 (CC-A) X 类 - 不可以依赖或者包括在发⾏版中 GPL, LGPL, ⾮商业许可证, JSON 建⽴⽹站 — 每个项⽬都有⾃⼰独⽴的⽹址 https://project.apache.org 社区⻆⾊ 社区⻆⾊ ⽤户 — ⽤户是项⽬存在的意义,没有⽤户意味着项⽬不应 该存在。 贡献者 — 项⽬依赖于来⾃社区的贡献者们。得益于贡献者 们,及时反馈bug,邮件讨论,对bug进⾏改正,增加⽂档 等任务能够完成。 代码提交者 — 以功绩为参考项,杰出的贡献者们能够成为 代码提交者。 项⽬管理委员会会员0 码力 | 43 页 | 4.89 MB | 1 年前3
Metrics in ServiceComb 1.0.0-m1基于BMI示例演示(15min) • 示例项目BMI介绍 • 如何使用ServiceComb Java Chassis Metrics • 如何与普罗米修斯集成 依赖关系 Metrics列表 Metrics 子项 说明 微服务资源使用 CPU、ThreadCount、Heap、 NonHeap 基本的资源使用状态 Consumer端 L 具备高性能的同时又能保持极低的开销。 使用多周期适应不同的场景需求 支持Health Check • 通过Health Check让微服务支 持检查依赖组件的状态并返 回,可以用于制定策略,也 可以用于Dashboard展现 • 微服务很可能依赖数据库、其 它微服务或中间件,这些组件 状态正常是微服务能够正常提 供服务的前提; • 相比Metrics返回一个状态值, Health Check的返回更丰富,0 码力 | 18 页 | 938.89 KB | 1 年前3
ServiceCenter - 服务注册中心为什么实现自己的服务注册中心? 1. 提供标准接口(RESTful) 2. 负载均衡,服务订阅(客户端LB,长连接) 3. 运行时依赖(Go) 4. 可靠性(BASE,最终一致性) 从服务注册中心到服务管理中心 1. 元数据 2. 依赖关系 3. 实例变化推送 4. 多租隔离 5. 高可用性保障 从服务注册中心到服务管理中心 元数据 1. 应用App,便于微服务可在多个应用间重用0 码力 | 18 页 | 856.27 KB | 1 年前3
Apache ServiceComb Introduction of Microservice Innovation ProjectAPI document Based on ServiceComb/SpringCloud Microservice project ServiceComb toolkit 划分微服务 (含依赖关系) 定义契约 (接口和模型) 发布契约 ServiceComb toolkit Develop microservice Test microservice Customer0 码力 | 13 页 | 1.13 MB | 1 年前3
微服务架构与领域驱动设计 - 王磊度指导服务拆分。 微服务架构与DDD 01 领域驱动设计的核⼼心 02 基于事件⻛风暴暴的DDD实践 03 领域驱动设计的核⼼心 1.建⽴立统⼀一语⾔言 2.建⽴立领域模型 3.识别依赖关系 4.细分界限上下⽂文 将业务架构和系统架构对应起来,建⽴立针对业务变化的⾼高响应⼒力力架构 领域驱动设计的理理论基础 Strategic-战略略建模 Ubiquitous Language0 码力 | 28 页 | 1.84 MB | 1 年前3
微服务创新新品发布Maven/Gradle 插件 契约提取 代码生成 文档制作 契约校验 ServiceComb SpringCloud …… ServiceComb toolkit 划分微服务 (含依赖关系) 定义契约 (接口和模型) 发布契约 ServiceComb 契约开发工具 开发微服务 测试微服务 客户+集成商 软件开发商 部署微服务 契约仓库 微服务 运行环 境 验收微服务0 码力 | 12 页 | 2.96 MB | 1 年前3
张波-虎牙直播在微服务改造中的实践就 近 接 入 能 力 异 常 摘 除 能 力 dmx dns-f app nacos M S write read DNS-F在数据库场景的落地 背景 在数据库服务切换时效率低,依赖 业务方修改配置,时效不确定,通 常需要10分钟以上; 目标 数据库切换秒级生效; 技术特点-DNS-F M S S S M1.mysql S1.mysql S2.mysql S3.mysql 的就 近接入能力,内部服务调用无法实现就近访问。 目标 DNS解析成功率 100% 公共DNS分钟级生效 内部DNS秒级生效 基于IP+CMDB实现就近访问能力 11 dns当前现状 1、依赖公共localDNS,解析不稳定,延迟大 落地效果 12 平均解析时间 之前200ms+ 现在1ms以下 缓存命中率 之前92% 现在99.8%+ 解析失败率 之前0.1% 现在0%0 码力 | 27 页 | 1.03 MB | 1 年前3
共 23 条
- 1
- 2
- 3













