springcloud学习笔记-OpenFeign服务接口调用
创建客户端端口为801 依赖:
<dependencies> <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>com.atguigu.springcloud</groupId> <artifactId>cloud-api-common</artifactId> <version>${ project.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</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> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> </project>
yml:
server: port: 80 eureka: client: register-with-eureka: false service-url: defaultZone: http://eureka7001.com:7001/eureka, http://eureka7002.com:7002/eureka
controller层:
@RestController @Slf4j public class OrderFeignController { @Resource private PaymentFeignService paymentFeignService; @GetMapping(value = "/consumer/payment/get/{id}") public CommonResult<Payment> getPaymentById(@PathVariable("id")Long id){ return paymentFeignService.getPaymentById(id); } @GetMapping("/consumer/payment/feign/timeout") public String paymentFeignTimeout(){ return paymentFeignService.paymentFeignTimeout(); }; }
定义接口:
@Component @FeignClient(value = "CLOUD-PAYMENT-SERVICE")//体现了负载均衡 public interface PaymentFeignService { @GetMapping(value = "/payment/get/{id}") public CommonResult<Payment> getPaymentById(@PathVariable("id") Long id); @GetMapping("/payment/feign/timeout") public String paymentFeignTimeout(); }
通过@FeignClient(value = “CLOUD-PAYMENT-SERVICE”) 找到服务器名为:CLOUD-PAYMENT-SERVICE的8001,8002端口的两个服务器
主启动类:
@SpringBootApplication @EnableFeignClients public class OrderFeignMain801 { public static void main(String[] args) { SpringApplication.run(OrderFeignMain801.class,args); } }
最后启动eureka7001,eureka7002集群,启动服务端8001,8002,启动该客户端801。 访问:http://localhost/consumer/payment/get/31 查看feign自带的负载均衡效果。