springCloud微服务组件Ribbon(客户端负载均衡)

springCloud微服务组件Ribbon(客户端负载均衡)

  • 简化RestTemplate

在初始化RestTemplate的时候加上注解@LoadBalanced

@Configuration
public class RestTemplateConfig {
    @LoadBalanced
    @Bean
    public RestTemplate get(){
        return new RestTemplate();
    }
}

controller层改进,不用使用DiscoveryClient获得实例集合,再获取集合对应的实例,直接在url地址上写上对应提供方的实例名,就可完成远程调用

@RequestMapping("/hello")
public String hello(){
  /*  List<ServiceInstance> instances = discoveryClient.getInstances("NACOS-PROVIDER");
    ServiceInstance serviceInstance = instances.get(0);
    String host = serviceInstance.getHost();
    int port = serviceInstance.getPort();*/
    String url = "http://NACOS-PROVIDER/hello/hello";
    String s = restTemplate.getForObject(url, String.class);
    return s;
}
  • 负载均衡策略

默认轮询:相同的三个提供方,消费方则会通过轮询的方式先调用1,以此类推

常见的策略

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tz55KWw8-1598770969151)(C:\Users\gwx\AppData\Roaming\Typora\typora-user-images\image-20200829191647553.png)]

改变ribbon默认的负载均衡策略

代码方式:

1.创建一个配置类将策略加载到容器当中

@Configuration
public class MyRule {
    @Bean
    public IRule getRule(){
        return new RandomRule();
    }
}

2.告诉启动类对哪个服务节点进行对应的策略,在启动类上加上注解@RibbonClient,name属性是提供节点的名字,configuration属性是指定负载均衡的策略

@RibbonClient(name = "NACOS-PROVIDER",configuration = MyRule.class)

配置文件方式:

#配置文件的方式设置ribbon负载均衡策略
#指定对哪个服务节点进行负载均衡策略
NACOS-PROVIDER:
#  固定写法
  ribbon:
#    固定写法                        指定对应策略的全限定类名
    NFloadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
名
    NFloadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值