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

发布时间:2023-03-13 17:30:12 作者:iii
来源:亿速云 阅读:112

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

一、负载均衡的两种方式

服务器端负载均衡

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

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

客户端侧负载均衡

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

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

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

◆随机选择实例

@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负载均衡的实现方式是什么

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

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

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

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

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

第三步:写配置

没有配置。

改造我们的请求:

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

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

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

推荐阅读:
  1. SpringCloud Feign中怎么使用ApacheHttpClient代替默认client方式
  2. SpringCloud怎么利用Feign访问外部http请求

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

springcloud

上一篇:跑npm scripts的方式是什么

下一篇:xmind2022下载并试用的方法是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》