ServiceComb/CSE和Spring Cloud技术栈对比
当Spring Cloud和CSE都构建于Spring Boot基础之上的时候,可以方便地将基于Spring Cloud技术栈的应用迁移到CSE上来。
上图中展示了CSE和Spring Cloud通常情况下的一种开发组合。实际上,CSE和Spring Cloud都提供了非常良好的扩展性,它们能够使用的组件都不是完全互斥的,而是可以相互融合使用。比如在配置更新下发方面,CSE可以通过实现archaius的接口使用git作为配置中心,而Spring Cloud也可以通过实现PropertySources使用CSE的配置中心做动态配置。
Spring Cloud应用快速上华为云ServiceStage,一般有两种选择:
-
使用Spring Cloud物理多租引擎。Spring Cloud物理多租引擎集成了常用的中间件(Spring Cloud Config,Spring Cloud Netflix等),用户可以像本地使用这些中间件一样使用云上服务,
具体参考:1、购买SpringCloud引擎,2、应用接入SpringCloud引擎 -
将替换的功能迁移到CSE。这里的原理和步骤可以参考基于CSE的微服务架构实践-Spring Boot技术栈选型。使用CSE的便利性在于开发者开发阶段不需要考虑集成和使用Config、Netflix、Ribbon等组件的使用,CSE已经默认集成好了相关管控能力,并提供了配套的云上中间件。
项目 |
CSE |
Spring Cloud |
说明 |
服务注册/发现 |
服务中心 |
eureka, consul等 |
|
配置管理 |
配置中心 |
git等 |
|
熔断隔离降级(服务、方法级别) |
bizkeeper, thread pool |
Hystrix |
CSE的bizkeeper也是基于Hystrix。但在技术选型的时候,不推荐Hystrix,大量产品的使用效果并不好。CSE内置了线程池隔离能力,这个应该是首选。 |
负载均衡、隔离重试(实例级别) |
loadbalancer |
Ribbon |
|
调用链 |
tracing(zipkin),APM |
zipkin |
CSE的APM提供了无侵入埋点,使用Handler也实现了zipkin侵入式埋点。 |
网关 |
Edge Service |
Spring Cloud Gateway |
|
REST 客户端 |
RPC, RestTemplate |
Feign, RestTemplate |
上面表格列举了部分常见的组件和中间件,CSE和Spring Cloud都各自存在其他大量不一样的工具集合,以配套对应的框架进行更加高效的功能开发。在“架构实践”之后,会进一步分享“工程实践”方面的内容,敬请期待。