Spring Cloud Alibaba负载均衡的实现方式是什么

这篇文章主要介绍了Spring Cloud Alibaba负载均衡的实现方式是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Spring Cloud Alibaba负载均衡的实现方式是什么文章都会有所收获,下面我们一起来看看吧。

    一、负载均衡的两种方式

    服务器端负载均衡

    传统的方式前端发送请求会到我们的的nginx上去,nginx作为反向代理,然后路由给后端的服务器,由于负载均衡算法是nginx提供的,而nginx是部署到服务器端的,所以这种方式又被称为服务器端负载均衡。

    Spring Cloud Alibaba负载均衡的实现方式是什么  springcloud 第1张

    客户端侧负载均衡

    现在有三个实例,内容中心可以通过discoveryClient 获取到用户中心的实例信息,如果我们再订单中心写一个负载均衡的规则计算请求那个实例,交给restTemplate进行请求,这样也可以实现负载均衡,这个算法里面,负载均衡是有订单中心提供的,而订单中心相对于用户中心是一个客户端,所以这种方式又称为客户端负负载均衡。

    Spring Cloud Alibaba负载均衡的实现方式是什么  springcloud 第2张

    二、手写一个客户端侧负载均衡器

    ◆随机选择实例

    @Autowired
    private DiscoveryClient discoveryClient;
    @GetMapping("/order/create")
    public String createOrder(Integer productId,Integer userId){
        List<ServiceInstance> instances = discoveryClient.getInstances("msb-stock");
        List<String> targetUrls = instances.stream()
            // 数据变换
            .map(instance -> instance.getUri().toString() + "/stock/reduce")
            .collect(Collectors.toList());
        int i = ThreadLocalRandom.current().nextInt(targetUrls.size());
        String targetUrl = targetUrls.get(i);
        log.info("请求求目标地址:{}",targetUrl);
        String result = restTemplate.getForObject(targetUrl +"/"+ productId, String.class);
        log.info("进行减库存:{}",result);
        return "下单成功";
    }

    三、使用Ribbon实现负载均衡

    Ribbon是什么? Netflix开源的客户端侧负载均衡器

    更加直观说就是ribbon就是简化我们这段代码的小组件,不过他比我们的代码要强大一些,他给他们提供了丰富的负载均衡算法。

    Spring Cloud Alibaba负载均衡的实现方式是什么  springcloud 第3张

    引入ribbon :三步骤: 加依赖,启动注解,写配置

    不需要加,nacosdiscovery,已经给添加了依赖,

    Spring Cloud Alibaba负载均衡的实现方式是什么  springcloud 第4张

    写注解,需要写到RestTemplate上面。

    Spring Cloud Alibaba负载均衡的实现方式是什么  springcloud 第5张

    第三步:写配置

    没有配置。

    改造我们的请求:

    url:改为 下面 当请求发送的发送的时候ribbon会将nx-us进行转化为我们nacos里面中的地址。并且进行负载均衡算法,进行请求,

    Spring Cloud Alibaba负载均衡的实现方式是什么  springcloud 第6张

    关于“Spring Cloud Alibaba负载均衡的实现方式是什么”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Spring Cloud Alibaba负载均衡的实现方式是什么”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注蜗牛博客行业资讯频道。

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    评论

    有免费节点资源,我们会通知你!加入纸飞机订阅群

    ×
    天气预报查看日历分享网页手机扫码留言评论Telegram