SpringCloud学习1 - 概念、组件作用总结

1. 概述

1.1 分布式、集群、负载均衡概念

负载均衡: 请求均匀分布的给集群服务器上进行处理 - 而不是很多请求只交给一个机器处理,而另一个相同功能的机器无请求处理


集群:
1. 类比:一个厨房有多个厨师 - 配菜(切、备菜,备料)、炒菜
2. 使用场景:分担请求的压力,也就是在几个服务器上部署相同的应用程序,来分担客户端请求。

分布式:
1. 类比:一个厨房将厨师职责划分更清楚。配菜师,炒菜师等等。
2. 使用场景:多台机器存储部分数据

概念
集群:多个相同的系统部署在多台服务器上(一个服务器对应一个系统)
分布式:一个系统拆分成子系统部署在多态服务器上(一个服务器只是整个系统的一部分)

1.2 架构

架构
单体架构:功能集中在一个项目上、应用与数据库分开部署、利用应用集群,数据库集群提高系统性能
垂直架构:项目分成多个子项目(每个项目可用不同的技术栈)进行开发,存在数据冗余,子项目之间多为数据同步功能(通过网络接口进行数据同步)
SOA(service-oriented-architecture)架构:面向服务架构、将重复公用的功能抽取为组件,以服务的方式给各系统提供服务,使用ESB(企业服务Bus总线)用来减少系统耦合。*管理模式
MSA微服务架构:将系统服务层完全独立出来,并将服务层抽取为一个一个的微服务,每个服务都是可独立运行的部署使用。微服务之间交互通过轻量级通信机制Restful api(跨语言、跨平台)- 分散管理模式

SpringCloud学习1 - 概念、组件作用总结

SpringCloud学习1 - 概念、组件作用总结

SpringCloud学习1 - 概念、组件作用总结

SpringCloud学习1 - 概念、组件作用总结

1.3 微服务

微服务特点
将系统划分成多个独立的服务
服务与服务之间部署是相互独立的,运行在独立的进程
服务与服务之间可以通信( Restful api )
服务对象
服务提供者:提供给 其他人或者服务 使用的服务
服务消费者:使用服务的人或者服务


2. 组件作用

组件
Eureka:注册微服务相关的信息
Ribbon:发送restful请求获取其他微服务的数据、负载均衡
Feign:对Ribbon组件进行包装 -- 采用代理模式
Hystrix:服务熔断、以及服务降级
Zuul:网关 - 鉴权(有没有登录职能等)、限流(秒杀等等)
Config Server:从Git云仓库拉取每个微服务的配置信息