Fegin
2024-07-20 18:34:37 0 举报
AI智能生成
Fegin是一个Java HTTP客户端库,用于简化与HTTP服务的通信过程。它使用强大的RESTful API,并为用户提供了一种简洁而优雅的方式来配置和发送HTTP请求。Fegin还支持可插拔的代码执行器,如Hystrix,以实现断路器模式和线程池隔离等容错特性,确保服务的高可用性和稳定性。此外,它还可以与Spring生态系统紧密集成,简化了项目开发和维护过程。
作者其他创作
大纲/内容
Feign的参数配置
ribbon: ConnectTimeout: 1000 ReadTimeout: 1000 OkToRetryOnAllOperations: true MaxAutoRetries: 1 MaxAutoRetriesNextServer: 3
feign和ribbon超时和重试的参数配置
基本参数的配置
整体架构图
@EnableFeignClients
入口启动配置
概要图
整体流程图1
整体流程图2
默认是原生的这个Feign.Builder,feign.hystrix.enabled = true 那么为HystrixFeign.Builder
Feign.Builder
每个服务都对应一个独立的spring容器
FeignContext
@FeignClient上,未配置url属性(未指定自己服务器的URL)会自动跟ribbon关联起来,采用ribbon来进行负载均衡,如:http://ServiceA
访问的是这个ServiceA服务的某一类接口,会自动拼成:http://ServiceA/user
疑问
源码图
FeignClient如何和ribbon结合
FeignClient是如何绑定到动态代理
解析注入到spring关键类FeignClientFactoryBean
解析@FeignClint并注入到Spring容器中
FeignClient的构建
整体流程图
MethodHandler创建和解析
子主题
LoadBalancerFeignClient的工作流程
初始化这个ZoneAwareLoadBalancer
RibbonClientConfiguraiton
在spring boot启动,RibbonClientConfiguraiton初始化这个ZoneAwareLoadBalancer
获取到那个服务对应的一个独立的spring容器,从这个容器里面去获取对应的独立的ZoneAwareLoadBalancer
人家自己里面就有DomainExtractingServerList,DomainExtractingServerList这个东西自己会去eureka的注册表里去抓取服务对应的注册表
与ribbon以及eureka的相互整合
FeginClient的请求机制
Fegin
0 条评论
回复 删除
下一页