您现在的位置:首页 > 课程体系 > 大数据与人工智能 > 微服务架构
正确识别SpringCloud及其相关组件

1.了解Spring Cloud

      

Spring Cloud是一个全家桶式的技术栈,用于构建分布式微服务架构的一站式解决方案。它利用了Spring Boot的开发便利性,集成了多种微服务架构的落地技术,如服务注册与发现、配置中心、服务网关、智能路由、负载均衡、断路器、监控跟踪和分布式消息队列等等。通过Spring Cloud,开发人员可以简化分布式系统基础设施的开发,并快速启动服务或构建应用,同时能够快速与云平台资源进行对接。

 

1)查看SpringCloud版本

为了使用一项技术,我们必须了解该技术的版本环境,并尽量避免使用过时的版本。下面是关于Spring Cloud版本的查看和命名规则的信息。

 

您可以在以下链接中查看Spring Cloud的版本信息(2021.0.3):https://spring.io/projects/spring-cloud



在过去,Spring Cloud的版本命名是根据伦敦地铁站的英文名称,并按照字母顺序进行排序。例如,之前的版本包括Angel(天使)、Brixton(布里斯顿)、Camden(卡姆登)、Dalston、Edgware、Finchley、Greenwich、Hoxton等。当Spring Cloud的发布内容达到一定程度或解决了重大bug后,会发布一个“services release”版本,简称SRX版本。例如,Greenwich.SR2表示发布的是Greenwich版本的第二个SRX版本。然而,在2020年,Spring Cloud改变了版本命名规则,采用了全新的“日历化”版本命名方式。

日历式命名: 

 

Spring Cloud 使用了 YYYY.MINOR.MICRO 的命名规则          

YYYY:表示 4 位年份

MINOR:代表一个递增的数字,每年以 0 开始递增          

MICRO:代表版本号后缀,就和之前使用的 .0 类似于 .RELEASE 一样,.2 类似于 .SR2

预发布版本的后缀分隔符也从 . 变更为 -。

2020.0.0-M1 和 2020.0.0-RC2 命名所示

同时,Spring Cloud 将停止给快照版本添加 BUILD- 前缀,

如:

2020.0.0-SNAPSHOT 命名所示

 

(2)查看Spring Boot版本

如果想了解Spring Boot的版本信息以及最新的特性和问题修复,可以通过以下方式获取:

Git源码地址:https://github.com/spring-projects/spring-boot/releases。在这个地址上,你可以浏览到Spring Boot的所有发布版本,并查看每个版本的更新内容。


 

官方网站:你也可以访问Spring官方网站,查看有关Spring Boot版本信息的页面。


 

(3)技术版本选型  

在选择使用Spring Cloud和Spring Boot时,需要注意它们之间有严格的版本依赖关系。你可以通过以下途径来查看相应的版本对照关系:


 

 

Spring Cloud项目官网:https://spring.io/projects/spring-cloud。在这个页面上,你可以找到与Spring Boot不同版本对应的Spring Cloud版本。

更详细的版本信息:你还可以访问https://start.spring.io/actuator/info来获取更详细的版本信息。在该地址返回的JSON中,你可以清晰地看到每个版本之间的详细依赖关系。


 

 

2.Spring Cloud组件   


 

(1)Spring Cloud Netflix 组件   

Spring Cloud Netflix是一个基于Spring Cloud的框架,用于构建微服务架构中的服务注册与发现、网关和负载均衡等组件。以下是Spring Cloud Netflix包含的主要组件及其功能:

 

Eureka:服务注册和发现。它提供了一个服务注册中心和服务发现的客户端,还有一个便捷的界面用于查看所有已注册的服务。通过Eureka的服务发现客户端,各个服务可以将自身注册到Eureka服务器上。

 

Zuul:网关。所有客户端请求都通过这个网关访问后台的服务。Zuul可以根据路由配置来确定某个URL由哪个服务处理,并从Eureka获取注册的服务进行请求转发。

 

Ribbon:负载均衡。当Zuul网关将请求发送给某个服务应用时,如果该服务启动了多个实例,Ribbon会根据一定的负载均衡策略选择其中一个服务实例进行请求转发。

 

Feign:服务客户端。当服务之间需要相互访问时,可以使用RestTemplate或者Feign客户端。Feign客户端默认使用Ribbon来实现负载均衡。

 

Hystrix:监控和断路器。通过在服务接口上添加Hystrix注解,可以实现对该接口的监控和断路器功能。

 

Hystrix Dashboard:监控面板。提供一个界面,用于监控各个服务调用所消耗的时间等信息。

 

Turbine:监控聚合。在使用Hystrix进行监控时,需要逐个打开每个服务实例的监控信息进行查看。而Turbine可以将所有服务实例的监控信息聚合到一个统一的地方进行查看,避免了逐个查看页面的繁琐过程。

 

以上组件构成了Spring Cloud Netflix框架,为微服务架构中的服务治理和调用提供了便利和支持。

(2)Spring Cloud Alibaba 组件   

Spring Cloud Alibaba是在Spring Cloud Netflix版的基础上发展起来的一套功能组件。它整合了一些重要的组件,如Nacos、Sentinel、RocketMQ、Dubbo、Seata等,同时还包括阿里云的商业化产品,如Alibaba Cloud OSS、Alibaba Cloud SchedulerX和Alibaba Cloud SMS。

 

Nacos是一个功能强大的服务注册、配置中心和负载均衡工具。它提供了图形化界面,并简化了微服务架构的复杂度。

 

Sentinel是一款优秀的服务保护组件,相较于Hystrix功能更加强大而且使用更加友好。它以流量作为切入点,可以从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。

 

RocketMQ是一款开源的分布式消息系统,基于高可用分布式集群技术。它提供低延时的、高可靠的消息发布与订阅服务。

 

Dubbo是一个高性能的Java RPC框架,可以帮助实现微服务之间的远程调用。

 

Seata是阿里巴巴开源的一个高性能微服务分布式事务解决方案。它易于使用并且具有出色的性能。

 

此外,Spring Cloud Alibaba还整合了阿里云的商业化产品,如Alibaba Cloud OSS、Alibaba Cloud SchedulerX和Alibaba Cloud SMS。

 

Alibaba Cloud OSS是阿里云提供的一项云存储服务,具有海量、安全、低成本和高可靠性的特点。它可以让用户在任何应用、任何时间和任何地点存储和访问各种类型的数据。

 

Alibaba Cloud SchedulerX是阿里中间件团队开发的一款分布式任务调度产品。它提供秒级、精准、高可靠和高可用的定时任务调度服务,基于Cron表达式。

 

Alibaba Cloud SMS是一项覆盖全球的短信服务,具有友好、高效和智能的互联化通讯能力。它可以帮助企业快速构建客户触达通道。

 

需要注意的是,schedulerX、SMS、OSS等是主要针对阿里云的商业化产品,因此不再进行过多介绍。

 

3、SpringCloud其他相关组件   

除了Netflix和Alibaba贡献了相关组件,在整个SpringCloud生态Spring本身也贡献了许多组件:



Spring Cloud 本身其实只是一套微服务规范,并不是一个拿来即可用的框架,Spring Cloud Netflix 和Spring Cloud Alibaba是为开发者提供的这套规范的一种实现方式。

 

关于SpringCloud相关组件的原理与使用,在中培IT学院微服务及高并发、高可用架构设计与最佳实践培训班中有全面的讲解,课程还详细介绍了从单体应用向微服务架构迁移的实践经验何为服务架构设计等相关知识技能,可以帮助学员掌握微服务、高并发领域的核心技术,是技术人员职场提升的良好选择。

 

[1]

 
网络安全热度最高的6本证书...
系统分析师VS系统架构设计...
项目经理考NPDP还是软考高...
盘点五个IT领域下证快的证...
CBA与TOGAF:探寻企业架构...
【收藏】软考电子证书下载...
项目经理任选两本证书,年...
DAMA中国推出“一考两证”...
数据分析具体指的是什么,...
数据分析师需要具备什么数...
CDA认证带你了解数据分析的...
敏捷与DevOps协同工作的注...
DevOps自动化测试的注意事...
DevOps五个好用的工具列表...
IT项目管理实现落地有哪些...
IT项目需求分析重点是建立...


中培IT学院 Copyright@2006-2024  北京中培伟业管理咨询有限公司.ALL Rights Reseved 备案号:京ICP备13024721号-2