spring cloud 的个人理解

spring cloud

什么是单体架构:单体架构是一个归档包包含了应用所有功能的应用程序,称为单体应用。

什么是微服务:微服务架构就是将单体的应用程序分成多个应用程序,这多个应用程序就成为微服务,每个微服务运行在自己的进程中,并使用轻量级的机制通信。

什么是sprig cloud:

是基于 Spring Boot 的 Spring 集成应用程序,提供与外部系统的集成

什么是Eureka(服务注册与发现

Eureka作为SpringCloud的服务注册功能服务器,他是服务注册中心,系统中的其他服务使用Eureka的客户端将其连接到Eureka Service中,并且保持心跳,这样工作人员可以通过Eureka Service来监控各个微服务是否运行正常专门负责将这个服务的信息注册到Eureka Server中。说白了,就是告诉Eureka Server,自己在哪台机器上,监听着哪个端口Eureka Server是一个注册中心,里面有一个注册表,保存了各服务所在的机器和端口号

Eureka的自我保护机制:

默认情况下,如果Eureka Service在一定时间内没有接收到某个微服务的心跳(心跳间隔默认30s),Eureka Service会进入自我保护模式,在该模式下Eureka Service会保护服务注册表中的信息,不在删除注册表中的数据,当网络故障恢复后,Eureka Servic 节点会自动退出自我保护模式默认下线90s

getWay起到的作用网关配置对client端请求起到路由功能,对服务进行路由转发,把请求转发到具体后端服务上

什么是Spring Cloud  Zuul(服务网关):

Zuul是对SpringCloud提供的成熟对的路由方案,他会根据请求的路径不同,网关会定位到指定的微服务,并代理请求到不同的微服务接口,他对外隐蔽了微服务的真正接口地址。三个重要概念:动态路由表,路由定位,反向代理

什么是Ribbon负载均衡:

Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,基于如简单轮询,随即连接等规则去连接这些机器

@LoadBalanced注解的作用  :   开启客户端负载均衡

Hystrix (断路器熔断器):

当一个服务调用另一个服务由于网络原因或自身原因出现问题,调用者就会等待被调用者的响应 当更多的服务请求到这些资源导致更多的请求等待,发生连锁效应(雪崩效应 防止方法:使用服务的隔离机制(线程池方式和信号量方式)。

Hystrix 是一个延迟和容错库,旨在隔离远程系统,服务和第三方库的访问点,当出现故障是不可避免的故障时,停止级联故障并在复杂的分布式系统中实现弹性

服务降级在高并发的情况下,防止用户一直等待,使用服务降级方式进行处理(返回友好的提示给客户端,fallback回调方法)。当服务不可用的时候(正在等待的时候、网络延迟、响应时间过长),客户端会处于一直等待的状态。显然一直等待是不合理的,所以我们应该给客户端返回一个友好的提示,使用fallback(回调方法)进行服务降级处理。

服务降级目的:为了提高用户体验(自定义消息返回给客户端),防止服务雪崩效应。比如:连接超时、网络延迟、服务器响应时间过长等情况。

什么是服务隔离指将系统按照一定的原则划分为若干个服务模块,各个模块之间相对独立,无强依赖。当有故障发生时,能将问题和影响隔离在某个模块内部,而不扩散风险,不波及其它模块,不影响整体的系统服务

服务隔离:每个服务接口之间互不影响,服务隔离有2种实现方式,线程池方式、信号量。

   1.线程池方式:相当于每个接口(服务)都有自己独立的线程池,不同的线程池之间互不影响,能够实现服务接口隔离。缺点:CPU内存开销较大。

   2.信号量方式:底层使用原子计数器(atomic),针对于每个服务都设置自己的独立的限制阈值。比如设置每个服务0接口最多同时访问的次数,如果超出缓存队列请求后,自己实现拒绝策略。

服务熔断:在高并发的情况下,如果达到一定的极限(可以自己设置阈值),如果流量超出了设置的阈值,然后拒绝访问,保护当前服务。当服务器达到最大的承受能力的之后,直接拒绝访问服务,然后调用降级方法,返回友好提示。

目的:为了防止服务宕机(保护服务),会进行熔断处理。

产生的原因:服务请求过多,高并发情况下。可以设置阈值进行限制。超出的请求存放在缓存队列中,如果缓存队列中线程满的话,直接拒绝访问服务,访问不了服务(熔断)。

熔断机制,指的是微服务架构中,由于某个服务瘫痪,为避免影响整个系统而采取的降级服务

  1. 在maven工程(前面章节中介绍的Ribbon或者Feign工程)的pom.xml中添加hystrix库支持断路器
  2. 在Ribbon应用中使用断路器
  3. 在Feign应用中使用断路器

断路器有三个状态:完全打开、半开 、和关闭

什么是spring cloud config(配置中心)

它是为分布式系统中的外部配置提供服务器和客户端支持

SpringBoot是Spring推出用于解决传统框架配置文件冗余,装配组件繁杂的基于Maven的解决方案,旨在快速搭建单个微服务

而SpringCloud专注于解决各个微服务之间的协调与配置,服务之间的通信,熔断,负载均衡等
技术维度并相同,并且SpringCloud是依赖于SpringBoot的,而SpringBoot并不是依赖与SpringCloud,甚至还可以和Dubbo进行优秀的整合开发

Dubbo 的服务调用方式是远程调用,spring cloud 使用的是 Rest api

以上是个人的见解 ,欢迎指正 !  好了,多思考。 努力码字中。。。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值