搭建的springcloud工程码云地址:https://gitee.com/fanhua_shijie/springcloud
笔记原文码云地址:https://gitee.com/fanhua_shijie/ibolg
笔记在线访问地址:https://fanhua_shijie.gitee.io/ibolg
一、服务架构的演变
-
单一应用架构
当网站流量小的时候,只需要一个应用,将所有的功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架ORM是关键。
-
垂直应用架构
当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,提升效率的方法之一是将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的web框架MVC是关键。
这样的架构,应用之间的交互很少,基本上都在自己的应用内来处理业务逻辑,很少的交互,一般是用来做数据的同步之类的工作,;比如,部门员工应用向其他应用同步当天的新数据等。
-
分布式服务架构
当垂直应用架构越来越多,应用之间交互不可避免,将核心的服务抽离出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复合及整合的分布式服务框架RPC是关键。
相比于垂直应用架构,分布式主要在在于服务与服务之间可以通信。
-
流动计算架构
当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐凸显,此时需要一个调度中心基于访问压力实时管理集群容器,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心SOA是关键。
重点在于如何根据实际业务的需求(用户访问量、服务压力等)来拆分服务,用以提高服务效率,SOA服务调度与治理的思想来完善分布式架构。
-
微服务架构
微服务架构其实和SOA差不多,主要宗旨还是服务与服务之间的通信以及服务治理的问题,最主要的区别是服务小、轻量级,每一个微服务都是相对独立,做到彻底的组件化、服务化。
二.SpringCloud
1.什么是SpringCloud?
SpringCloud是一系列框架的有序组合。
基于SpringBoot的开发,简化了分布式系统的搭建与开发,服务注册发现、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以利用SpringBoot开发风格做到一键启动和部署。
SpringCloud并没有重复开发这些微服务所需要的框架,只是将各家开发的比较成熟,并且经过实际考验的服务框架整合到一起,经过SpringBoot自动装配的风格,屏蔽掉了复杂的配置和实现原理,使得微服务开发更加简单,做到和SpringBoot一样,开箱即用。
2.SpringCloud主要 组件
- 注册中心
- Eureka
- Zookeeper
- Consul
- Nacos
- 服务调用
- Ribbon
- LoadBalancer
- Feign
- OpenFeign
- 服务降级
- Hystrix
- Resilience4j
- Sentinel
- 服务网关
- Zuul
- GateWay
- 配置中心
- Config
- Nacos
- 服务总线
- Bus
- Nacos