文章目录
前言
项目实战
随机获取服务调用
ribbon实现负载均衡
feign实现服务调用
引入feign组件依赖
启动类
product服务接口
controller测试类
测试
前言
Ribbon是Spring Cloud的一个组件, 它可以让我们使用一个注解就能轻松的搞定负载均衡。
前边我们调用是从服务中获取实例获取调用的地址和端口,从而调用服务,这样特别麻烦,Feign是Spring Cloud提供的一个声明式的伪Http客户端, 它使得调用远程服务就像调用本地服务一样简单, 只需要创建一个接口并添加一个注解即可。Nacos很好的兼容了Feign, Feign默认集成了 Ribbon, 所以在Nacos下使用Fegin默认就实现了负载均衡的效果。
项目实战 随机获取服务调用
从上篇中,我们复制两个module改下端口,也可以IDEA中直接进行改端口运行两个服务。查看nacos查询服务。
启动成功之后,登录nacos进行查询服务。
此时我们在订单中进行调用product服务。
订单中代码,获取商品服务实例的列表,随机获取一个实例进行调用。
//从nacos服务注册中心获取product服务
List productServiceInstanceList = discoveryClient.getInstances(“springcloud-product”);
int index = new Random().nextInt(productServiceInstanceList.size());
ServiceInstance productServiceInstance =
discoveryClient.getInstances(“springcloud-product”)