首页 > 其他分享 >Feign的最佳实践

Feign的最佳实践

时间:2023-06-21 16:13:40浏览次数:36  
标签:FeignClient Feign 模块 feign 实践 最佳 api UserClient

Feign的最佳实践

方式一(继承):给消费者的FeignClient和提供者的controller定义统一的父接口作为标准。

orderservice中的UserClient和userservice的Controller中的queryById基本相同,因此可以定义父接口作为统一标准

   

但是Feign官方不推荐提供者和消费者共用接口,会造成紧耦合。此外对SpringMVC不起作用,Controller中还是需要自己实现业务逻辑。

 

方式二(抽取):将FeignClient抽取为独立模块,并且把接口有关的POJO、默认的Feign配置都放到这个模块中,提供给所有消费者使用。

 比如有多个服务如orderservice和payservice都需要获取用户信息,都分别定义UserClient调用userservice的服务。可以将该UserClient抽取为独立模块。

但是存在有些服务需要的FeignClient模块不多,却需要引入配置中的所有FeignClient模块。

 

实现抽取FeignClient的步骤:

1、 首先创建一个module,命名为feign-api,然后引入feign的starter依赖

2、将order-service中编写的UserClient、User、DefaultFeignConfiguration都复制到feign-api项目中

3、在order-service中引入feign-api的依赖

4、修改order-service中的所有与上述三个组件有关的import部分,改成导入feign-api中的包

5、重启测试

 

当定义的FeignClient不在SpringBootApplication的扫描包范围时,这些FeignClient无法使用。有两种方式解决:

方式一:指定FeignClient所在包【所有都扫】

@EnableFeignClients(basePackages = "cn.itcast.feign.clients")

方式二:指定FeignClient字节码【只加载指定】

@EnableFeignClients(clients = {UserClient.class})

标签:FeignClient,Feign,模块,feign,实践,最佳,api,UserClient
From: https://www.cnblogs.com/fxzm/p/17496505.html

相关文章

  • Feign性能优化
    一、Feign底层的客户端实现:1、URLConnection:默认实现,不支持连接池2、ApacheHttpClient:支持连接池3、OKHttp:支持连接池因此优化 二、Feign的性能主要包括:1、使用连接池代替默认的URLConnection2、日志级别,最好用basic或none 三、Feign添加HttpClient的支持1、引入依......
  • 自然语言处理 Paddle NLP - 情感分析技术及应用SKEP-实践
    PartA.情感分析任务众所周知,人类自然语言中包含了丰富的情感色彩:表达人的情绪(如悲伤、快乐)、表达人的心情(如倦怠、忧郁)、表达人的喜好(如喜欢、讨厌)、表达人的个性特征和表达人的立场等等。情感分析在商品喜好、消费决策、舆情分析等场景中均有应用。利用机器自动分析这些情感倾......
  • 自定义Feign配置
    配置Feign日志有两种方式:配置文件方式和Java代码方式全局生效:(1)方式一:配置文件方式feign:client:config:default:#这里用default就是全局配置,如果是写服务名称,则是针对某个微服务的配置loggerLevel:FULL#日志级别(2)方式二:Java代码方式需......
  • Feign
    http客户端FeignRestTemplate方式调用存在的问题://通过”userservice“这个服务名称代替ip、端口Stringurl="http://userservice/user/"+order.getUserId(); Useruser=restTemplate.getForObject(url,User.class);问题:代码可读性差,编程体验不统一参数复杂UR......
  • 一致性hash算法原理及实践
    大家好,我是蓝胖子,想起之前学算法的时候,常常只知表面,不得精髓,这个算法到底有哪些应用场景,如何应用在工作中,后来随着工作的深入,一些不懂的问题才慢慢被抽丝剥茧分解出来。今天我们就来看看工作和面试中经常被点名的算法,一致性hash算法,并且我会介绍它在实际的应用场景并用代码实现......
  • Go应用性能优化的8个最佳实践,快速提升资源利用效率!
    作者|IfedayoAdesiyan翻译|Seal软件链接|https://earthly.dev/blog/optimize-golang-for-kubernetes/ 优化服务器负载对于确保运行在Kubernetes上的Golang应用程序的高性能和可扩展性至关重要。随着企业越来越多地采用容器化的方式和Kubernetes来部署和管理应用程序,采取......
  • Go应用性能优化的8个最佳实践,快速提升资源利用效率!
    作者|IfedayoAdesiyan翻译|Seal软件链接|https://earthly.dev/blog/optimize-golang-for-kubernetes/ 优化服务器负载对于确保运行在Kubernetes上的Golang应用程序的高性能和可扩展性至关重要。随着企业越来越多地采用容器化的方式和Kubernetes来部署和管理应用程序,采......
  • 最佳SQL Server 2008入门教程
    媒体评论“本书是SQLServer数据库初学者的明智选择。它不仅很好地介绍了SQLServer的主要特性,还深入浅出地阐述了数据库开发和设计的一般性概念。”——Amazon读者评论“即使是我这种原本对SQLServer一无所知的人,在开始读这本书后,也会兴趣陡增,热情高涨,满怀信心地靠它从新手变为专......
  • Feign
    1.概念Feign是SpringCloudNetflix组件中的一个轻量级RESTful的HTTP服务客户端,实现了负载均衡和Rest调用的开源框架封装了Ribbon和RestTemplate,实现了WebService的面向接口编程,进一步降低了项目的耦合度。Feign内置了Ribbon,用来做客户端负载均衡调用服务注册中心的服务。Fe......
  • 工程师常用的6种最佳实践
    一、约定大于配置泰思勒定律也被称为复杂度守恒定律。该定律指出每一个过程都有其固有的复杂性,存在一个临界点,超过了这个点过程就不能再简化了,你只能将固有的复杂性从一个地方移动到另外一个地方。根据这个定律,在做系统设计时,默认会给用户一个“套餐”,这个套餐会满足多数人的需......