通常首次访问都会比较慢,由于spring的懒加载机制,须要实例化一些类。hystrix默认的超时时间为1秒,超事后,就会调用fallback代码。解决方案有一下三种:spring
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 100000
hystrix.command.default.execution.timeout.enabled: false
feign.hystrix.enabled: false
消费者通常和api接口定义不在一个package下,致使启动失败。解决办法引入api的package:apache
@SpringBootApplication(scanBasePackages= {"com.api"}) @EnableFeignClients(basePackages={"com.api"})
请参考https://my.oschina.net/u/182501/blog/1532081。api
Feign在默认状况下使用的是JDK原生的URLConnection发送HTTP请求,没有链接池,可是对每一个地址会保持一个长链接,即利用HTTP的persistence connection 。咱们能够用Apache的HTTP Client替换Feign原始的http client, 从而获取链接池、超时时间等与性能息息相关的控制能力。Spring Cloud从Brixtion.SR5版本开始支持这种替换,首先在项目中声明Apache HTTP Client和feign-httpclient依赖:app
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>${httpclient.version}</version> </dependency> <dependency> <groupId>com.netflix.feign</groupId> <artifactId>feign-httpclient</artifactId> <version>${feign-httpclient.version}</version> </dependency>
配置application.yml性能
feign: httpclient: enabled: true #启用httpclient