您当前的位置:首页 > 计算机 > 编程开发 > Spring Cloud

@LoadBalanced注解---使用

时间:12-07来源:作者:点击数:

在接触springCloud的组件负载均衡Ribbon的时候,一个注解大家一定不会陌生,该注解就是@LoadBalanced注解,我们在使用这个注解后,就能在调用其他微服务的时候,通过服务实例名称就能进行调用其他的微服务,而不是直接把要调用的微服务的ip和端口号写死在代码当中。

@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
    return new RestTemplate();
}
在这里插入图片描述
 @Autowired
    private RestTemplate restTemplate;

    public String findById(Integer id){
        return restTemplate.getForObject("http://user-service/user/"+id,String.class);

    }

我们在使用这个注解之后,除了能实现以上的功能外,还有就是再调用微服务的时候,可以实现负载均衡通过的算法,例如轮询,随机…

这个时候我们就需要具备多台被调用的微服务。例如用户微服务user-server

那么我们在idea上有如何的快速的搭建多台用户微服务呢?

其实很简单,idea工具也是很给力的

看图:

在这里插入图片描述

现在我们有一个用户微服务user-server,为了体验@LoadBalanced注解的作用,我们需要搭建两个用户微服务。

在这里插入图片描述

以上我们就创建了两个用户微服务,那么接下来我们开启服务消费者admin-web,我们通过消费者去调用提供者,看看到底是调用哪一个用户微服务。

我们访问访问消费者admin-web,消费者就会通过restTemplate调用用户微服务,也就是服务提供者。

我们注意观察服务提供者的控制台打印信息:

在这里插入图片描述

通过上述git可以看出,负载均衡使用的算法是随机,5次访问用户微服务,也就是服务提供者,第一次,第二次,第四次,第五次访问的都是同一个用户微服务(我们暂且称为用户微服务1),第三次访问的是用户微服务2,可以看出采用的并不是轮询算法。

在实际的开发当中,我们并不是使用以上的restTemplate来调用服务提供者,而是使用Feign

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门