SpringCloud基本介绍
官方文档
引入
在小型的项目中 SpringBoot 已经能够满足我们的要求了,但在大型项目的时候,当阅读浏览网站的人数多了以后,一个服务器已经不能满足服务的需求了,这时候我们就要使用 SpringCloud 了,也就是微服务技术了。
在这之前先来了解一下什么是分布式?什么是微服务?
分布式 的核心就一个字:拆。只要是将一个项目拆分成了多个模块,并将这些模块分开部署,那就算是分布式。
微服务 就是非常微小的服务,相当于一个小的模块。
其实在最早之前是没有微服务技术的,但许多大型的公司已经有了微服务的概念,在开发大型项目的时候,都是将大项目拆成小模块,然后去编写小模块组合成一个庞大的项目,但是对大型项目进行模块划分, 对各个模块进行实现, 模块之间更多的是以 API 调用完成, 耦合度较高, 不利于扩展和维护。在后来 Spring社区将优秀的组件与自己手动开发,SpringCloud就出炉了。
微服务解决方案(SpringCloud 和 SpringCloud alibaba)的优点:
- 微服务可以根据业务不同,将一个大项目 , 分解成不同的服务(微服务,比如搜索服务/网关服务/配置服务/存储服务/发现服务等等) 。
- 各个服务通过分布式方式进行工作,从而可以高效,快速,稳定的完成复杂的功能.
- 你也可以理解成就将原来大项目的某些模块=>抽出形成微服务=>配合分布式工作方式=> 从而高效、快速、稳定的完成复杂业务功能。
系统架构的演变流程
1、单机架构
在最开始的 使用简单的Tomcat构建web平台就是简单的单机架构
2、动静分离架构:静态缓存 + 文件存储
3、分布式架构:业务拆分+负载均衡
微服务架构
-
“微服务” 一词源于 Martin Fowler 的名为 Microservices 的博文,简单地说,微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型 服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于 HTTP 的 RESTful API 进行通信协作。
-
被拆分成的每一个小型服务都围绕着系统中的某一项或一些耦合度较高的业务功 能进行构建,并且每个服务都维护着自身的数据存储、业务开发、自动化测试案例 以及独立部署机制。 由于有轻量级的通信协作基础, 所以这些微服务可以使用不同 的语言来编写 , 这里我们使用 Java。
SpringCloud核心组件
文档:核心组件
Spring Cloud 组件选型
常用的有
服务注册中心:Erueka、Nacos、Zookeeper、Consul
服务负载均衡:Ribbon、LoadBalancer
服务熔断降级:Hystrix、Sentinel
服务调用:Feign、Open Feign
服务网关:Zuul、GateWay
服务配置:Config、Nacos
服务总线:Bus、Nacos
SpringCloud 和 SpringBoot 版本对应关系
这里简单的说明一下springcloud,具体内容还在学习之中,后面再做细节分析吧,后面就进行项目的简单搭建啦!