Spring Cloud 基础知识

Spring Cloud  基础组件:

         1. 注册中心 Euraka/Nacos: 作用维护服务信息,提供服务注册、服务发现、心跳检测功能

         2. Feign 组件:远程服务调用

         3. Ribben 组件:负载均衡功能

         4. Hystrix 组件: 服务保护功能 服务熔断、服务降级

         5. Gateway 组件: 网关

Spring Cloud Euraka 注册中心:

         Euraka 注册中心主要提供 服务注册、服务发现、服务心跳检测等功能,

         服务注册:服务提供者启动时会将自己的服务名、IP地址、端口号等信息发送给 Euraka 服务,Euraka 服务会将信息保存到服务列表中

         服务发现:服务消费者根据服务名称调用远程服务时,先去 Euraka 服务中获取要调用的服务列表信息

         服务心跳检测:注册信息的服务需要定期向 Euraka 服务发送请求,告诉 Euraka 当前服务没有故障,如果一定时间内 Euraka 没有接受到 心跳请求,客观认为服务故障将该服务信息从服务列表中删除

       补充:Euraka 与 Nacos 注册中心在 心跳检测、服务发现有一些不同,

       心跳检测: Nacos 中服务注册时可以将当前服务信息设置为永久节点,该服务不会向 Nacos 发送心跳包,而是 Nacos 定时发送请求确定 永久节点 服务是否故障,即使故障 Nacos 也不会删除该服务的列表信息 

       服务发现:Nacos 中的数据更新后会主动推送信息给消费者

Spring Cloud Ribben 组件:

        消费者调用远程服务接口时,先获取注册中心中服务列表信息,如果是集群服务会拿到多个服务信息,可以使用 Ribben 做负载均衡,Ribben 提供了多中负载均衡方法

         1. 轮询:循环调用每个服务接口,默认负载均衡算法

         2. 随机:随机获取一个服务信息调用接口

         3. 权重:注册服务信息时可以配置服务权重信息,在 Ribben 做负载均衡会根据权重大小,判断调那个服务,权重大的服务总体调用次数多

         4. 可以自己实现 IRule 接口做一个负载均衡算法

Spring Cloud Hystrix 组件:

        Hystrix 组件主要做服务保护,如果在服务的调用链路中有一个服务出现故障,可能导致调用该服务的其它服务功能不可用,如果有大量服务异常出现服务雪崩问题,可以使用 Hystrix 做服务降级或者服务熔断

       服务降级:针对某个接口调用出现异常处理方案,在 Feign 组件中加上一个 fallback 属性指定服务降级处理类,在类中实现降级处理方法保证服务正常运行

       服务熔断:需要在启动类加上 EnableCircuitBreaker 注解,针对整个服务如果大量请求处理失败会开启服务熔断,一段时间内不会再调用异常服务,等一段时间后再尝试调用异常服务,如果可以正常调用关闭服务熔断,不能正常服务继熔断。具体工作方式,如果10秒内检测到 50 %的请求异常开启熔断,每隔五秒重试一次观察服务是否正常

      注意: 服务降级是针对接口,服务熔断是针对整个服务

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值