是什么
- 使用spring boot封装了一套各家比较成熟的微服务框架, 屏蔽掉了复杂的配置和实现原理, 给开发者留出了⼀套简单易懂、易部署和易维护的分布式系统开发工具包。
- spring cloud是一套规范
- 使用spring boot简化开发
- 定义了 服务发现注册、配置中⼼、消息总线、负载均衡、断路器、数据监控等功能
解决了什么问题
定义了规范,解决了微服务的落地问题(服务注册发现问题,网络问题(熔断)等),提供了一站式的解决方案
优点
缺点
组件
Spring Cloud官方 | Netflix | Alibaba | 其他 | |
---|---|---|---|---|
⽹关 | Spring Cloud Gateway | Zuul | ||
配置中心 | Spring Cloud Config | Nacos | 携程 Apollo | |
注册中心 | Eureka | Nacos | ||
服务调用 | Feign | Dubbo RPC | ||
负载均衡 | Ribbon | Dubbo LB | ||
熔断器 | Hystrix | Sentinel | ||
链路追踪 | Spring Cloud Sleuth | Twitter Zipkin | ||
消息驱动 | Spring Cloud Stream | |||
分布式事务 | seata |
- 大致可区分为
- 网关:Spring Cloud Gateway
- 以Eureka为核心搭建出一套http协议的微服务架构
配置中心:Spring Cloud Config + git + Spring Cloud Stream
服务注册+调用+负载均衡+熔断: Eureka + Feign(http模板+Ribbon+Hystrix) - 以Nacos为核心搭建出一套rpc协议的微服务架构
配置中心 + 服务注册+调用+负载均衡+熔断: Nacos + Dubbo RPC + Dubbo LB + Sentinel - 服务链路追踪:Spring Cloud Sleuth +Twitter Zipkin (通用的,可以兼容dubbo)
- 消息:Spring Cloud Stream
- sso解决方案:OAuth2 + JWT
- 分布式事务:seata
与dubbo对比
- dubbo是一款高性能的RPC框架。
- duboo基于TPC而spring cloud的Feign基于http,效率高一些
- dubbo是SOA时代的框架,组件不全,不能提供微服务一站式解决方案
- 但是随着dubbo加入spring cloud中,spring cloud与dobbo的关系也在发生变化,我们可以使用spring cloud一站式解决方案,采用dubbo rpc实现高性能的服务调用