Apache ServiceComb 微服务创新项目解读[Github ] https://github.com/apache?q=servicecomb Mesher - 开箱即用的异构、多语言、非侵入式微服务框架 基于Golang实现的高性能服务网格框架,支持零侵入业 务代码实现微服务化改造,与流行微服务框架治理互通 • 项目地址 https://github.com/apache/servicecomb-mesher • 开发计划 - 网关能力 https://github.com/apache?q=servicecomb ServiceComb Toolkit Toolkit - 遵循OpenAPI的微服务开发、改造工具 提供遵循OpenAPI规范的API、代码、文档相互转换和校 验的能力,帮助用户快速构建基于流行微服务框架和编程 模型的微服务脚手架工程,提升遗留系统重构、开发效率 • 项目地址 https://github.com/apache/servicecomb-toolkit Cloud微服务工程 - 支持OAI V3 - 支持toolkit plugin集成到Eclipse&Intellij 接口层 API提取 文档制作 API校验 代码解析 微服务开发框架层 ServiceComb SpringCloud …… 实现层 插件 命令行 …… …… 脚手架服务 [Website] http://servicecomb.apache.org [Github ] https://github0 码力 | 13 页 | 1.24 MB | 1 年前3
微服务创新新品发布OpenAPI规范契约文件 契约与代码一致性校验报告 契约(接口)文档 异构微服务项目工程 (ServiceComb 或 SpringCloud) 遗留应用代码 (SpringMVC/POJO/JAX-RS) 契约文件 (符合OpenAPI规范) 用户交互 转换 微服务工程构建 CLI命令行 Maven/Gradle 插件 契约提取 代码生成 文档制作 契约校验 ServiceComb 部署微服务 契约仓库 微服务 运行环 境 验收微服务 协同企业遗留系统微服务化快速改造,实现基于契约的数据、服务标准化管控 微服务契约工具 https://github.com/apache/servicecomb-toolkit ServiceComb toolkit 提供契约、代码、文档相互转换和校验的能力,帮助用户快速构建基于流行微服务框架和编程模型 的微服务工程,降低微服务学 。 • 契约生成微服务工程:一键生成基于ServiceComb/SpringCloud的微服务工程。 • 代码提取契约:一键从基于SpringMVC/POJO/JAX-RS编程模型开发代码提取OpenAPI契约。 • 契约校验:一键校验实际代码的实现是否与约定契约一致性。 • 契约/代码生成文档:一键制作html文档。 5 github.com/apache?q=servicecomb servicecomb0 码力 | 12 页 | 2.96 MB | 1 年前3
《Saga分布式事务解决⽅案与实践》演讲者/姜宁⼀一致性 (Consistency) • 隔离性 ( Isolation) • 持久性 (Durability) • Saga只提供ACD保证 • 原⼦子性(通过Saga协调器器实现) • ⼀一致性 (本地事务 + Saga log) • 隔离性 (Saga不不保证) • 持久性 (Saga log) 缺乏隔离性带来的问题 • 两个Saga事务同时操作⼀一个资源会出现数据语义不不⼀一致的的情况。 业务层⾯面采⽤用预先冻结资⾦金金的⽅方式隔离此部分资⾦金金。 • 业务操作过程中通过及时读取当前状态的⽅方式获取更更新。 Saga的实现⽅方式 • 集中式的实现⽅方式 (Orchestration-based coordination) • 集中式协调器器负责服务调⽤用以及事务协调 • 分布式的实现⽅方式 (Choreography-based coordination) • 通过事件驱动的⽅方式来进⾏行行事务协调 通过事件驱动的⽅方式来进⾏行行事务协调 http://microservices.io/patterns/data/saga.html 集中式Saga实现 http://microservices.io/patterns/data/saga.html Order Service OrderService Order state total … create() create() CreateOrder0 码力 | 39 页 | 2.78 MB | 1 年前3
ServiceComb java SDK详解Rest Consumer 透明RPC RestTemplate Producer 透明RPC JAX-RS SpringMVC • 传输绑架开发模式 • 传输可能对业务代码产生严重的侵入 • 治理逻辑与业务代码或传输耦合,需要针对各种场景独立开发 治理 治理 治理 治理 设计演进 服务契约 (OpenAPI) Transport Highway Servlet Rest Vertx Rest Consumer 透明RPC RestTemplate Producer 透明RPC JAX-RS SpringMVC 以契约为核心,贯穿始终 • 开发模式(业务代码)、治理、传输三方解耦,互不感知 • 以高性能的Reactive为基础,同时兼容传统的同步开发模式,且支持传统的Servlet传输 LoadBalance …… QPS Trace …… 以过滤得到的Endpoint集合作为输入,根据配置的策 略进行LoadBalance: • 轮询、响应时间权重、随机 • 基于Netflix ribbon,开发人员可以根据需要自 定义IRule的实现 instances VersionRule 1.0.0-2.0.0 ...... Operation 1.0.0+ 1.1.0+ ZoneAware self other .0 码力 | 21 页 | 1.15 MB | 1 年前3
开源开发者的一天 - Apache ServiceComb开源发展第三阶段 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb • 源代码开放,可自由访问、使用、修改和共享 • 开源许可协议的选择 • 开放式合作 • 无厂商绑定 • 没有歧视 • 可用做商用目的 开源的定义 [社区网站] http://servicecomb 者协议 CLA 由PMC提 名并投票选 拔 由PMC提 名并投票选 拔 由PMC提名并投 票选拔 由会员提名并投 票选拔 由会员提名并投票 选拔 拥有权利 提交issues 及patch 有代码库读 写权限 决策子项目 需求和方向 负责整体孵化项 目决策及投票 提议Committer 候选人及孵化器 候选项目 管理与监督基金会 商务与日常事务 • 注册在美国的非盈利组织 • 提供法律和基础设施的支持 http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb Community over code(社区胜于代码) Meritocra cy Communi ty Open & transpare ncy Pragmati sm Collabora tive develop ment0 码力 | 31 页 | 2.02 MB | 1 年前3
庖丁解牛:华为云微服务工具解放开发者线程级 进程级 整体可用性 较低 更高 架构持续演进 困难 简单 沟通效率 低 高 技术栈选择 受限 灵活 可扩展性 受限 灵活 可重用性 低 高 实现业务复杂性分解难度 困难 容易 产品创新复杂度 困难 容易 一致性实现成本 低 高 时延 低 高 资源成本 低 高 关联查询复杂度 简单 复杂 远程调用 不涉及 涉及 服务治理 不涉及 涉及 对开发人员的要求 低 高 对工具的依赖 如AI 拆表 拆界面及业务逻辑 微服务化改造典型流程 挑战:强业务相关, 必须业务+微服务专 家介入,投入大、时 间长; 关键技术:应用微服 务化改造工具套件 根据sql、日志、代码实现微服务拆分,并修改相关代码。 Huawei Confidential 7 微服务拆分工具-表自动分库 SQL 语句 SQL 语句 SQL 语句 … 语法分析 语法分析 语法分析 表关联分析 图切割+启 1.指定代码路径 /home/xxx/project 2.指定算法(目前默认 greedy) 3.指定sql规则(目前默认 mysql,后续做成智能分 析) Parser (mybatis/hibernate/…) graphanalyzer sqlanalyzer algorithm (greedy/clustering/…) output 数据拆分 建议文件 解析代码,搜集sql语句0 码力 | 14 页 | 1.54 MB | 1 年前3
消费者云CSE微服务实践OpenAPI规范,最终将微服务API规范化、标准化、在线化。系统从传统单体 应用的黑盒调用(本地Java方法调用)转变成透明的API契约调用 服务自治:通过在线的微服务治理结合云平台,可以实现微服务的弹性伸缩、故障自劢 迁移、降级熔断等,保障微服务的运行质量,提升业务SLA 建立服务化团队:随着业务的丌断拆分,大的研发团队也会被拆分成2-Pizza Team, 微服务团队由3 全功能团队的建设,让业务真正敏捷起来 微服务框架技术选型-支持多语言 尽管现在以Java和GO语言为主,但是从架构演进角度考虑,未来 会根据消费者业务自身的特点引入更适合的语言 服务框架丌要绑定具体的语言实现,例如内部通信协议使用某种 语言特定的序列化机制、发布泛型、抽象接口等 微服务框架技术选型-灵活和轻量级架构 当前业务服务端都是非Web应用,所以丌需要运行在Web容器中, 需要类似 实用和丰富 的在线治理能力 流量控制、幵发控制、超时控制、服务降级、服务熔断、路由权 重调整… 常用的服务治理能力要内置到服务框架中,业务领域强相关、非 通用能力可以通过扩展点实现 微服务框架技术选型-易集成 当前业务使用Spring MVC等传统的单体架构,希望可以较平滑、 低成本的迁移到微服务架构上: 从业务接受度上,希望丌要翻天覆地的改变业务开发习惯,最好能够兼容原Spring0 码力 | 22 页 | 1.39 MB | 1 年前3
Service Mesh在华为公
有云的实践2016年加⼊入华为担任架构师,负责微服务的Go语⾔言开发框架及Service Mesh设计 和落地,Go语⾔言微服务框架被华为5G核⼼心⺴⽹网络采⽤用,Service Mesh服务商⽤用上 线公有云 • 简介 • 实现⼀一个Service Mesh • 使⽤用Service Mesh快速构建微服务 • ⽣生态与扩展 • Service Mesh在华为内部的技术演进 我们在构建微服务,⽽而构建微服务是困难 的 Service Mesh • ⼀一种基础设施层,服务间的通信通过 Service Mesh进⾏行 • 可靠地传输复杂⺴⽹网络拓扑中服务的请 求,将服务变成现代的云原⽣生服务 • ⼀一种⺴⽹网络代理的实现,通常与业务服 务部署在⼀一起,业务服务不感知 • ⼀一种TCP/IP之上的⺴⽹网络模型 Application Service Mesh Transport Network Physical 为什么使⽤用Service Mesh • ⽆无需多种语⾔言的微服务框架开发 • 对业务代码0侵⼊入 • 不适合改造的单体应⽤用 • 开发出开的应⽤用既是云原⽣生的⼜又具有独⽴立性 没有银弹 • 新的故障点 • ⼀一定程度的性能降低 • 侵⼊入式框架有更强的定制和扩展能⼒力 • 部署复杂性 • 简介 • 实现⼀一个Service Mesh • 使⽤用Service Mesh快速构建微服务0 码力 | 52 页 | 4.37 MB | 1 年前3
微服务环境下的系统治理与容错架构的终极目标 研发团队的持续斗争 研发团队必须从公司长远利益出发与其他部门抗争 -- Robert C. Martin 多种架构思想的本质 分层架构思维到六边形架构思维 业务领域代码 基础设施代码 再看六边形架构 治理 微服务到底需要多“微” 微 微服务的“微”暗示了服务的大小,但实际上微服务架构对构成的服务实例并没有大小方面的要求。 微服务的微 微服务的两个“谬论” “银弹”。 n 第二,编写整洁的代码和使用自动化测试至关重要,因为这是现代软件开发的基础。 n 第三,关注微服务的本质,即服务的分解和定义,而不是技术,如容器和其他工具。 n 第四,确保你的服务松耦合,并且可以独立开发、测试和部署,不要搞成分布式单体,那将会是巨大的灾难。 n 第五,也是最重要的,不能只是在技术上采用微服务架构。拥抱DevOps的原则和实践,在组织结构上实现跨 职能的自治团队,这必不可少。 职能的自治团队,这必不可少。 还必须记住:实现微服务架构并不是你的目标。你的目标是加速大型复杂应用程序的开发。 --Chris Richardson 容错 故障和问题 线上故障“画像“ 系统稳定性指标 可监控设计 同步调用下-无线程池隔离 同步调用下-线程池隔离实现方法 快速失败-超时 快速失败-时间窗口 快速失败-超时重试次数 区分部署和上线 常规系统保障流程 没有不出问题的系统 什么是混沌工程0 码力 | 45 页 | 16.09 MB | 1 年前3
ServiceComb 介绍ServiceComb是什么? • ServiceComb包含了哪些组件? • ServiceComb社区介绍? 议题 • 企业业务逻辑复杂,如何进行跨团队协同开发? • 大量老旧系统代码,如何支持其服务化改造? • 云化应用面临的监控已经分布调用追踪问题? 企业应用微服务开发面临的问题 ServiceComb 为什么需要服务契约 • 作为服务消费者 • 需要明确知道如何调用服务? • 提供用户支持也不太方便 Java Go 服务 契约 生成工具 框架 代码 框架 代码 框架 代码 接口 文档 接口 文档 接口 文档 生成 生成 • 面向接口契约而不是逻辑 • 解耦服务提供者和消费者的开发顺序 • 契约定义为语言中立 • 规范化系统接口,让实现与文档的同步 • 通过工具简化整个过程 API First & Code First First 服务契约定义 注册中心、治理中心 SpringMVC JAXRS 支持多种Rest服务实现方式 Process Event-Loop Process R R W W 线 程 池 • 框架以事件驱劢为基础 • 异步操作提升应用处理效率 • 支持Restful以及RPC 异步事件操作保证系统性能 分布式调用追踪 • 支持标准追踪协议0 码力 | 16 页 | 1.26 MB | 1 年前3
共 37 条
- 1
- 2
- 3
- 4













