SpringCloud+eureka负载均衡

SpringCloud 搭建 eureka集群后,实现负载均衡

在RestTemplate的配置方法上添加@LoadBalanced注解:
在这里插入图片描述

修改调用方式,不再手动获取ip和端口,而是直接通过服务名称调用:
在这里插入图片描述
代码:

 public User queryUserByIds(Long id){
        //直接通过服务名称找对应ip ,user-service是服务的名称
        String url = "http://user-service/user/"+ id;

        // 使用restTemplate发起请求
        ResponseEntity<User> entity = restTemplate.getForEntity(url, User.class);
        // 获取返回对象
        User user = entity.getBody();
        return user;
    }

在客户端的yml文件中配置,默认是简单轮循

下面是配置随机负载
在这里插入图片描述
SpringBoot提供了修改负载均衡规则的配置入口:

user-service:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

格式是:{服务名称}.ribbon.NFLoadBalancerRuleClassName,值就是IRule的实现类。

测试:

@Autowired
RibbonLoadBalancerClient client;
@Test
public void loadTest(){
    for( int i  = 0 ; i <100 ;i++){
        ServiceInstance instance = client.choose("user-service");
        System.out.println(instance.getHost()+":"+ instance.getPort());
    }
}

从集群中随机获取ip和端口
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值