[里程碑]1.0.0版本正式发布——Apache ServiceComb(incubating)

Posted 微服务蜂巢

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[里程碑]1.0.0版本正式发布——Apache ServiceComb(incubating)相关的知识,希望对你有一定的参考价值。

       近日,正在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 将稳步健康的发展下去。


主要新增特性及提升如下


Java-chassis

    [里程碑]1.0.0版本正式发布——Apache ServiceComb(incubating)https://github.com/apache/incubator-servicecomb-java-chassis

  • 全新的监控指标(Metrics)模块,增加大量监控指标,支持Prometheus集成。详情请参考Metrics介绍 [1]如何集成Prometheus [2]

  • 重构配置中心,支持对接携程Apollo作为配置中心,并且可以方便的扩展对接其它三方配置中心。详情请参考配置中心选型与对接 [3]

  • POJO编程模型支持用户使用CompletableFuture异步编程。详情请参考使用透明RPC方式开发服务消费者 [4]reactive部分。

  • POJO编程模型支持用户使用Object和Generic类型作为调用参数。详情请参考接口定义和数据类型 [5]

  • 升级Zipkin到Zipkin2,同时支持v1和v2版本Zipkin server。关于如何在ServiceComb中使用Zipkin请参考分布式调用链追踪 [6]

  • 微服务间通讯提供文件流传输能力,支持音乐、图片等多媒体场景。如何使用文件流传输请参考文件上传 [7]文件下载 [8]

  • 在服务级别QPS控制基础上,新增支持API级别QPS控制。现在支持使用servicecomb.flowcontrol.Consumer.qps.limit.[ServiceName].[Schema].[operation]配置API级别QPS控制。

  • 增加脚手架和start.servicecomb.io,支持用户快速构建工程,提供完整的开箱即用能力。现在创建一个ServiceComb微服务可以通过Apache Maven Archetype方式快速构建,更多详细内容请参考ServiceComb Java Chassis Archetypes  [9],您也可以直接访问start.servicecomb.io [10]使用ServiceComb集成SPRING INITIALIZR UI的方式创建。

  • 新增演示如何使用Gradle构建ServiceComb项目。我们在BMI [11]项目中增加了Gradle配置。

  • 异步编程模型支持AsycRestTemplate关于如何使用请参考使用AsynRestTemplate开发服务消费者 [12]

  • 新增支持Http2协议。关于如何使用请参考使用Http2通信 [13]

  • 实现错误注入接口,允许通过拦截服务请求构造异常场景,例如可以设置发往指定微服务的请求的时延和错误及其触发概率。更多详细内容请参考故障注入 [14]

  • 新增服务Dev运行模式,开启Dev模式时,支持契约动态修改。如何设置Dev运行模式请参考本地开发和测试 [15]中的通过设置环境信息方便本地调试部分。

  • 实现优雅停机,关闭服务时进行反注册,确保完成已接受请求并完整释放资源。

  • 扩展微服务公私钥认证机制,增加了黑白名单功能。ServiceCenter已经支持通过黑白名单控制微服务的注册发现,但是由于微服务之间最终是直连调用,因此微服务本身也需要有独立的黑白名单认证功能,如何设置请参考公钥认证 [16]中的配置黑白名单部分。

  • 支持Cross-Origin Resource Sharing (CORS)。即支持跨域请求访问设置,例如现在Ajax可以直接访问微服务了,更多详细内容请参考CORS机制 [17]

  • 扩展了Rest Endpoint的Access Log机制。以前用户只能设置Access Log的Pattern,现在用户可以进一步自定义Access Log Item,更多内容请参考Access Log配置 [18]

  • 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请参考获取熔断与实例隔离告警事件 [19]


ServiceCenter

    [里程碑]1.0.0版本正式发布——Apache ServiceComb(incubating)https://github.com/apache/incubator-servicecomb-service-center

[里程碑]1.0.0版本正式发布——Apache ServiceComb(incubating)

  • 主要新增了如下特性:

    • 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,提供更多功能及提升易用性。


Service-Center:

http://servicecomb.incubator.apache.org/release/service-center-downloads/

Java-chassis:

http://servicecomb.incubator.apache.org/release/java-chassis-downloads/


[1] http://docs.servicecomb.io/zh_CN/general-development/metrics.html

[2] http://servicecomb.incubator.apache.org/cn/users/metrics-integration-with-prometheus-in-1.0.0-m1/

[3] http://servicecomb.incubator.apache.org/cn/docs/config_center_integration/

[4] http://docs.servicecomb.io/zh_CN/build-consumer/develop-consumer-using-rpc.html

[5] http://docs.servicecomb.io/zh_CN/build-provider/interface-constraints.html

[6] http://servicecomb.incubator.apache.org/cn/docs/tracing-with-servicecomb/

[7] http://docs.servicecomb.io/zh_CN/general-development/file-upload.html

[8] http://docs.servicecomb.io/zh_CN/general-development/file-download.html

[9] https://github.com/apache/incubator-servicecomb-java-chassis/blob/master/archetypes/README.md

[10] http://start.servicecomb.io/

[11] https://github.com/apache/incubator-servicecomb-java-chassis/tree/master/samples/bmi

[12] http://docs.servicecomb.io/zh_CN/build-consumer/using-AsyncRestTemplate.html

[13] http://docs.servicecomb.io/zh_CN/build-provider/protocol/http2.html

[14] http://docs.servicecomb.io/zh_CN/build-consumer/fault-injection.html

[15] http://docs.servicecomb.io/zh_CN/general-development/local-develop-test.html

[16] http://docs.servicecomb.io/zh_CN/references-handlers/publickey.html

[17] http://docs.servicecomb.io/zh_CN/general-development/CORS.html

[18] http://docs.servicecomb.io/zh_CN/build-provider/access-log-configuration.html

[19] http://docs.servicecomb.io/zh_CN/general-development/AlarmEvent.html


ServiceComb相关资料

官方网站:

http://servicecomb.incubator.apache.org/

加入社区:

https://servicecomb.incubator.apache.org/cn/docs/join_the_community

JIRA:

https://issues.apache.org/jira/browse/SCB

ServiceComb Java-Chassis:
https://github.com/apache/incubator-servicecomb-java-chassis

ServiceComb Saga

https://github.com/apache/incubator-servicecomb-saga

ServiceComb ServiceCenter:

https://github.com/apache/incubator-servicecomb-service-center


长按“识别图中二维码”,加入ServiceComb讨论群


 点击左下角“阅读原文”,给SeriveComb加个Star 

以上是关于[里程碑]1.0.0版本正式发布——Apache ServiceComb(incubating)的主要内容,如果未能解决你的问题,请参考以下文章

Apache Kafka 1.0.0正式发布!

谷歌布局大数据:开源平台Apache Beam正式发布

Apache Dubbo 3.0.0 正式发布 - 全面拥抱云原生

Apache Dubbo 3.0.0 正式发布 - 全面拥抱云原生

Apache Spark 2.2.0新特性介绍(转载)

Mesos1.0.0 发布,数人云总架构师第一时间解读