0
点赞
收藏
分享

微信扫一扫

python--正则表达式,元字符,反义符,转义符,位数问题

邯唐情感 04-12 19:00 阅读 1

前面我们介绍了微服务架构的各个组件以及各组件的职责,在Java领域中,Spring可以说是无人不知无人不晓的,我们现代的企业级应用和互联网应用,很大一部分都是构建在Spring生态体系上的,同样,实现微服务架构的SpringCloud也是在Spring基础上生根发芽的。

下面我们来看一下Spring、Springboot、SpringCloud之间的关系:

Spring是整个微服务开发的基石,在此基础上对Spring进行简化和封装,形成Springboot敏捷开发框架,而想掌握SpringCloud微服务开发,必须先掌握Springboot。

SpringCloud提供了完整的微服务架构技术生态,像我们上篇文章提到的各类组件,在SpringCloud中都有着对应的实现。(如上图)

1、SpringCloud 实现微服务架构的具体组件

不过在这里需要注意一点,SpringCloud各组件并不是完全由Spring机构自行研发的,秉持着不重复造轮子的观念,Spring机构整合了市面上各大厂商优秀的开源作品,比如在SpringCloud中使用的注册中心组件就是选用了Netflix 的 Eureka,在此基础上进行整合形成了完整的Java微服务架构解决方案。我们前面列举出来的8个微服务标准组件在SpringCloud中都对应着具体实现。并且同一类组件可能有着多个开源产品供我们选择,这些产品在SpringCloud中是彼此兼容的。下面我们一起来看看8大组件的具体实现产品:

(1)注册中心

SpringCloud中注册中心使用的组件有Netflix 的 Eureka 1.xHashiCorp Consul,Eureka是Netflix公司提供的开源注册中心,2.x版本现已停止维护。HashiCorp Consul倒是在持续维护,但商用授权版本于2020年受到贸易管制已禁止国内使用

(2)负载均衡

SpringCloud中负载均衡使用的组件是Netflix Ribbon,属于微服务内置的客户端负载均衡组件,支持多种负载均衡策略。

(3)服务通信

SpringCloud中服务通信使用的组件是Netflix FeignSpringCloud RestTemplateFeign是基于Ribbon声明式RESTful服务调用组件,已于2020年停止维护RestTemplateSpringCloud自研的服务间RESTful通信模板对象。

(4)API服务网关

SpringCloud中服务网关使用的组件是Netflix ZuulSpringCloud GatewayZuul属于SpringCloud第一代网关,于2020年停止维护Gateway是SpringCloud自研的第二代网关,使用简单方便,功能更为强大。

(5)配置中心

SpringCloud中使用的配置中心组件是SpringCloud Config,属于SpringCloud 自研的配置中心组件,通过GitHub/Gitee统一托管微服务的应用配置文件。

(6)集中式日志管理

SpringCloud 中可以使用ELK进行日志统一管理,在SpringCloud中并未内置统一组件,如想实现此功能需自行搭建ELK集群实现。

(7)分布式链路追踪

SpringCloud中链路追踪组件使用的是SpringCloud Sleuth和Zipkin Server组件,Sleuth是SpringCloud分布式调用链路跟踪系统,用于产生链路数据。

(8)服务保护

SpringCloud中服务保护组件是Netflix Hystrix,属于容错管理工具,实现了断路器模式,通过控制服务节点从而对延迟和故障提供更强大的容错机制。

从上述的描述中,我们可以发现一个问题,正是因为SpringCloud集众家之所长,导致它也受制于第三方厂商的掣肘,以Zuul为例,Netflix宣布停止维护,Spring机构不得不寻求其他的替代品或是自行研发。同时,SpringCloud作为国外的产品引入国内后,也出现了一些问题,比如SpringCloud Config默认将配置文件托管在GitHub仓库中,但国内的厂商并不喜欢这样做,他们更希望的是将配置文件存储在自己的数据库中。因此,阿里巴巴在原有的基础上结合多年的开源技术沉淀,设计了更符合国内需要的SpringCloud Alibaba

2、SpringCloud Alibaba实现微服务架构的具体组件

SpringCloud Alibaba是隶属于SpringCloud子项目,是国内微服务开发一站式解决方案,与原有的SpringCloud兼容的同时,对微服务生态进行扩展,通过添加少量的配置注解,便可实现更符合国人使用习惯的微服务架构。

下面我们再一起来看看SpringCloud Alibaba依托哪些组件实现微服务架构:

(1)注册中心

SpringCloud Alibaba中使用Alibaba Nacos组件实现注册中心,Nacos提供了一组简单易用的特性集,可快速实现动态服务发现、服务配置、服务元数据及流量管理。

(2)负载均衡

SpringCloud Alibaba 使用Nacos服务端均衡实现负载均衡,与Ribbon在调用端负载不同,Nacos是在服务发现的同时利用负载均衡返回服务节点数据。

(3)服务通信

SpringCloud Alibaba 使用Netflix FeignAlibaba Dubbo组件来实现服务通行,前者与SpringCloud采用了相同的方案,后者则是对自家的RPC 框架Dubbo也给予支持,为服务间通信提供另一种选择。

(4)API服务网关

SpringCloud Alibaba 在API服务网关组件中,使用与SpringCloud相同的组件,即:SpringCloud Gateway

(5)配置中心

SpringCloud Alibaba在配置中心组件中使用Nacos内置配置中心,Nacos内置的配置中心,可将配置信息存储保存在指定数据库中。

(6)集中式日志管理

SpringCloud Alibaba在原有的ELK方案外,还可以使用**阿里云日志服务(LOG)**实现日志集中式管理。

(7)分布式链路追踪

SpringCloud Alibaba在分布式链路组件中采用与SpringCloud相同的方案,即:Sleuth/Zipkin Server

(8)系统保护

SpringCloud Alibaba使用Alibaba Sentinel实现系统保护,Sentinel不仅功能更强大,实现系统保护比Hystrix更优雅,而且还拥有更好的UI界面。

(1)消息队列

SpringCloud Alibaba在原有SpringCloud支持的MQ基础上,对自己的开源消息队列产品RocketMQ组件进行集成。提供了更多的选择。

(2)分布式事务

SpringCloud Alibaba 在分布式事务上采用 Alibaba Seata组件,Seata是阿里巴巴开源分布式事务中间件,内置AT、TCC和SAGA三种模式适用不同的分布式事务场景。

(3)任务调度

SpringCloud Alibaba 在任务调度上采用 Alibaba Cloud SchedulerX组件,SchedulerX是阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准、高可靠、高可用的定时任务调度服务。

(4)分布式存储

SpringCloud Alibaba在分布式存储上采用Alibaba Cloud OSS组件,OSS是阿里云对象存储服务,是阿里云提供海量、安全、低成本、高可靠的云存储服务。

举报

相关推荐

0 条评论