素材巴巴 > 程序开发 >

SpringCloud知识点

程序开发 2023-09-08 19:43:18

SpringCloud

一、系统架构的演变

单机版

把我们的所有的模块都放置一个项目上,最后将项目打包成war包或者jar包部署到你的服务器上; ​

分布式

不同的业务在不同的模块上,然后发布在不同的服务器上,物理上的分离,逻辑上的集中

SOA:面向服务

微服务:SpringCloud Dubbo 两套解决方案

二、微服务

是什么?

根据业务的不同:拆分成怎么样,仁者见仁智者见智了;微服务是一种架构风格

特点

三、Dubbo与SpringCloud的区别?

本质区别

RPC和Http的区别

四、Spring、Spring FrameWork、SpringBoot和SpringCloud是什么?

Spring

Spring是一个生态体系(技术体系),是集大成者,包括了SpringFrame,SpringBoot、SpringCloud、Spring Data、SpringSecurity 等等

Spring Frame

是整个Spring的基石,是一个一站式的轻量级的Java开发框架,核心是控制反转(IOC)和面向切面(AOP),针对开发WEB层的SpringMVC,业务层的AOP,持久层的JDBCTemplate等配置解决方案。

SpringBoot

SpringBoot是一个快速整合第三方框架的框架;有着简化配置、自动配置、独立运行和应用监控等优点

SpringCloud

SpringCloud则是微服务架构的一套解决方案;关注的是宏观,将SpringBoot开发的一个个单体的服务整合并管理起来,它为各个服务提供了注册中心进行服务发现,配置管理,负载均衡,断电器路由,微代理

由很多组件组成:
Eureka:注册中心;服务的注册与发现;
Zuul:网关组件;路由的请求分发、过滤器(Ribbon. hystrix)
Ribbon:负载均衡组件
Hystrix:熔断组件
Fegin:远程调用组件

五、Eureka(注册中心)

服务注册中心(可以是一个集群),对外暴露自己的地址

使用步骤

1、引入启动器; ​
2、配置spring.application.name = item-eureka
​ eureka.client.service-url.defaultZone=http://localhost:10086/eureka
​ // 当是eureka集群时,两两相互注册即可; ​ 关闭自我保护,定期清 除无效链接 ​
eureka.server: ​ eviction-interval-timer-in-ms: 5000
​ enable-self-preservation: false] ​
3、启动类添加注解 @EnableEurekaServer

六、Ribbon(负载均衡)

使用的负载均衡策略

七、Hystrix(熔断)

Hystrix是一个处理分布式系统的 延迟和容错开源库;在分布式系统里,许多依赖不可避免的会调用失败,你如超时、异常等,hystrix组件能够保证一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性

对比

服务降级:优先保护核心服务,而非核心服务不可用或弱可用

触发服务降级的条件

服务熔断:(断路器) 有三个状态

八、Feign(远程调用)

Feign(伪装):可以把Rest请求进行隐藏,伪装成SpringMVC的Controller一样,你不用在自己拼url和参数等,一切交给feign就可以

Feign也集成了Ribbon负载均衡(默认配置)和Hystix服务熔断(需要配置);

使用流程

九、Zuul(服务网关)

不论是来自客户端(PC端或移动端)的请求,还是服务内部调用,一切对服务的请求都必须经过Zuul服务网关组件,然后再由网关来实现动态路由、授权等等操作;Zuul就是我们服务的统一入门

Zuul 如果需要负载均衡 可以用nginx进行做负载均衡和反向代理

使用流程(路由)

  1. 在启动类(引导类)@EnableZuulProxy

过滤器

创建一个类继承ZuulFilter父类(基类) ​
重写其四个方法 ​

Nginx

十、分布式微服务架构

在这里插入图片描述

十一、Eureka 和 Zookeeper 两个区别

CAP是什么?

分布式理论CAP

一个分布性系统不可能同时满足CAP;由于分区容错性P是分布式中必须要保证的;所以我们只能在A和C中进行权衡。

Zookeeper遵循CP

当一台Zookeeper挂了,那其他的Zookeeper会进行一次选取(要求强一致性;我一定要保证数据的一致性);但是在选举的过程中Zookeeper是不可用的,而当前的体验不是很好;

Eureka遵循AP


标签:

上一篇: angular4基础-模块 下一篇:
素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。