Apache ServiceComb(incubating) 第一个版本发布

开源的微服务解决方案ServiceComb 于去年12月进入Apache软件基金会孵化,并于4月3日在Apache官网上的新闻版块正式通告Apache ServiceComb (incubating) 发布 Java-Chassis 1.0.0-m1、Service-Center 1.0.0-m1, Saga 0.1.0版本。

下载地址:

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/

版本变更概览

Service Center

支持查询服务Schema列表

支持查询服务统计信息

支持SC多实例的状态查询

支持消费者发现SC多实例

基于事件驱动实现了服务依赖规则

增加数据库压缩周期的配置项,减少数据库压缩时产生的碎片化

上调默认的服务和实例数上限

修正服务发现黑名单规则

增加导出指标数据到Prometheus,增加Grafana模板

Java Chassis

Java Chassis的项目组织从”io.servicecomb”变更为”org.apache.servicecomb”

重构监控指标模块,增加大量监控指标,支持Prometheus

重构配置中心,可以方便对接三方配置中心,支持对接携程Apollo动态配置中心

POJO编程模型支持用户使用CompletableFuture异步编程

POJO编程模型支持用户使用Object和Generic类型作为调用参数

优化了Spring MVC的集成

内部升级到zipkin2,同时支持v1/v2版本的zipkin server

Saga

Pack原型实现,通过切面编程技术获取事务信息,通过集中式的事务管理器协调事务执行

支持通过Annotation在用户代码定义Saga事务

以下是具体的亮点介绍。

分布式追踪

微服务架构下,分布式追踪是快速定位具有复杂依赖关系的微服务应用问题的必要手段,Service-Center 1.0.0-m1增加了Zipkin支持, Java-Chassis 1.0.0-m1 进行升级后也可同时支持zipkin v1/v2。

详细信息请参考:

https://github.com/apache/incubator-servicecomb-service-center/tree/master/server/plugin/infra/tracing/buildin

https://servicecomb.incubator.apache.org/cn/users/distributed-tracing/

丰富的指标数据支持

微服务架构下,运维管理系统需要大量有效的指标数据以支撑弹性伸缩,并在系统性能下降时使能快速定位瓶颈部件,Service-Center 1.0.0-m1和Java-Chassis 1.0.0-m1 中解耦了指标模块,并增加大量有效的监控指标,且均支持对接Prometheus。

详细信息参考:

http://servicecomb.incubator.apache.org/users/metrics-in-1.0.0-m1/

配置中心

微服务架构下爆发式增长的服务数量和服务器数量将导致使用配置文件和环境变量来管理程序的方式不可行,Java-Chassis通过对旧版本config-cc模块的重构,在1.0.0-m1版本支持了统一的配置中心,默认支持Apollo,并可方便的对接其他三方配置中心。

参考:

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

微服务数据最终一致性解决方案

ServiceComb 提供了Saga用于解决微服务中的数据最终一致性难题,Saga 0.1.0 从架构层面进行了升级,适用于 高并发,嵌套调用,高延时调用的跨服务事务场景,且通过对annotation的支持极大提高易用性。

Saga0.1.0 使用Pack模型,整个Saga服务由Alpha和Omega组成。

  • Alpha充当协调者的角色,主要负责对事务的事件进行持久化存储以及协调子事务的状态,使其最终得以与全局事务的状态保持一致,即保证事务中的子事务要么全执行,要么全不执行。
  • Omega是用户程序侧代理,负责对网络请求进行拦截并向Alpha上报事务事件,并在异常情况下根据Alpha下发的指令执行相应的补偿或重试操作。

大家可以通过以下链接获取更详细信息:

https://github.com/apache/incubator-servicecomb-saga/blob/master/docs/design_zh.md

https://github.com/apache/incubator-servicecomb-saga/blob/master/docs/user_guide_zh.md

https://github.com/apache/incubator-servicecomb-saga/blob/master/saga-demo/booking/README.md

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

ServiceComb相关资料

官方网站 : http://servicecomb.incubator.apache.org/

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

邮件列表 : dev@servicecomb.apache.org

加入社区: https://servicecomb.incubator.apache.org/cn/docs/join_the_community

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址http://www.infoq.com/cn/news/2018/04/apache-servicecomb
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券