1.什么是OpenFeign
OpenFeign是Spring Cloud提供的一个声明式的伪Http客户端, 它使得调用远程服务就像调用本地服务一样简单, 只需要创建一个接口并添加一个注解即可。
Nacos很好的兼容了Feign, Feign负载均衡默认集成了 Ribbon, 所以在Nacos下使用Fegin默认就实现了负载均衡的效果。
2.Feign的使用
2.1加入Feign的依赖
<!--openfeign依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2.2在主启动类上加入开启feign的注解
@SpringBootApplication
@EnableFeignClients
public class OrderApp {
public static void main(String[] args) {
SpringApplication.run(OrderApp.class,args);
}
@Bean
//ribbon借助RestTemplate完成负载均衡的调用
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
2.3创建feign的接口
//被调用的微服务名称 springcloud openfeign---代理实现类---url:http://springcloud-product/product/findById/{pid}
@FeignClient(value = "springcloud-product",fallbackFactory = ProductFeignFactory.class)
public interface ProductFeign {
//调用微服务接口方法:必须和微服务提供者的方法参数必须一致
@GetMapping("/product/findById/{pid}")
public Product selectProduct(@PathVariable Integer pid);
}
2.4修改OrderController的代码
@Autowired
private ProductFeign productFeign;
Product product = productFeign.selectProduct(pid);
System.out.println(product);
System.out.println("~~~~~~~~远程查询的商品结果~~~~~~~~"+product);
order.setPid(product.getPid());
order.setPname(product.getPname());
order.setPprice(product.getPprice());
orderMapper.insert(order);
return product;
}
}
本文介绍了OpenFeign在Spring Cloud中的作用,它是如何简化远程服务调用的,并展示了如何在Nacos环境下配置和使用Feign实现负载均衡。通过添加依赖、启用Feign、创建Feign接口以及在Controller中调用,详细步骤展示了如何在微服务间进行声明式调用。
2427

被折叠的 条评论
为什么被折叠?



