SpringCloud1️⃣应用架构 & 微服务组件
1、应用架构
1.1、单体应用
所有业务功能集中在一个项目中开发。
-
优点:架构简单,开发效率高,运维成本低。
-
缺点:
-
项目臃肿:整个项目打成一个包,部署在一个容器中运行。
-
耦合度高:所有功能都依赖相同的数据库、内存等资源。
-
扩展性差:支持水平扩展(部署多台服务器),不支持垂直扩展(单个模块)。
-
1.2、分布式集群
将系统根据业务垂直拆分为若干个子系统,
基于通讯网络进行数据交互。
-
优点:
- 独立部署:每个子系统是独立的业务功能模块,可部署在不同服务器上。
- 耦合度低:每个组件可依赖独立的数据库、内存等资源。
- 扩展性良好:支持水平扩展,也支持垂直扩展。
-
缺点:调用关系复杂,多个子系统的功能存在较多冗余。
1.3、SOA
面向服务架构(Service-Oriented Architecture):基于分布式集群的优化
将系统根据服务拆分为若干个模块,
子系统和服务之间通过 ESB 消息总线通信。
- 优点:提高系统的可重用性和可维护性,降低耦合度。
- 缺点:系统与服务的界限模糊,服务拆分的粒度较粗。
1.4、微服务 (❗)
服务治理:若业务系统复杂,服务之间的关系会变得混乱,需要服务进行管理。
主要包括以下方面:
- 拆分粒度
- 远程调用
- 集群地址维护
- 健康状态感知
微服务(Microservice):基于 SOA 的优化
是一种具有良好设计的分布式架构方案。
-
实现:
- 将系统根据功能划分为一组细粒度的微服务。
- 服务之间采用轻量级通信机制(如 HTTP, RPC)进行数据交互。
-
优点:
-
单一职责:微服务拆分粒度更小,每个服务对应唯一的业务能力。
-
自治:团队独立、技术独立、数据独立,独立部署和交付。
-
面向服务:服务提供统一标准的接口。
-
隔离性强:服务具有良好的隔离、容错、降级机制,避免出现级联问题。
-
2、微服务组件
组件
- 服务集群:多个服务组成的一个完整应用。
- 注册中心:注册服务信息,管理微服务集群。
- 配置中心:对微服务应用的统一配置管理。
- 服务网关:微服务应用的入口,可实现请求路由和负载均衡。
- 服务监控:对微服务进行监控,发生故障时可及时排查和处理。
技术对比
-
Dubbo:阿里巴巴早期实现的 RPC 框架,不算真正意义上的微服务。
-
Spring Cloud:基于 Spring Boot 对已有服务框架的整合。
-
Spring Cloud Alibaba:在兼容 Spring Cloud 的基础上进行扩展,更符合国内微服务架构。
Dubbo Spring Cloud Spring Cloud Alibaba 注册中心 ZooKeeper、Redis Eureka、Consul Nacos
、Eureka服务远程调用 Dubbo 协议 Feign(HTTP 协议) Dubbo、Feign 配置中心 无 Spring Cloud Config Spring Cloud Config、Nacos 服务网关 无 Spring Cloud Gateway、Zuul Spring Cloud Gateway、Zuul 服务监控和保护 dubbo-admin(弱) Hystix Sentinel
3、Spring Cloud
-
集大成者:集成已有的成熟的服务框架。
-
开箱即用:基于
Spring Boot
实现组件的自动装配,做到一键启动和部署。
Hint:Spring Cloud ≠ 微服务
Spring Cloud 解决了服务治理问题,但微服务中还包括其它组件。
分类:
Spring Cloud
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!