介绍:
声明式服务调用与负载均衡组件
pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
application.yml
spring: application: name: cloud-order-service eureka: client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka ribbon: #指的是建立连接所用时间,适用于网络正常情况下,两端连接的情况 ReadTimeout: 5000 #指的是建立连接后从服务器读取到可用资源的时间 ConnectTimeout: 5000 logging: level: com.pxx.cloud.service.PaymentServiceFeign: debug feign.client.config.default.loggerLevel: full
注:也可通过配置类的方式使用
@Configuration
public class FeignConfig {
@Bean
Logger.Level feignLoggerLevel(){
return Logger.Level.DEBUG;
}
}
service
//接口加注解
@FeignClient("CLOUD-PAYMENT-SERVICE")
@Component
public interface PaymentServiceFeign {
@GetMapping("/payment/get/{id}")
public CommonResult<Payment> getPaymentById(@PathVariable("id") long id);
}
controller
@RestController
@Slf4j
public class OrderFeignController {
@Resource
private PaymentServiceFeign paymentServiceFeign;
@GetMapping("/consumer/payment/get/{id}")
public CommonResult<Payment> getPaymentById(@PathVariable("id") long id){
return paymentServiceFeign.getPaymentById(id);
}
}