![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Springcloud
Jornici
Learning is a bitter thing, but we have to learn by myself with happiness
展开
-
Zuul原理
Zuul原理 1、Zuul提供一个ZuulServlet类,在Servlet的service方法中,执行Zuul的过滤器。 2、ZuulServlet的service方法收到请求后,会执行pre阶段的过滤器 3、执行routing阶段的过滤器,并进行请求转发到源服务 4、在转发阶段如果发生异常,则会执行error过滤器 5、执行post阶段过滤器 ...原创 2021-02-21 21:37:10 · 202 阅读 · 0 评论 -
Hystrix 原理
Hystrix 原理 描述 解决网络短暂无法访问、服务宕机等情况,Hystrix通过添加延迟阈值以及容错的逻辑,来帮助我们控制分布式系统间组件的交互,通过隔离服务间的访问点、停止他们之间的级联故障、提供可回退操作来实现容错。 功能 当所依赖的网路服务发生延迟或者失败时,对方问的客户端程序进行保护 在分布式系统中,停止级联故障 网络恢复正常后,可以快速恢复客户端的访问能力 调用失败时执行服务回退 可支持实时监控、报警等操作 运作流程 1、在命令开始执行时,会创建响应的线程池 2、判断是否打开了缓原创 2021-02-21 21:27:14 · 156 阅读 · 0 评论 -
Feign 原理
Feign 原理 Feign描述 Feign是github上的一个开源项目,目的是简化web service客户端的开发。在使用Feign时,可以用注解修饰接口,feign还支持插件式的编码器和解码器,使用者可以通过该特性对请求和响应进行不同的封装与解析。 流程 1、feign使用JDK动态代理 2、生成的代理类将进行请求信息封装,并且指定编码器(提供GsonEncoder)和解码器(提供GsonDecoder),如果需要自定义编码器和解码器,需要实现Encoder接口、Decoder接口 3、原创 2021-02-21 15:23:46 · 269 阅读 · 0 评论 -
Ribbon负载均衡机制
Restclient在发送请求时,会调用ILoadBlancer接口,根据特定的逻辑来选择服务器,服务器列表可以使用listOfServer进行配置,也可以使用动态更新机制,当需要自定义时,则需要使用IRule接口的choose方法来决定策略。 自带的负载规则 轮询 可用性 过滤掉无法连接的服务器、并发数过高的服务器 权重 区域 并发数最低 随机 重试,如果使用轮询规则选择的服务器无法连接,那么将会重新选择服务器 Ping原创 2021-02-21 15:04:13 · 190 阅读 · 0 评论 -
RestTemplate负载均衡原理
Spring容器启动时,会为被@LoadBlanace 修饰的RestTemplate添加拦截器,拦截器中使用了LoadBalanacerClient来处理请求,LoadBalancerClient是Spring封装的负载均衡客户端,通过这样的间接处理,是的RestTemplate拥有了负载均衡的功能。 ...原创 2021-02-21 15:03:10 · 336 阅读 · 0 评论 -
spring-cloud-eureka 发现服务实现原理
spring-cloud-eureka 发现服务实现原理 注册原理 本质是@EnableEurekaServer中导入了一个EurekaServerConfiguration的配置。其中InstanceRegistry的配置将实现对客户端的注册,将客户端存入注册队列recentRegisteredQueue中。定时更新 发现原理 客户端定时从发现服务器中更新其他在线的客户端列表 ...原创 2021-02-21 13:28:45 · 182 阅读 · 0 评论 -
spring-cloud-bus 配置管理实现原理
spring-cloud-bus 配置管理实现原理 在线更新流程 1、更新Git仓库的配置文件 2、以post指令触发更新请求 3、配置管理覅武器从git仓库中读取配置文件,并将配置文件分发给各个客户端,同时在Rabbitmq中发布一个更新消息 4、客户端订阅Rabbitmq消息,收到消息后执行更新 更新消息的分发原理 rabbitmq创建队列,且采用topic模式,使得配置管理服务的客户端都订阅了Rabbitmq的消息。 ...原创 2021-02-21 01:35:09 · 140 阅读 · 0 评论