文章目录
本节主要介绍了项目选用的微服务SpringCloud组件。
一,微服务组件来源介绍
组件主要来自两个机构,一个是Spring官方,一个是阿里巴巴开源的组件。之所以使用阿里开源的组件,主要生Spring官方对某些组件停止维护,而阿里开源组件中有青出于蓝而胜于蓝的组件可供选用。
- Spring官方组件列表
- Spring阿里巴巴组件列表
Spring官方已经宣布停止维护的Spring Cloud组件包括以下几项:
-
Spring Cloud Sleuth:
- 分布式追踪系统,用于收集和分析微服务架构下的请求链路数据。Sleuth的核心功能已经转移到Micrometer Tracing项目。
-
Spring Cloud Cloudfoundry:
- 针对Cloudfoundry PaaS平台的集成组件,已经停止维护。
-
Ribbon:
- 客户端负载均衡器,用于实现客户端的负载均衡调用。Spring官方表示Ribbon进入维护模式,意味着只有关键的bug修复和安全问题会被解决,没有新的功能开发。
-
Hystrix:
- 断路器组件,用于实现服务间的容错和隔离,防止级联故障。Hystrix也停止了维护,Spring官方推荐使用Resilience4j作为替代。
-
Spring Cloud Config:
- 虽然不完全停止维护,但Spring Cloud Config的使用被标记为“不推荐”,建议使用如Apollo或Nacos等替代方案。
-
Eureka:
- 服务发现与注册组件,虽然Eureka本身并没有完全停止维护,但在某些情况下,Spring官方推荐使用其他服务发现组件,如Consul或Zookeeper,以及Spring Cloud Netflix的替代品。
对这些停止维护或者更新组件,建议考虑使用替代方案或更新的组件以获得更好的支持和功能。
二,SpringCloud Alibaba简介
1,简介
Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。
依托Spring Cloud Alibaba,只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。
2,SpringCloud 的几大痛点
- SpringCloud 部分组件停止维护和更新,给开发带来不便;
- SpringCloud 部分环境搭建复杂,没有完善的可视化界面,我们需要大量的二次开发和定制
- SpringCloud 配置复杂,难以上手,部分配置差别难以区分和合理应用
3,SpringCloud Alibaba 的优势,
阿里使用过的组件经历了考验,性能强悍,设计合理,现在开源出来大家用成套的产品搭配完善的可视化界面给开发运维带来极大的便利搭建简单,学习曲线低。
三,谷粒商城项目选型列表
1,注册中心-Nacos
SpringCloud Alibaba - Nacos:注册中心(服务发现/注册)
2,配置中心-Nacos
SpringCloud Alibaba - Nacos:配置中心(动态配置管理)
3,负载均衡-Ribbon
SpringCloud - Ribbon:负载均衡
4,远程调用-OpenFeign
SpringCloud - OpenFeign:声明式 HTTP 客户端(调用远程服务)
5,限流降级熔断-Sentinel
SpringCloud Alibaba - Sentinel:服务容错(限流、降级、熔断)
6,网关-Gateway
SpringCloud - Gateway:API 网关(webflux 编程模式)
7,链路追踪-Sleuth
SpringCloud - Sleuth:调用链监控
8,分布式事务-Seata
SpringCloud Alibaba - Seata:原 Fescar,即分布式事务解决方案