使用Ribbon 负载均衡

Ribbon:简化远程调用实现了负载均衡

负载均衡分为服务端负载均衡和客户端负载均衡

使用Ribbon简化RestTemplate调用
这只是Ribbon的小功能

在RestTemplate上添加注解@LoadBalanced

@Configuration
public class RestTemplateConfig {


    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

在调用时指定服务名

  /**
     * 使用Ribbon简化RestTemplate调用
     * @param id
     * @return
     */
    @GetMapping("/goods2/{id}")
    public Goods findGoodsById2(@PathVariable("id") int id) {

        String url = "http://EUREKA-PROVIDER/goods/findOne/" + id;

        Goods forObject = restTemplate.getForObject(url, Goods.class);

        return forObject;
    }

负载均衡
因为在单机状态,所以需要改变端口实现启动两个Provider服务 8000和8001
在这里插入图片描述
需要这样设置不然不能起两个服务
在这里插入图片描述

在这里插入图片描述8000端口可以正常访问
在这里插入图片描述
8001端口可以正常访问

在这里插入图片描述
默认是轮询策略
不停的刷新网页
name后面的端口每次刷新就会变化
在这里插入图片描述
在这里插入图片描述
Ribbon有负载均衡策略
默认使用轮询

• 随机 : RandomRule (就是随机server)
• 轮询 : RoundRobinRule (顺序执行)
• 最小并发: BestAvailableRule(Eureka访问性能最高的server)
• 过滤: AvailabilityFilteringRule(过滤掉错误节点和并发量最高节点)
• 响应时间: WeightedResponseTimeRule(调用最先响应的节点)
• 轮询重试: RetryRule 如果轮询的服务器不可请求,轮询下一个服务器(轮询次数默认十次,大概就是在来十次)
• 性能可用性: ZoneAvoidanceRule (选择综合性能可用性最高的一个节点)

设置负载均衡策略

  1. 编码
    在消费端编写配置类 可以选择Ribbon策略
    在这里插入图片描述
    在启动类添加@RibbonClient 用于配置目的
    在这里插入图片描述

  2. 配置
    CTLR+N 搜索类
    #配置方式设置Ribbon负载均衡策略
    EUREKA-PROVIDER: #设置服务方的应用名称
    ribbon:
    NFloadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值