[里程碑]Apache ServiceComb 1.0.0版本正式发布
近日,正在Apache基金会孵化项目—微服务解决方案Apache ServiceComb(incubating) 的1.0.0版本通过社区投票,正式发布。这次发版的项目包括 Apache ServiceComb Java-Chassis (以下简称 Java-chassis)以及Apache ServiceComb ServiceCenter (以下简称ServiceCenter)。ServiceComb从2017年12月进入Apache基金会孵化至今半年时间内,一步一个脚印,于2018年3月发布1.0.0-m1版本、2018年6月1.0.0-m2发布版本,并于2018年8月完成了1.0.0里程碑版本的发布。当前,已经有10+企业使用了ServiceComb 进行商用,社区参会10+次,举办3场Meetup。本次的1.0.0版本发布,意味着ServiceComb 版本在符合Apache软件基金会要求的前提下,正式进入了稳定态。ServiceComb进入Apache基金会孵化后的主要新增特性及提升如下:
Java-chassis
-
全新的监控指标(Metrics)模块,增加大量监控指标,支持Prometheus集成
- 更多详细内容请参考Metrics介绍和如何集成Prometheus
-
重构配置中心,支持对接携程Apollo作为配置中心,并且可以方便的扩展对接其它三方配置中心
- 更多详细内容请参考配置中心选型与对接;
-
POJO编程模型支持用户使用CompletableFuture异步编程
- 更新详细内容请参考使用透明RPC方式开发服务消费者中“reactive”部分
-
POJO编程模型支持用户使用Object和Generic类型作为调用参数
- 更多详细内容请参考接口定义和数据类型
-
升级Zipkin到Zipkin2,同时支持v1和v2版本Zipkin server
- 关于如何在ServiceComb中使用Zipkin请参考分布式调用链追踪
-
微服务间通讯提供文件流传输能力,支持音乐、图片等多媒体场景
-
在服务级别QPS控制基础上,新增支持API级别QPS控制;
现在支持使用
servicecomb.flowcontrol.Consumer.qps.limit.[ServiceName].[Schema].[operation]
配置API级别QPS控制。 -
增加脚手架和start.servicecomb.io,支持用户快速构建工程,提供完整的开箱即用能力;
现在创建一个ServiceComb微服务可以通过Apache Maven Archetype方式快速构建,更多详细内容请参考ServiceComb Java Chassis Archetypes,您也可以直接访问start.servicecomb.io使用ServiceComb集成SPRING INITIALIZR UI的方式创建;
-
新增演示如何使用Gradle构建ServiceComb项目;
- 我们在BMI项目中增加了Gradle配置;
-
异步编程模型支持
AsycRestTemplate
;- 关于如何使用请参考使用AsynRestTemplate开发服务消费者;
-
新增支持Http2协议;
- 关于如何使用请参考使用Http2通信
-
实现错误注入接口,允许通过拦截服务请求构造异常场景,例如可以设置发往指定微服务的请求的时延和错误及其触发概率;
- 更多详细内容请参考故障注入;
-
新增服务Dev运行模式,开启Dev模式时,支持契约动态修改;
- 如何设置Dev运行模式请参考本地开发和测试中的“通过设置环境信息方便本地调试”部分;
-
实现优雅停机,关闭服务时进行反注册,确保完成已接受请求并完整释放资源;
-
扩展微服务公私钥认证机制,增加了黑白名单功能;
- ServiceCenter已经支持通过黑白名单控制微服务的注册发现,但是由于微服务之间最终是直连调用,因此微服务本身也需要有独立的黑白名单认证功能,如何设置请参考公钥认证中的“配置黑白名单”部分;
-
支持Cross-Origin Resource Sharing (CORS);
- 即支持跨域请求访问设置,例如现在Ajax可以直接访问微服务了,更多详细内容请参考CORS机制
-
扩展了Rest Endpoint的Access Log机制;
- 以前用户只能设置Access Log的Pattern,现在用户可以进一步自定义Access Log Item,更多内容请参考Access Log配置
-
SpringMVC编程模型现在同样支持类对象作为参数
- 用户可以使用类对象作为参数,例如:
@RequestMapping("/address") public String address(Address address) { ... } public class Address { String country; String city; }
将会自动转化为
/address?city={city}&country={country}
-
部署在Tomcat等Web容器中的微服务,现在支持结合context path和servlet pattern的访问路径请求服务
- 例如调用路径为
cse://service/a/b...
,部署在Tomcat等Web容器中后也支持以cse://service/{context path}/{servlet pattern}/a/b...
为URL访问;
- 例如调用路径为
-
缺省自动扫描main函数所在包,简化用户配置
-
提供客户端ping机制,能够通过ping扩展,检测客户端缓存实例是否可用。该功能默认启用,配合实例隔离功能对检测失败的实例进行隔离
-
当微服务发生服务降级,实例隔离熔断等状况时,将触发相应的Event,便于第三方集成(上报)
- 如何获取这类Event请参考获取熔断与实例隔离告警事件;
ServiceCenter
- 主要新增了如下特性:
- PACT Broker共享契约支持
- 支持
AsycRestTemplate
异步编程 - 日志分割(Log Rotation)
- 支持IPv6
- 支持后端存储拓展
- 契约测试:支持使用前端对Swagger API进行测试
- 详情请参考
http://servicecomb.incubator.apache.org/docs/service-center-ui/
- 详情请参考
- 消费者服务自发现
- 稳定性提升及bug fix
- 优化API接口,显著提高性能
- 优化Restful 客户端及插件加载器,提升易用性
- 无缝集成metrics 及tracing工具,提升监控能力
- 增加了默认的TLS加密套件,提升基于规则的服务发现的安全性
- 服务依赖管理采用事件驱动机制
- 提升ETCD链接的弹性伸缩能力和自我修复能力
- Service-Center 支持在多基础设施中部署
- 优化前端界面UI,提供更多功能及提升易用性
下载地址:
Java-chassis:
http://apache.org/dyn/closer.cgi/incubator/servicecomb/incubator-servicecomb-java-chassis/1.0.0/
Service-Center:
http://apache.org/dyn/closer.cgi/incubator/servicecomb/incubator-servicecomb-service-center/1.0.0/
留下评论
您的电子邮箱地址并不会被展示。请填写标记为必须的字段。 *