Spring Cloud技术栈用户选型建议 当Spring Cloud和CSE都构建于Spring Boot基础之上的时候,可以将CSE理解为竞争和替代性的产品。
上图中展示了CSE和Spring Cloud 通常情况下 的一种开发组合。实际上, CSE 和 Spring Cloud 都提供了非常良好的扩展性,它们能够使用的组件都不是完全互斥的,而是可以相互融合使用。比如在配置更新下发方面,CSE可以通过实现archaius的接口使用git作为配置中心,而Spring Cloud也可以通过实现PropertySources使用CSE的配置中心做动态配置。
Spring Cloud 应用快速上云,一般有两种选择:
使用 Spring Cloud 物理多租引擎。 Spring Cloud 物理多租引擎集成了常用的中间件( Spring Cloud Config , Spring Cloud Netflix 等),用户可以像本地使用这些中间件一样使用云上服务。
将替换的功能迁移到 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 都各自存在其他大量不一样的工具集合,以配套对应的框架进行更加高效的功能开发。在 “ 架构实践 ” 之后,会进一步分享 “ 工程实践 ” 方面的内容,敬请期待。