SpringCloud概述

完成:第一遍

1.什么是微服务?

微服务是一个新兴的软件架构
微服务就是把一个大型的单个应用程序和服务
拆分为数十个的微服务
微服务本身就是分布式的
一个微服务的策略可以让工作变得更为简便,
它可扩展单个组件而不是整个的应用程序堆栈,
从而满足服务等级协议。

2.微服务有哪些优势?

优势一:可扩展性:
优势二:可升级性:
优势三:易维护性
优势四:技术选型灵活
优势五: 语言无关性

3.微服务有哪四个设计原则?

原则一:AKF扩展拆分
通过加机器(水平扩展)就可以解决容量和可用性问题
AKF 可扩展立方(Scalability Cube)。
这个立方体中沿着三个坐标轴设置分别为:X、Y、Z。
Y 轴(功能) —— 关注应用中功能划分,基于不同的业务拆分
X 轴(水平扩展) —— 关注水平扩展,也就是”加机器解决问题”,集群
Z 轴(数据分区) —— 关注服务和数据的优先级划分,如按地域划分

原则二: 前后端分离

原则三:无状态服务
无状态服务(stateless service)对单次请求的处理,不依赖其他请求,也就是说,处理一次请求所需的全部信息,要么都包含在这个请求里,要么可以从外部获取到(比如说数据库),服务器本身不存储任何信息
有状态服务(stateful service)则相反,它会在自身保存一些数据,先后的请求是有关联的

原则四: Rest通讯风格,例子HTTP中
REST架构风格最重要的架构约束有6个:
约束一:客户-服务器(Client-Server)——》通信只能由客户端单方面发起,表现为请求-响应的形式。
约束二:无状态(Stateless)——》通信的会话状态(Session State)应该全部由客户端负责维护。
约束三:缓存(Cache)——》响应内容可以在通信链的某处被缓存,以改善网络效率。
约束四:统一接口(Uniform Interface)——》通信链的组件之间通过统一的接口相互通信,以提高交互的可见性。
约束五:分层系统(Layered System)——》通过限制组件的行为(即,每个组件只能“看到”与其交互的紧邻层),将架构分解为若干等级的层。
约束六:按需代码(Code-On-Demand,可选)——》支持通过下载并执行一些代码(例如Java Applet、Flash或JavaScript),对客户端的功能进行扩展。

4.常用微服务框架有哪些?

常用微服务框架一:Spring Cloud

常用微服务框架二:Dubbo/Dubbox(优化版本)
典型应用案例:阿里巴巴

5.Spring Cloud 有哪些特性?

特性一:分布式/版本化配置
特性二:服务注册与发现
特性三:路由即服务的分发
特性四: 服务的互相调用
特性五:集群中用到负载均衡
特性六: 断路器
断路器(Circuit Breaker)模式就是为了防止在分布式系统中出现这种瀑布似的连锁反应导致的灾难

特性七: 全局锁
特性八: 主节点投选和集群状态
特性九:分布式消息传递

6.Spring Cloud 常用子项目有哪些?

Spring Cloud 子项目一:spring-cloud-stream
Spring Cloud 子项目二:spring-cloud-config
Spring Cloud 子项目三: spring-cloud-netflix
Spring Cloud 子项目四:spring-cloud-openfeign
Spring Cloud 子项目五: spring-cloud-gateway

Spring Cloud 子项目六:spring-cloud-security
Spring Cloud 子项目七: spring-cloud-zookeeper
Spring Cloud 子项目八:spring-cloud-aws
Spring Cloud 子项目九:spring-cloud-bus