看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!
开源的微服务解决方案 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://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
评论