Springcloud配合feign实现微服务调用

本文介绍了如何在SpringBoot项目中通过Feign配合ApacheHttpClient解决RestTemplate的连接问题,实现高并发场景下的性能提升,并通过微服务化降低耦合度,提升代码可扩展性。
摘要由CSDN通过智能技术生成

前言,RestTemplate用来请求其他服务的方式无法设置连接池。每次发起请求时都必须经过三次握手连接,在高并发场景时,会造成极大的性能浪费,这里通过feign配合apache的httpclient来实现性能优化。不仅性能更好,在代码编写中,直接采用调方法的编写模式,无需再些url地址。更加符合spring的编写规范。

这里采用单独将feign的功能抽取,做成一个微服务的方式,其他服务想要使用可以直接通过maven导入。以降低耦合,提升代码扩展性。
第一步。创建一个springboot服务。
在这里插入图片描述
第二步,导入相关依赖:

    <!-- Feign -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </dependency>
        <dependency>
            <groupId>io.github.openfeign</groupId>
            <artifactId>feign-httpclient</artifactId>
        </dependency>

第三步,配置

feign:
  client:
    config:
      default: #全局生效 ,也可以使用(服务名),代表只作用于当前配置服务生效
        loggerLevel: BASIC #feign发送请求的日志级别配置。# 日志级别 NONE:默认不打印  BASIC:打印简单信息 HEADERS:打印头信息 FULL:打印全部信息(默认 NONE)
  httpclient:
    enabled: true
    max-connections: 200
    connection-timeout: 3000
    max-connections-per-route: 40 #每个路径最大连接数


第四步,编写一个interface,feign会自动根据你写的代码构建出http请求。
在这里插入图片描述
第五步,再需要使用feign的服务中导入
在这里插入图片描述
第六步,在服务启动类上添加
@EnableFeignClients(basePackages = “cn.itcast.demo”) //开启feign的远程调用

第七步,在order中导入你编写的FeignController,即可通过编程方式发送http请求对应的微服务。
在这里插入图片描述

OK这样即可完成order对user服务的调用
在这里插入图片描述

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值