Feign 原理_feign是什么

Feign 原理_feign是什么Feign原理Feign描述Feign是github上的一个开源项目,目的是简化webservice客户端的开发。在使用Feign时,可以用注解修饰接口,feign还支持插件式的编码器和解码器,使用者可以通过该特性对请求和响应进行不同的封装与解析。流程1、feign使用JDK动态代理2、生成的代理类将进行请求信息封装,并且指定编码器(提供GsonEncoder)和解码器(提供GsonDecoder),如果需要自定义编码器和解码器,需要实现Encoder接口、Decoder接口3、

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

Feign 原理

  • Feign描述

Feign是github上的一个开源项目,目的是简化web service客户端的开发。在使用Feign时,可以用注解修饰接口,feign还支持插件式的编码器和解码器,使用者可以通过该特性对请求和响应进行不同的封装与解析。

  • 流程

1、feign使用JDK动态代理

2、生成的代理类将进行请求信息封装,并且指定编码器(提供GsonEncoder)和解码器(提供GsonDecoder),如果需要自定义编码器和解码器,需要实现Encoder接口、Decoder接口

3、feign.client执行接口发送请求

4、通过解码器,将请求结果进行解析处理

  • 自定义Feign

1、实现client接口,实现execute方法

2、通过Httpclient创建要给默认的客户端

3、将Feign的request实例转换成Httpclient的HttpRequestBase

4、使用CloseableHttpClient来执行请求

5、将获取到的Response实例转换成Feign的Response进行返回

  • 请求拦截器

实现RequestIntercepter接口 apply方法

  • Feign负载均衡

Springcloud实现的Feign客户端 LoadBalancerFeignClient中维护了与SpringClientFactory的相关实例,通过SpringclientFactory可以获取负载均衡器,通过负载策略,最终实现负载均衡的功能。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185847.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mips一个字是几个字节_计算机中字和字节的关系

    mips一个字是几个字节_计算机中字和字节的关系字节是byte,包括8个二进制位;字是word,长度与架构有关,如mips包括32个二进制位,一个字就是4个字节,它们的区别就是长度不一样。内存中是按字节寻值。因此是每byte也就是每8位存一个数值。当你想取一个word出来的时候,就是连续取了4个byte出来,然后拼成一个word。xx位机的xx位是指字长。这个字和word不一样,是指这种CPU一次…

    2022年10月1日
    2
  • docker入门(利用docker部署web应用)[通俗易懂]

    docker入门(利用docker部署web应用)[通俗易懂]前言:本课程是在慕课网上学习第一个docker化的java应用课程时所做的笔记,供本人复习之用目录第一章什么是docker1.1docker的发展史1.2docker国内应用史1.3什么是Docker第二章了解docker2.1docker思想2.1.1集装箱2.1.2标准化2.1.3隔离2.2docker解决的问题2.2.1…

    2022年5月28日
    38
  • php7.2调用curl_init()报错解决方案「建议收藏」

    php7.2调用curl_init()报错解决方案「建议收藏」使用PHP7.2运行代码的时候出现提示curl_init()调用失败:未定义的问题,即Calltoundefinedfunctioncurl_init()解决方法:1.在linux终端键入apt-cachesearchcurl|grepphpubuntu@VM-16-9-ubuntu:/etc/php/7.2/apache2$apt-cachesearc…

    2022年7月13日
    15
  • 软件安装 —— 使用官方ODT定制安装Office

    软件安装 —— 使用官方ODT定制安装Office前言正在MacOS11的BigSur如火如荼的宣传着,我这不争气的Windows系统也终于越看越是臃肿,做为生产力工具,第一还是要稳定精简,一气之下,直接换上了Windows特别版本LTSC,据说这个版本特别特别稳定,很长时间才会更新一次,但用过的都说好,想想还是激动的。重装系统是一个重大工程,那做为Windows第二重要的软件Office目前的安装模式要么官方下载安装包要么离线部署,而官方的安装包可谓是一键超级全家桶搬进C盘,有用的没用的全部装一遍,最终还是靠离线部署来安装了,可以定制想要的软件,还

    2025年10月11日
    2
  • 线程池ThreadPool中QueueUserWorkItem的使用

    线程池ThreadPool中QueueUserWorkItem的使用先看代码://设置可以同时处于活动状态的线程池的请求数目。boolpool=ThreadPool.SetMaxThreads(8,8);if(pool){ThreadPool.QueueUserWorkItem(o=>this.DoSomethingLong(“参数1”));ThreadPool

    2022年9月24日
    3
  • Redis中主、从库宕机如何恢复?

    Redis中主、从库宕机如何恢复?

    2022年2月20日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号