SpringCloud入门简介

1. SpringCloud是什么

SpringCloud是微服务治理方案之一;

SpringCloud与SSM框架和SpringBoot没什么关联

SSM:web应用的开发框架,包含视图层(模型model+视图view+控制器controller),业务层,持久层

SpringBoot:简化SSM的配置,同时提供构建项目的脚手架

那么SpringCloud是什么呢?

SpringCloud是一系列微服务治理组件的集合。

通过这些组件可以方便快捷的管理微服务架构的项目,让项目可维护性更好,开发难度更低,性能更好,更好监控

SpringCloud体系的每一个单体项目,实际上还是SpringBoot项目

2. 项目架构发展

2.1 单体应用

所有的功能都在一个项目内,部署在一台服务器上

只要任何一个controller出现问题,整个业务流程就会崩溃

优点:

  1. 易于集中式开发,测试,部署
  2. 不容易出现重复造轮子的问题

缺点:

  1. 代码维护,重构,困难
  2. 性能出现瓶颈之后只能换更好的服务器,系统拓展性差

2.1.1 Servlet(动态web工程)

不使用maven,依赖jar包需要手动下载到WEB-INF下的lib目录下

前端与后端的一个个Servlet的doPost等方法交互,需要手动配置Servlet的路由

SSM/SSH

将servlet换成了controller

2.2 垂直应用(Mavan聚合项目,前后台分离)

水平拆分(根据业务模块拆分)和垂直拆分(普通用户和管理员用户)

2.2.1 水平拆分

存在重复造轮子的问题

但是可以按需分配流量和资源,垂直调用之间互不影响

2.3 分布式系统

抽取基础服务(登录,权限等),服务之间可以互相调用,提高了代码的复用性和开发效率

缺点:

业务耦合度变高,调用关系复杂,难以维护;

搭建集群之后,很难实现负载均衡

2.4 服务治理(SOA架构)

存在一个企业总线(BUS)将服务节点连接起来

BUS的作用:转换,解释消息和路由

BUS类似于一个计算机网络中的交换机,降低了信息转发的复杂程度

SOA主要用于微服务之前

主要的治理组件是ZooKeeper+Dubbo框架+RPC远程调用协议(TCP也能满足通信,但是代价比较高,这里用RMI即可)

缺点:配置复杂,代码复杂度高

DevOps,敏捷开发,ngnix被用于SOA中

2.5 SpringCloud微服务架构

相比于SOA,配置相当简单

将系统的业务功能划分为极小的独立微服务,每个微服务只关注于完成某个小任务。

系统中的单个微服务可以被独立部署和拓展

各个微服务之间高内聚,松耦合

微服务之间采用轻量化的通信机制(显然不是TCP)暴露接口实现通信

优化了SOA的RPC远程调用的繁琐

2.6 服务网格架构

服务网格(Service Mesh)独立于服务之外运行,是服务间通信的基础设施

包括:数据平台DP,管理配置平台CP,熔断器Circuit Breaker,服务中心Service Discovery以及边车Sidecar

所有服务通过Sidecar通信,Sidecar和网络连接共同组成了服务网格(Service Mesh)

相关推荐
nj012819 分钟前
Spring 循环依赖详解:三级缓存、早期引用、AOP 代理与懒加载
java·spring·缓存
程序员飞哥24 分钟前
重构 AI 思维(一):Prompt Engineering,如何下达不可违抗的指令?
人工智能·后端
皮皮林5511 小时前
@Autowired 和 @Resource 注解有啥区别?你这项目怎么还混着用呢?
后端
程序员小假2 小时前
HTTP3 性能更好,为什么内网微服务依然多用 HTTP2?HTTP2 内网优势是什么?
java·后端
wangbing11252 小时前
踩坑:el8应用装在el9上
开发语言·后端·ruby
kyriewen113 小时前
你等的Babel编译,够喝三杯咖啡了——用Rust重写的SWC,只需眨个眼
开发语言·前端·javascript·后端·性能优化·rust·前端框架
IT_陈寒4 小时前
SpringBoot自动配置坑了我,原来要这样绕过去
前端·人工智能·后端
东方小月4 小时前
Claude Code 完整上手指南:MCP、Skills、第三方模型配置一次搞定
前端·人工智能·后端
凤山老林4 小时前
从0到1搭建企业级权限管理系统:Spring Boot + JWT + RBAC实战指南
java·spring boot·后端·权限管理·rbac
ray_liang5 小时前
吐血整理JSON-RPC2.0的原理与应用
后端