Feign 填坑之路

摸索了两天的Feign,总结一下遇到的坑:

1、开启@EnableFeignClients

2、Feign配置

@FeignClient(name = "ai-help")
public interface AiHelpFeignService {
	
	@RequestMapping(value = "/ai/help", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
	public @ResponseBody String boxHelp(@RequestBody String str);
}

发送POST Json数据时要加consumes = MediaType.APPLICATION_JSON_VALUE,否则服务器可能接收错误。

3、Feign默认的网络请求框架为HttpURLConnection,我请求python写的接口时,对方一直报错。在pom中作一下配置:

<dependency>
    <groupId>com.netflix.feign</groupId>
    <artifactId>feign-httpclient</artifactId>
    <version>RELEASE</version>
</dependency>

使用HttpClient之后终于正常了。猜测可能是HttpURLConnection底层做的json封装与对方的json转换不兼容造成的。注:feign.httpclient.enabled属性不用配置,默认的就是true。

4、一切OK之后测试性能,结果感人。直接调业务接口在500的并发情况下,响应平均是300ms。经过cloud的转发,响应很多错误,发现是hystrix的线程限制原因,为了测试,简单粗暴的把hystrix功能关掉:feign.hystrix.enabled: false。测试的平均响应达到800+ms。依然是一个不能接受的结果。查了一系列资料之后,将3中的配置换成:

<dependency>
    <groupId>com.netflix.feign</groupId>
    <artifactId>feign-okhttp</artifactId>
    <version>RELEASE</version>
</dependency>

然后继续测试,平均响应在450ms左右,结果总算能接受了。第一次注意到原来这些网络库性能差别这么大。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值