SpringCloud

本文详细介绍了SpringCloud作为微服务架构的解决方案,包括服务注册与发现、负载均衡、Eureka的使用和自我保护机制。通过案例分析了微服务与单体应用的区别,并阐述了SpringCloud在分布式系统中的作用和优缺点。
摘要由CSDN通过智能技术生成

一:前言

        使用 Spring Boot 开发分布式微服务时,我们面临以下问题:

  1. 与分布式系统相关的复杂性-这种开销包括网络问题,延迟开销,带宽问题,安全问题。
  2. 服务发现-服务发现工具管理群集中的流程和服务如何查找和互相交谈。它涉及一个服务目录,在该目录中注册服务,然后能够查找并连接到该目录中的服务。
  3. 冗余-分布式系统中的冗余问题。
  4. 负载平衡 --负载平衡改善跨多个计算资源 的工作负荷,诸如计算机,计算机集群,网络链路,中央处理单元,或磁盘驱动器的分布。
  5. 性能-问题 由于各种运营开销导致的性能问题。
  6. 部署复杂性-Devops 技能的要求。

        因此,当遇到该问题时需要用到SpringCloud

 二:什么是SpringCloud

        基于 Spring Boot 的 Spring 集成应用程序,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,提供与外部系统的集成。 如服务注册与发现、配置中心、负载均衡、断路器、消息总线、数据监控等;换句话说:Spring Cloud 提供了构建分布式系统所需的“全家桶”。

核心组件 

  • Eureka:服务注册与发现。
  • Feign:基于动态代理机制,根据注解和选择的机器,拼接请求 url 地址,发起请求。
  • Ribbon:实现负载均衡,从一个服务的多台机器中选择一台。
  • Hystrix:提供线程池,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题。
  • Config:配置中心组件,它可以集中管理微服务的配置信息,从而实现配置的动态管理和更新。
  • Bus:消息总线组件,它可以实现微服务之间的消息传递和事件触发,从而实现微服务之间的解耦和通信
  • Zuul:API网关组件,它可以在微服务架构中起到网关的作用,从而实现请求路由、负载均衡、安全控制等功能。

三:为什么要学SpringCloud 

(1)互联网应用和传统应用的区别

        传统应用用于企业内部管理,面向企业内部人员

① 典型传统应用

        ① ERP 企业资源计划

        ② CRM 客户关系管理

        ③ WMS 仓储管理系统

        ④ OA 办公自动化

        ⑤ 各种后台管理系统,物业、物流、银行、金融.....

 特点:

  1. 使用的是特定人群,数量不多

  2. 对用户体验要求不高

  3. 对数据的一致性要求高

        互联网应用面向所有互联网用户  

② 典型互联网应用

        ① 电商

        ② 视频

        ③ 社交媒体

        ④ 新闻

         ⑤ 游戏

 特点:

  1. 面对所有互联网用户,用户量大

  2. 对用户体验要求高(界面、人性化、性能)

  3. 数据一致性要求相对不高

  4. 可用性要求高

  5. 三高问题(并发量、可用性、性能)

(2)微服务架构和单体应用架构的区别 

        传统应用大多数使用单体应用架构,互联网应用大多数采用微服务架构

① 微服务架构

        微服务架构是一种架构风格和架构思想,它倡导我们在传统软件应用架构的基础上,将系统业务按照功能拆分为更加细粒度的服务,所拆分的每一个服务都是一个独立的应用,这些应用对外提供公共的API,可以独立承担对外服务的职责,通过此种思想方式所开发的软件服务实体就是“微服务”,而围绕着微服务思想构建的一系列体系结构(包括开发、测试、部署等),我们可以将它称之为“微服务架构”。

        总的来说:N个项目达成N个包部署到服务器,将传统单体应用拆分为多微服务项目,每个微服务可以相互通信,部署到各自的服务器

优点: 

  1. <
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Cloud是一个用于构建分布式系统的开发工具集合。它提供了一些常用的组件和框架,包括服务注册和发现、负载均衡、断路器、分布式配置等等。在使用Spring Cloud时,有一些常见的错误和注意事项需要注意。 首先,关于Spring Boot和Spring Cloud版本对应错误。在使用Spring Cloud时,需要确保Spring Boot和Spring Cloud的版本兼容。不同版本之间可能存在依赖冲突或不兼容的情况,因此需要根据官方文档或者相关文档来选择合适的版本。 另外,Spring Cloud Config是一个用于集中管理和动态获取配置的工具。它支持从Git、SVN或本地文件系统中获取配置文件,并提供了服务器和客户端支持。你可以通过官方使用说明文档了解更多关于Spring Cloud Config的详细信息。 此外,关于选择使用Nacos还是Eureka作为服务注册和发现组件的问题。Nacos是一个功能更强大的服务注册和发现组件,它整合了Spring Cloud Eureka、Spring Cloud Config和Spring Cloud Bus的功能。使用Nacos可以实现配置的中心动态刷新,而不需要为配置中心新增集群或使用消息队列。另一方面,Eureka是Spring Cloud原生全家桶的一部分,相对来说更加稳定一些。选择使用哪个组件需要根据具体的需求和项目特点来决定。 综上所述,Spring Cloud是一个用于构建分布式系统的开发工具集合,它提供了一些常用的组件和框架。在使用Spring Cloud时,需要注意Spring Boot和Spring Cloud版本的兼容性,并可以使用Spring Cloud Config来动态获取配置。同时,可以选择使用Nacos或Eureka作为服务注册和发现组件,具体选择需要根据项目需求来决定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值