近期,微服务解决方案Apache ServiceComb(incubating) 捷报频传,除了LC3大会ServiceComb Workshop成功举办之外,Java-Chassis 1.0.0-m2、Service-Center 1.0.0-m2和Saga 0.2.0版本顺利通过投票,完成发版。
版本变更概览
Java-Chassis
- 服务间通讯提供文件流传输能力,支持音乐、图片等多媒体场景。
- 在服务级别QPS控制基础上,新增支持API级别QPS控制
- 增加脚手架和start.servicecomb.io,支持用户快速构建工程,提供完整的开箱即用能力
- 新增支持使用Gradle构建
- 异步编程模型支持CompletableFuture和AsycRestTemplate
- 扩展Swagger支持类循环依赖,允许服务调用时的出入参数中存在类循环依赖场景
- 支持使用hibernate注解进行参数校验
- 新增支持Http2协议
- 实现错误注入接口,允许通过拦截服务请求构造异常场景
- 新增服务Dev运行模式,开启Dev模式时,支持契约动态修改
- 实现优雅停机,关闭服务时进行反注册,确保完成已接受请求并完整释放资源
Service-Center
- 支持获取Service-Center的服务和实例信息,在集群部署场景下,可动态发现Service Center实例
- 在增删改查单服务和实例的基础上,新增支持批量删除服务和实例接口
- 支持使用前端对SwaggerAPI进行测试
- 新增支持IPv6
- 支持页面通过前端代理访问Service-Center,允许前端和后端监听在不同的网络平面
- 前端使用的JS依赖全部本地化,允许在无外网环境下使用Service Center前端
Saga
- 支持子事务失败重试
- 支持gRPC SSL通信
- 支持使用SpringBoot 2.0
部分颗粒度特性
脚手架功能
在微服务的开发过程中,由于涉及到众多的微服务治理、分布式追踪等功能的配置,开发人员需要耗费较多的时间来进行工程配置,为了提高业务侧的开发效率,ServiceComb提供了两种快速构建工程的方法:
1. 使用maven archetype的方式,快速构建预置的微服务工程,具体请参考:https://github.com/apache/incubator-servicecomb-java-chassis/blob/master/archetypes/README.md。
该方式目前提供business-service-jaxrs, business-service-springmvc,business-service-pojo,business-service-spring-boot-starter四种模板。
2. 通过http://start.servicecomb.io/,在该网页上配置需要的组件和功能并生成工程模板。
ServiceComb java-chassis-dependencies集中管理了所有必须的依赖,start.servicecomb.io生成出来的项目既包含示例代码,也包含必要配置的以及微服务治理所需的配置,批量生成所有的微服务后,用户只需要专注于填充业务代码。完成开发后,部署ServiceCenter,启动微服务,一个微服务应用就运行起来了,之后只需要专注于运维,后期也可通过动态配置,随时修改配置值调整治理能力。脚手架特性和集中依赖管理一起提供了ServiceComb的开箱即用能力。
支持文件与流传输
现在Java-Chassis可以支持VertxREST通道中传输文件和流,以此支持音乐、图片等多媒体内容。后期会增加其它传输模式的文件传输支持。具体参考:
https://huaweicse.github.io/servicecomb-java-chassis-doc/zh_CN/general-development/file-upload.html
在Service-Center前端进行API测试
Service-Center 现在支持在页面上对服务的API进行测试。具体请参考:
http://servicecomb.incubator.apache.org/docs/service-center-ui/
下载地址:
http://servicecomb.incubator.apache.org/release/service-center-downloads/
http://servicecomb.incubator.apache.org/release/java-chassis-downloads/
http://servicecomb.incubator.apache.org/release/saga-downloads/
版本说明:
http://servicecomb.incubator.apache.org/release/service-center-release-notes/
http://servicecomb.incubator.apache.org/release/java-chassis-release-notes/
http://servicecomb.incubator.apache.org/release/saga-release-notes/
ServiceComb相关资料
- 官方网站 : http://servicecomb.incubator.apache.org/
- 加入社区: https://servicecomb.incubator.apache.org/cn/docs/join_the_community
- JIRA: https://issues.apache.org/jira/browse/SCB
- 邮件列表 : dev@servicecomb.apache.org
附:ServiceComb 内部架构全景图