【微服务】(1) Spring Cloud 概述

一、什么是微服务

1、单体应用存在的问题

  • 访问量越来越多,后端服务器负载大,容易挂掉。
  • 业务场景越老越复杂,各个业务耦合度大,一个业务出现问题就会影响整个应用。

2、解决办法

  • 横向:增加服务器,即集群(多台机器部署同样功能的服务)。
  • 纵向:将单体应用划分成多个子系统,部署在不同机器,即分布式(多台机器部署了不同功能的服务)。

现实场景中,集群与分布式通常同时存在,统称分布式架构。

3、微服务架构

微服务架构实际上就是更细粒度的分布式架构。分布式强调压力 分散,微服务强调能力分散,每个微服务只负责一个功能。所有的架构都是为了更好地服务产品,所以怎么划分具体情况具体分析。

4、微服务的优势

  • 开发与维护成本低,每个微服务负责的业务清晰且体量小。
  • 扩展性好,每个微服务都是独立运行的,耦合度低。
  • 技术选型灵活,不同团队负责不同微服务,可根据业务自由选择技术栈。

5、微服务的挑战

  • 服务之间关系复杂,对一个服务的更改,需要考虑对其他服务的影响。
  • 运维难度增大,更多的服务需要部署在不同的运行环境,并且不同服务可能使用的编程语言也不同。
  • 开发和测试难度增大,服务之间的调用会引入网络问题,需进行容错处理。
  • 需要有效的负载均衡机制,来发现问题服务以及管理请求流量。

二、什么是 Spring Cloud

1、Spring Cloud

Spring Cloud 是分布式微服务架构的一站式解决方案,它不是 Spring 团队所研发的框架,而是将多种解决了微服务架构常见问题的优秀架构 ,使用 Spring Cloud 规范集成,并用 Spring Boot 封装,更便于开发者使用。

2、Spring Cloud 与 Spring Boot 的对应关系

当我们想在 Spring Boot 项目中引入 Spring Cloud 组件,需要注意它们的版本对应:

3、Spring Cloud 的实现

Spring Cloud 的第一代实现 Spring Cloud Netflix,但 Netflix 公司后来停止维护很多组件,官方 Spring Cloud 现在只保留了 Eureka。后来由阿里巴巴集团研发的 Spring Cloud Alibaba 逐渐成为主流微服务框架。

  • 黄色:已停止维护。
相关推荐
SamDeepThinking16 分钟前
从REST到gRPC,一个API选型的思考框架
java·后端·程序员
Zane199419 分钟前
接口都能写默认实现了,为什么还需要抽象类
java·后端
未秃头的程序猿21 分钟前
读Spring AI源码的方法——不是硬啃,是带着问题去翻
java·后端·spring
用户31268748772034 分钟前
别再 Thread.sleep 硬等了!并发工具类到底怎么选?
java
Java内核笔记36 分钟前
万字长文剖析 Spring Boot 4 自动配置机制源码:从 @EnableAutoConfiguration 到条件装配
java·后端
evans在进步40 分钟前
Spring MVC 核心机制详解:全局异常处理、请求跳转与数据绑定
java·spring·mvc
weixin_BYSJ19871 小时前
springboot小区物业管理小程序---附源码45555
java·javascript·spring boot·python·django·flask·php
coder_lorraine1 小时前
Halo 2.x 回收站文章无法删除?一篇文章教你彻底解决
java·运维
索隆zoro1 小时前
Army 进阶:DML 操作体系与 Spring AI 集成
java
吃饱了得干活1 小时前
为什么你的Service越写越臃肿?三层架构的“业务逻辑层”是个黑盒
java·后端·架构