ps和dw 做网站,怎样自己做公司网站,php开源cms排行,泉州企业建站系统1、SpringCloud组件有哪些
SpringCloud 是一系列框架的有序集合。它利用 SpringBoot 的开发便利性巧妙地简化了分布式系统基础设施的开发#xff0c;如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等#xff0c;都可以用 SpringBoot 的开发风格做到一键启…1、SpringCloud组件有哪些
SpringCloud 是一系列框架的有序集合。它利用 SpringBoot 的开发便利性巧妙地简化了分布式系统基础设施的开发如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等都可以用 SpringBoot 的开发风格做到一键启动和部署。
早期我们一般认为的Spring Cloud五大组件是
Eureka : 注册中心Ribbon : 负载均衡Feign : 远程调用Hystrix : 服务熔断Zuul/Gateway : 网关
随着SpringCloudAlibba在国内兴起 , 我们项目中使用了一些阿里巴巴的组件 注册中心/配置中心 Nacos 负载均衡 Ribbon 服务调用 Feign 服务保护 sentinel 服务网关 Gateway
2、Feign工作原理
Feign是SpringCloud技术栈中用于远程调用的一个HTTP客户端主要作用是将远程服务调用格式本地方法调用格式统一成一致的
Feign的工作步骤如下 首先需要在SpringBoot的启动类上添加EnableFeignClients 注解开启对Feign的支持 当程序启动时会扫描所有标有FeignClient的注解的类并且将这些信息注入Spring IOC 容器中 当定义的 Feign 接口中的方法被调用时通过JDK的代理方式来生成具体的 RequestTemplate RequestTemplate对象封装了 HTTP 请求需要的全部信息如请求参数名请求方法等信息 然后RequestTemplate生成 Request并将Request交给Client去处理这里的 Client 可以是 JDK 原生的 URLConnection、Apache 的 HttpClient等 最后Client被封装到LoadBalanceClient类这个类结合Ribbon负载均衡发起服务之间的调用
3、什么是Hystrix
在微服务架构中我们会拆分出很多的服务服务之间存在复杂的调用关系那么这些服务一旦会出现失败的情况就会导致服务雪崩
Hystrix就是来防止服务雪崩的工具它具有服务降级服务熔断服务隔离监控等一些防止雪崩的技术。 它有四种防雪崩手段
服务隔离隔离服务之间相互影响服务监控在服务发生调用时会将每秒请求数、成功请求数等运行指标记录下来服务熔断接口调用失败就会进入调用接口提前定义好的一个熔断的方法返回错误信息服务降级接口调用失败就调用本地的方法返回一个空
4、Hystrix断路器状态有哪些
断路器状态机包括三个状态
closed关闭状态断路器放行所有请求并开始统计异常比例、慢请求比例。超过阈值则切换到open状态open打开状态服务调用被熔断访问被熔断服务的请求会被拒绝快速失败直接走降级逻辑。Open状态5秒后默认值会进入half-open状态half-open半开状态放行一次请求根据执行结果来判断接下来的操作 请求成功则切换到closed状态请求失败则切换到open状态
5、Ribbon的工作原理
我们项目中使用的是Feign来进行远程微服务的调用Feign的底层是集成了Ribbon的大体使用流程如下
当请求发出的时候会被Ribbon的负载均衡拦截器所有拦截Ribbon会提取请求路径中微服务的名称然后去服务治理中心中查找微服务的对应的服务地址Ribbon会使用配置的负载均衡策略从众多地址中选择一个进行调用
6、Ribbon的负载均衡策略有哪些
Ribbon官方提供了7种负载均衡策略
轮询策略按照一定的顺序依次调用服务实例权重策略根据每个服务提供者的响应时间分配一个权重响应时间越长权重越小被选中的可能性也就越低。它的实现原理是刚开始使用轮询策略并开启一个计时器每一段时间收集一次所有服务提供者的平均响应时间然后再给每个服务提供者附上一个权重权重越高被选中的概率也越大。随机策略从服务提供者的列表中随机选择一个服务实例最小连接数策略遍历服务提供者列表选取连接数最小的一个服务实例。如果有相同的最小连接数那么会调用轮询策略进行选取。重试策略按照轮询策略来获取服务如果获取的服务实例为 null 或已经失效则在指定的时间之内不断地进行重试来获取服务如果超过指定时间依然没获取到服务实例则返回 null。可用性敏感策略先过滤掉非健康的服务实例然后再选择连接数较小的服务实例区域敏感策略根据服务所在区域zone的性能和服务的可用性来选择服务实例在没有区域的环境下该策略和轮询策略类似。