配置openfeign做服务调用
新建model,service-cnsumer-openfeign001,这里的话咱们调用service-provider001
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
配置文件
server:
port: 8401
spring:
application:
name: service-consumer-openfeign001
eureka:
client:
register-with-eureka: true
service-url:
defaultZone: http://localhost:8300/eureka/,http://localhost:8302/eureka/
##配置超时
ribbon:
ReadTimeout: 5000
ConnectTimeout: 5000
##日志级别openfeign
logging:
level:
com.zhu.service.FeignService: debug
主启动类上添加注解@EnableFeignClients开始feign
@SpringBootApplication
@EnableFeignClients
public class ServiceConsumerOpenfeign001 {
public static void main(String[] args) {
SpringApplication.run(ServiceConsumerOpenfeign001.class,args);
}
}
新建配置类
@Configuration
public class LogLevelConfig {
@Bean
//Logger是feign里面的
Logger.Level myLevel(){
return Logger.Level.FULL;
}
}
新建controller
@RestController
public class FeignController {
@Resource
public FeignService feignService;
@GetMapping("/consumer/feign")
public String provider(){
return feignService.provider();
}
@GetMapping("/consumer/feign001")
public String provider001(){
return feignService.provider001();
}
}
新建接口service,对应到service-provider001里面的controller
@Component
@FeignClient(value = "SERVICE-PROVIDER")
public interface FeignService {
@GetMapping("/provider")
public String provider();
@GetMapping("/provider001")
public String provider001();
}
service-provider001里面的controller改动
@RestController
public class ProviderContorller {
@Value("${server.port}")
private String port;
@GetMapping("/provider")
public String provider() {
return "这里是provider,port:" + port + "," + UUID.randomUUID();
}
@GetMapping("/provider001")
public String provider001() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "这里是provider,port:" + port + "," + UUID.randomUUID();
}
}
provider001是做超时测试的,