spring cloud入门学习以及spring cloud技术栈架构图(分布式系统架构图)

本文深入探讨了微服务架构及SpringCloud解决方案,分析了微服务架构相较于单体架构的优势与挑战,详细介绍了SpringCloud如何通过集成多种技术栈解决微服务治理、配置、负载均衡、网关、容错等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Spring Cloud是什么?

spring cloud是微服务架构的一整套微服务解决方案的技术栈,是这些技术栈的框架集合,包含了服务治理、注册中心、配置中心、客户端负载均衡、网关、限流熔断、分布式链路追踪、分布式事务等技术栈,这些技术栈提供了微服务架构存在的各种问题的解决方案。

二、为什么用Spring Cloud?

  1. 单体架构的开发流程
             回想我们以前单体架构的项目,所有功能都在一个项目里面,包括前端页面和后端的各个管理模块。部署的时候直接打成一个war包,然后重启tomcat服务器。这样的单体架构优点对小项目来说,开发维护简单。但是对大型项目来说,每个模块紧密耦合,每修改一个小点的功能后重新部署导致整个系统不可用,水平扩展的时候不能针对某一个模块,要整个项目(包含各个模块)一起水平扩展,导致资源浪费。

  2. 微服务架构,以及微服务架构后出现的问题
             针对单体架构的问题,我们微服务架构针对每个模块进行了原子划分,每个模块划分为一个微服务,整个系统可以划分为很多个微服务。使用了微服务架构后系统更容易拓展,但是也增加了开发和维护的难度,出现了很多新的问题。
             
    1)首先,微服务多了之后,我们如何知道这些微服务的健康状态,管理这些微服务
    2)每个微服务之前如何进行远程调用其他微服务,微服务成百上千,IP地址和端口号不能单体架构一样写死调用了
    3)众多微服务,如果进行参数配置,如何快速修改配置文件?逐个配置是很麻烦的
    4)客户端如何访问我们这些众多的微服务,如果写死访问的每个微服务的IP在客户端,那么当微服务的IP和端口变化的时候也要修改客户端,而且微服务众多
    5)微服务之间相互调用,如果有一些微服务出错了或宕机了,可能导致出现雪崩,从而影响整个微服务系统,如何解决
    6)多个微服务之间的服务调用,如何保证分布式事物的数据一致性

注:我下面描述的是SpringCloud、SpringCloud Alibaba针对这些问题的解决方案

  1. 针对这些问题,Spring Cloud的解决方案
    1). 在SpringCloud里面,通过注册中心来管理微服务,每个微服务提供自己的IP和端口向注册中心注册,如果微服务关掉了,会剔除出注册中心,SpringCloud提供了Eureka、Nacos的注册中心来解决微服务治理的问题方案
    2)在微服务中实现远程服务调用,SpringCloud提供了Ribbon、Feign组件来处理的解决方案。这些远程调用向注册中心发现服务,获取相关服务的IP地址、端口的列表,然后客户端负载均衡进行调用其他服务。
    3)针对分布式配置,SpringCloud提供了Spring Cloud Config的解决方案以及使用Nacos配置中心的方案,管理每个微服务的配置
    4)外网客户端访问,都经过网关,然后网关也会从注册中心发现要访问的服务的IP列表,通过网关转发这些请求到相关内部的服务,SpringCloud提供的解决方案是Spring Cloud Gateway
    5)SpringCloud提供的Hystrix进行熔断保护以及SpringCloudAlibaba提供了Sentinel的微服务容错的解决方案
    6)SpringCloudAlibaba提供了Seata组件来保证分布式事务一致性

三、Spring Cloud技术架构图(分布式系统架构)

springcloud针对上面的问题,提供了一站式的解决方案,集成了这些方案后的系统架构是怎么样的,根据我目前遇到过的分布式系统架构,画一张大概的架构图,如下:
在这里插入图片描述

四、Spring Cloud的入门学习

根据自己的学习,记录了一些入门的笔记、学习文章

项目架构:springboot(2.1.7)+springcloud(Greenwich.SR2)+spring-cloud-alibaba(2.1.1)

springboot与springcloud、spring cloud alibaba对应的兼容版本如下:

Spring BootSpring CloudSpring Cloud Alibaba (孵化前)Spring Cloud Alibaba(孵化后)
2.1.xGreenwich0.9.x2.1x
2.0.xFinchley0.2.x2.0x
1.5.xEdgware0.1.x1.5x
1.5.xDalston0.1.x1.5x

spring cloud使用nacos作为注册中心
spring cloud基于Ribbon和Feign组件实现服务调用
spring cloud使用dubbo实现服务调用
spring cloud gateway网关的简单使用
spring cloud nacos作为配置中心的使用
spring cloud alibab sentinel的概念和简单使用
微服务架构的分布式事务的解决方案总结
spring cloud alibaba seata的使用,解决分布式事务问题
spring boot使用kafka消息队列
kafka如何保障消息可靠性

Spring Cloud是一个用于构建分布式系统的开源框架。它基于Spring Boot,可以帮助开发人员快速构建和部署分布式应用程序。 Spring Cloud的分布式架构图如下所示:主要包括微服务架构、注册中心、配置中心、服务网关、负载均衡和容错机制等组件。 微服务架构是将一个大型应用程序拆分为多个小型、独立的服务。每个微服务都有自己的数据库和业务逻辑,可以独立部署和扩展。微服务之间通过RESTful API进行通信。 注册中心是用于服务发现和注册的组件。每个微服务都会在启动时向注册中心注册自己的信息,包括服务名称、IP地址和端口号等。其他微服务可以通过注册中心查询到可用的服务列表,从而实现服务之间的通信。 配置中心用于管理微服务的配置信息。开发人员可以将配置信息存储在配置中心,通过配置中心管理和更新配置。微服务在启动时可以从配置中心获取最新的配置信息,避免了硬编码配置的问题。 服务网关是用于对外暴露微服务的组件。所有外部请求都通过服务网关进入分布式系统。服务网关可以实现身份验证、请求过滤、负载均衡和缓存等功能,提高系统的性能和安全性。 负载均衡是将外部请求均匀分布到不同的微服务实例上,避免某个微服务实例的过载。Spring Cloud提供了负载均衡的机制,可以根据不同的算法将请求发送到不同的实例。 容错机制是保证系统的可靠性和可用性。当某个微服务出现故障或不可用时,容错机制可以自动切换到备用的微服务实例,保证系统的正常运行。 总结来说,Spring Cloud的分布式架构图包括微服务架构、注册中心、配置中心、服务网关、负载均衡和容错机制等组件,可以帮助开发人员构建和部署高可用的分布式系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值