文章目录
微服务引入
单体架构(微服务理论基础)
概念
开发一个web应用,将所有接口功能,都集中管理开发在一个项目中,这种项目叫做单体架构.
优点
结构简单,开发成本低
部署运维成本低
缺点
如果功能是不断扩展,项目代码,功能代码非常臃肿
并发的木桶原则问题
随着业务增长,功能一定是在不断增长的.为了降低一个系统的业务成本,提供灵活可扩展的结构.单体架构,不再适用.
纵向拆分
概念
按照业务功能,将单体架构中的功能独立拆分开,单独部署,单独开发,单独维护,每一个拆分出来的项目相互不影响
问题
纵向拆分带来的最直接的一个问题–业务分布式系统.
考虑负责的分布式环境下的各种问题,比如功能调用问题.
微服务概括
单体架构存在的问题,目前可以进行纵向拆分,但是依然有没解决的问题,远程调用.
这种问题就是拆分之后出现的新问题(拆分的结构已经是一个分布式结构)
这种拆分的结果,每个独立运行的项目—微服务
微:小,可以拆分的更细致
服务: 可调用的功能
分布式:一件事(广义的),多个进程/节点/模块 完成.都叫做分布式.
微服务结构,满足灵活扩展的.引出非常多问题,比如远程调用,比如调用失败的熔断,比如分布式事务等.
想要解决,引入微服务架构技术,比如Spring Cloud/Spring Cloud Alibaba
微服务框架
Spring Cloud
SpringCloud是由Spring提供的一套能够快速搭建微服务架构程序,解决分布式微服务架构中各种问题的框架集.
框架集表示SpringCloud不是一个框架,而是很多框架的集合.并不需要把所有内容都学完.
Spring Cloud alibaba/Spring Cloud Netflix
在众多springcloud框架集中的微服务组件里,有2个知名的团队阿里巴巴和奈非,他们完成了一个微服务中
需要用到的绝大多数组件的开发.
本阶段学习的组件总结
nacos: 注册中心 配置中心
dubbo: 远程调用rpc框架
sentinel: 熔断器,限流器
rocketmq: 异步通信队列
spring cloud gateway: 微服务网关
所有组件使用,整合到spring cloud,spring cloud出现是基于springboot完成的.
使用学习的步骤,大三步.
- 依赖
- 配置yaml
- 简单配置: 可能是配置类,可能是注解