首页 > 其他分享 >微服务:openFeign

微服务:openFeign

时间:2024-04-23 16:48:33浏览次数:21  
标签:服务 openFeign EnableFeignClients module DefaultFeignConfig public cloud

openFeign是一个声明式http客户端。作用:基于springMVC常见注解,帮我们更优雅的实现http请求

引入依赖

  <!--openFeign-->
  <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-openfeign</artifactId>
  </dependency>
  <!--负载均衡器-->
  <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-loadbalancer</artifactId>
  </dependency>

在启动项加上注解@EnableFeignClients

编写接口

@FeignClient("item-service")
public interface ItemClient {
    @GetMapping("/items")
    List<ItemDTO>queryItemsByIds(@RequestParam("ids") Collection<Long> ids);
}

调用接口

 List<ItemDTO> items = itemClient.queryItemsByIds(itemIds);

 

优化:连接池

<!--OK http 的依赖 -->
<dependency>
  <groupId>io.github.openfeign</groupId>
  <artifactId>feign-okhttp</artifactId>
</dependency>
feign:
  okhttp:
    enabled: true # 开启OKHttp功能

 

最佳实践:

1.新建一个module:hm-api,把每个模块的公共API都抽取出来,在新module中引入依赖

在之后的使用中仅需要引入maven坐标即可(缺点为耦合度较高)

注意,正常情况下扫描不到client,需要在启动类中修改注解

@EnableFeignClients("com.hmall.api.client")

 

2.每个微服务自己抽取一个module(缺点为麻烦,且工程结构比较复杂)

 

openfeign日志输出

public class DefaultFeignConfig {
    @Bean
    public Logger.Level feignLoggerLevel() {
        return Logger.Level.FULL;
    }

}

局部生效

@FeignClient(value = "item-service", configuration = DefaultFeignConfig.class)

全局生效

@EnableFeignClients(defaultConfiguration = DefaultFeignConfig.class)

 

标签:服务,openFeign,EnableFeignClients,module,DefaultFeignConfig,public,cloud
From: https://www.cnblogs.com/kun1790051360/p/18151491

相关文章

  • Linux服务器中Docker部署的GitLab镜像访问出现500错误
    一背景这几天发现在Linux服务器中Docker部署的GitLab镜像访问出现500错误,在重启服务器后大概10分钟再次出现该情况,后面登录服务器一步步排查最终解决问题,现在将解决问题的过程做一个总结。二过程分析首先第一步就是看看我们Docker目录下文件占用的情况,因为我们的Linux服务......
  • 第12課-Mirth生产环境宕机后基于服务配置XML备份恢复之记录
    MirthConnect作为集成交换平台,生产环境互联互通了众多系统,脑残的是连自家关键业务系统都依托mirth来进行交互,宕机或故障对身处其中的一次紧张的业务系统升级都造成高度的精神紧张;这种宕机经历多次之后,深感疲惫和无语;今天用生产环境低版本Mirth实践了一次恢复过程,总结以记之。下......
  • 查看端口被哪个服务或者进程占用
    一.麒麟系统1.查看端口被哪个服务或者进程占用sudonetstat-anop|grep57298  2.查看进程使用了哪个端口sudonetstat-plunt|grepavahi-daemon二.window系统cmd打开输入如下命令netstat-ano|findstr80 ......
  • DNS 服务器不同类型有什么作用?
    所有DNS服务器都属于以下四个类别之一:递归解析器、根域名服务器、TLD域名服务器和权威性域名服务器。在典型DNS查找中(当没有正在进行的高速缓存时),这四个DNS服务器协同工作来完成将指定域的 IP地址提供给客户端的任务(客户端通常是一个存根解析器-内置于操作系统的简单解......
  • 考研党打印资料怎么使用云打印服务?
    对于准备考研的同学们来说,在备考的时候需要准备许多资料,这些资料的打印费用成为了考研党的巨额支出。那么在生活费有限的情况下,考研党打印资料最好是选择云打印服务,因为易绘创云打印服务低至5分钱/页还包邮。那么考研党打印资料怎么使用云打印服务呢?今天就带大家一起来了解一下。......
  • IDEA中使用密钥认证的方式通过ssh连接远程服务器
    在Windows电脑上生成证书确保电脑上ssh可用ssh命令可用的话,就继续在命令行窗口输入ssh-keygen-trsa并敲击回车键生成公钥证书和私钥证书文件。生成的目录也指明了,通常在用户的.ssh目录下,其中id_rsa是私钥证书文件,id_rsa.pub为公钥证书文件。将公钥证书放到Linux服务器上......
  • Centos8如何重启网络服务
    1.重启网卡之前一定要重新载入一下配置文件,不然不能立即生效nmclicreload2.重启网卡(下面的三条命令都可以):nmclicupens160nmclidreapplyens160nmclidconnectens160备注:ens160是网卡名字 ------------------------------------------------------centos8重启......
  • 第19章 创建RESTful Web服务
    1准备工作2理解RESTfulWeb服务Web服务最常见的方法是采用具象状态传输(RepresentationalStateTransfer,REST)模式。REST指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或者设计就是RESTful,核心就是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的......
  • C# 实现 gRPC 服务和调用
    gRPC是一种与语言无关的高性能远程过程调用(RPC)框架。主要优点如下:1.高性能轻量化。2.协议优先的API定义模式,默认使用协议缓冲区,允许与语言无关的实现。3.可用于多种语言的工具,以生成强类型服务器和客户端。4.支持客户端、服务器和双向流式处理调用。5.使用Protobuf二进......
  • 使用 C# 的 gRPC 服务
    本文内容proto文件将.proto文件添加到C#应用对.proto文件的C#工具支持生成的C#资产其他资源本文档概述在C#中编写 gRPC 应用所需的概念。此处涵盖的主题适用于基于 C-core 和基于ASP.NETCore的gRPC应用。proto文件gRPC使用协定优先方法进行......