springcloud 使用feign进行远程调用

在使用RestTemlate调用远程端口时,URL参数是以编程方式构造的,数据被发送到其他服务。在更复杂的情况下,我们将不得不RestTemlate深入到更低级别的API提供的甚至是API 的细节。所以呢,我们将在原有的代码上进行改变,使用feign进行远程调用。首先在pom文件中导包(或者在创建项目的时间直接选中‘省’),

        <!-- Feign依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>

启动类中加上 

相应的service使用feign进行调用

重新启动项目,正常访问。 

在日常的开发中,咱们还可能会配置他的日志

修改级别,这里时default,可以根据实际情况指定某个服务

feign.client.config.default.logger-level=full

 

还有就是feign的性能优化:下图

 这里我们在链接池就使用 Apache Httpclient 做例子 首先pom文件导入依赖

        <!--httpclient -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.13</version>
        </dependency>

然后在配置文件中进行配置(注解打过了,不多废话了),这里的最大连接数,单个路径最大链接数需要根据压测的实际配置


#设置级别
feign.client.config.default.logger-level=full
#使用httpclient
feign.httpclient.enabled=true
#最大连接数
feign.httpclient.max-connections=200
#单个路径最大连接数
feign.httpclient.max-connections-per-route=20

虽然现在feign已经配置完毕 ,但是在日常开发中,咱们的调用每一个api都这样是不是太麻烦,(重复开发了),所以呢咱们新建一个model

 

选一个这个(还有个lombok),其他和创建项目的时间一样,给demo2内的feign还有实体类拿过来

 

在我们的demo2的pom中导入我们刚建的这个feign 

把demo2中的feign文件删掉(导过包了,还要他干啥) ,还有实体类都删掉

我们发现项目报错了,不用担心,只是找不到包了,重新导就好了  ALT+回车

进去了

 

在启动类中更改

//@EnableFeignClients(clients = DemoFeign.class)
@EnableFeignClients(basePackages = {"com.example.demo"})

 

其次,我们还需要改xml里面的

 

demo2配置文件中的

 

 好了,启动,项目正常运行

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值