微服务解决方案ServiceComb(1)之介绍

微服务解决方案ServiceComb(1)之介绍

微信搜索 zze_coding 或扫描 👉 二维码关注我的微信公众号获取更多资源推送:

背景介绍

ServiceComb 作为 Apache 开源组织下的一款微服务框架,其前身为华为云的微服务引擎 CSE(Cloud Service Engine)云服务。它意味着国内一款微服务框架在华为和 Apache 组织的共同努力下,随着微服务市场的火爆,-定会让越来越多的开发者所喜欢。

首要原则

全球首款进入 Apache 的开源微服务项目,中立、开放、标准、无商业 Lock-in 开源与商业代码同源,具备零成本平滑迁移商用的能力,社区长足发展有保障。

技术方案

解决方案级,多语言、多通信协议、标准服务契约、事务最终一致性开源开放,拥抱 SpringBoot、SpringCloud、ServiceMesh 等主流生态低门槛注入,业务侵入度低,架构松耦合。

官网介绍

华为将 ServiceComb 贡献给了 Apache 基金组织后,我们就可以通过 Apache 的官方网站提供的资料来学习 ServiceComb,下面是官网地址:

image.png

ServiceComb与SpringCloud的比较

我们可以从语言框架,编程模型,通信协议,服务治理,服务访问,分布式事务等方面进行比较,得出结果如下:

领域 功能 SpringCloud ServiceComb
多语言框架 Java 微服务框架
非侵入微服务框架 X
多编程模型 POJO 编程模型 X
SpringMVC 编程模型
Jax-RS 编程模型 X
Reactive 响应式编程 X
多通信协议 Rest
RPC X
服务治理 负载均衡
服务限流
服务隔离
服务容错
服务熔断
错误注入 X
服务中心
配置中心
服务访问 安全协议
安全认证
服务契约
分布式事务 事务一致性方案 X

通过上表的对比块,我们可以得出结论就是 ServiceComb 在微服务开发上更胜一筹。我们有理由相信 ServiceComb 将会在微服务开发领域成为国人的骄傲。

ServiceComb的开放性设计思想

image.png

主要设计意图

  1. 编程模型和通信模型分离,不同的编程模型可以灵活组合不同的通信模型。应用开发者在开发阶段只关注接口开发,部署阶段灵活切换通信方式;支持 legacy 系统的切换,legacy 系统只需要修改服务发布的配置文件(或者 annotation),而不需要修改代码。现阶段支持 SpringMVC、JAX-RS 和透明 RPC 三种开发方式。
  2. 内建 API-first 支持。通过契约规范化微服务开发,实现跨语言的通信,并支持配套的软件工具链(契约生成代码、代码生成契约等)开发,构建完整的开发生态。
  3. 定义了常用的微服务运行模型,将微服务从发现到交互过程中的各种容错手段都封装起来。该运行模型支持自定义和扩展。

模块说明

类型artifact id是否可选功能说明
编程模型provider-pojo提供 RPC 开发模式。
编程模型provider-jaxrs提供 JAX RS 开发模式。
编程模型provider-springmvc提供 Spring MVC 开发模式。
通信模型transport-rest-vertx运行于HTTP之上的开发框架,不依赖WEB容器,应用打包为可执行 jar。
通信模型transport-rest-servlet运行于 WEB 容器的开发框架,应用打包为 war 包。
通信模型transport-highway提供高性能的私有通信协议,仅用于 Java 之间互通。
运行模型handler-loadbalance负载均衡模块。提供各种路由策略和配置方法。一般客户端使用。
运行模型handler-bizkeeper和服务治理相关的功能,比如隔离、熔断、容错。
运行模型handler-tracing调用链跟踪模块,对接监控系统,吐出打点数据。

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.zze.xyz/archives/servicecomb1.html

Buy me a cup of coffee ☕.