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

9.基于ribbon实现负载均衡

作者: LANSHENGYANG | 来源:发表于2020-05-23 09:39 被阅读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

相关文章

网友评论

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

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