美文网首页
11.基于ribbon实现负载均衡

11.基于ribbon实现负载均衡

作者: LANSHENGYANG | 来源:发表于2020-05-26 18:10 被阅读0次

    基于Ribbon实现负载均衡

    • Ribbon是Spring Cloud的一个组件,它可以让我们使用一个注解就轻松的搞定负载均衡
    • 第1步:在RestTemplate的生成方法上添加@LoadBalanced注解
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemp1ate();
    }
    
    • 第2步:修改服务调用的方法
    @RequestMapping("/order/prod/{pid}")
    public Order order(@PathVariable("pid") Integer pid) {
        log.info("接收到{}号商品的下单请求,接下来调用商品微服务查询此商品信息", pid);
    
        Product product = restTemplate.getForObject("http://service-product/product/" + pid, Product.class);
        log.info("查询到{}号商品的信息,内容是:{}", pid, JSON.toJSONString(product));
    
        //下单(创建订单)
        Order order = new Order();
        order.setUid(1);
        order.setUsername("测试用户");
        order.setPid(pid);
        order.setPname(product.getPname());
        order.setPprice(product.getPprice());
        order.setNumber(1);
    
        orderService.createOrder(order);
        log.info("创建订单成功,订单信息为{}", JSON.toJSONString(order));
        return order;
    }
    
    Ribbon支持的负载均衡策略
    • Ribbon内置了多种负载均衡策略,内部负载均衡的顶级接口为com.netflix.loadbalancer.IRule,具体的负载均衡如下图:
      image
    • 我们可以通过修改配置来调整Ribbon的负载均衡策略,具体代码如下
    service-product: #调用的提供者的名称
      ribbon:
        NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
    

    相关文章

      网友评论

          本文标题:11.基于ribbon实现负载均衡

          本文链接:https://www.haomeiwen.com/subject/ebbvahtx.html