feign 原理
    Feign一种声明式的服务调用客户端,它使得在创建 RESTful务客户端的过程更加容易。Feign过接口的形式来定义服务客户端,以此来支持服务调用。此外,Feign具有负载均衡、服务降级、重试、日志等功能,为微服务架构提供了解决方案。
    一、Feign是什么
    Feign一种声明式的服务调用客户端,它使开发人员可以很容易地调用其他服务的 RESTful口,而无需显式的使用 HTTP户端编码。Feign一种支持可插拔的 Http户端,允许开发人员以声明的方式来调用远程接口,不再需要定义 Http接、请求路径等繁琐的细节,只需要按照声明的方式来调用远程服务便可完成。
    Feign基本思想是将调用远程接口封装为一个 Java口,接口中包含请求方法和响应结果定义,然后由 Feign构建实现类并调用远程接口,Feign过注解方式来定义调用细节,由断路器来管理请求失败情况,以及负载均衡等基础功能,使得客户端可以更加简洁、高效地调用远程接口。
    二、Feign的原理
    Feign原理是基于 JAX-RS准的,在 Feign应用中,开发人员使用注解的方式声明服务接口中的每个请求,以此来构建实现类,Feign运行时会将定义的每个请求根据一定的规则转换成实际的 HTTP求,发送到提供服务的服务器端,并将响应的结果映射为接口中定义的对象。
restful接口调用实例
    Feign原理是构建了一个数据传输对象,在客户端和服务端之间传输数据,可以把 Feign解为声明式的数据传输对象。由于 Feign 主要使用注解的方式来定义接口中的请求,因此 Feign 会使用反射机制来识别注解中的定义,从而构建实现类的实例,并将实例中的数据转换成 HTTP求,发送到服务端,处理服务端的响应结果,把结果映射为接口中定义的对象返回给客户端。
    三、Feign优点
    Feign优点在于它可以让客户端与服务端之间的通信变得非常简单,它在客户端和服务端之间构建了一个数据传输对象,使得客户端可以以一种声明式的方式来调用远程接口,减少了客户端和服务端之间的耦合性,并且它还有以下几个优点:
    (1)Feign持更可插拔的 HTTP户端,用户可以使用注解的方式来定义调用细节,不再需要显式的创建 Http接;
    (2)Feign成了断路器功能,用户可以设置合理的断路点来处理请求失败的情况;
    (3)Feign持负载均衡,在发送多个请求时,Feign以自动将请求发送到多个服务器上,从而实现负载均衡;
    (4)Feign持服务降级,用户可以设置当请求失败时返回默认的结果,从而降低系统中出现故障时的风险;
    (5)Feign持日志,用户可以设置日志级别,从而可以查看请求的详细状态,便于追踪调试;
    (6)Feign持重试,可以更好的处理网络波动和请求失败的情况。
    四、总结
    Feign一种非常出的服务调用客户端,它使得客户端可以以声明式的方式调用远程接口,
且可以通过注解的方式定义请求的细节,自动构建实现类并发送请求,而无需显式的定义 HTTP接、请求路径等繁琐的细节,从而使得客户端调用更加简洁、高效。Feign成了负载均衡、服务降级、重试、日志等功能,为微服务架构提供了解决方案。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。