码迷,mamicode.com
首页 > 其他好文 > 详细

客户端负载均衡介绍

时间:2020-07-11 16:50:29      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:ret   dba   负载均衡   详细信息   配置   res   就是   new   好的   

客户端负载均衡

客户端负载均衡,就是相对服务端负载均衡而言的。

服务端负载均衡,就是传统的 Nginx 的方式。用 Nginx 做负载均衡,我们称之为服务端负载均衡。

如下图所示:

技术图片

这种均衡,称为服务端负载均衡。它的一个特点就是,客户端并不知道此时为它提供服务的 server 到底是哪一个,它也不关心。反正请求发给 Nginx,Nginx 再将请求转发给 Tomcat,客户端只需要记住 Nginx 的地址即可。

客户端负载均衡则是另外一种情形:

技术图片

客户端负载均衡,就是调用的客户端本身是知道所有 Server 的详细信息的,当需要调用 Server 上的接口时,客户端就从自身所维护的 Server 列表中,根据提前配置好的负载均衡策略,自己挑选一个 Server 来调用。此时,客户端知道它所调用的 Server 到底是哪一个。

在 RestTemplate 中,要想使用负载均衡功能,只需要给 RestTemplate 实例上添加一个 @LoadBalanced 注解即可,此时,RestTemplate 就会自动具备负载均衡功能,这个负载均衡就是客户端负载均衡。

    @Bean
    // 给 RestTemplate 实例添加 @LoadBalanced 注解,自动开启负载均衡
    @LoadBalanced
    RestTemplate restTemplate(){
        return new RestTemplate();
    }

负载均衡原理

在 Spring Cloud 中,实现负载均衡非常容易。只需要添加 @LoadBalanced 注解即可。只要添加了该注解,一个原本普通做 Rest 请求的工具 RestTemplate 就会自动具备负载均衡功能,这个是怎么实现的呢?

整体上来说,这个功能的实现就是三个核心点:

-从 Eureka Client 本地缓存的服务注册信息中,选择一个可以调用的服务。

  • 根据 1 中所选择的服务,重构请求 URL 地址。

  • 将 1、2 步的功能嵌入到 RestTemplate 中。

每天学习一点点,每天进步一点点。

客户端负载均衡介绍

标签:ret   dba   负载均衡   详细信息   配置   res   就是   new   好的   

原文地址:https://www.cnblogs.com/youcoding/p/13284065.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!