博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是客户端负载均衡
阅读量:7124 次
发布时间:2019-06-28

本文共 1039 字,大约阅读时间需要 3 分钟。

我们之前有一篇文章详述了如何使用nginx实现负载均衡(),在这篇文章中,我们实现了如何将客户端发来的请求通过Nginx负载均衡服务器发送到不同的上游服务器去处理,这种负载均衡就是一种典型的服务端负载均衡,那么客户端负载均衡是什么?它和服务端负载均衡有什么区别?


本文是Spring Cloud系列的第五篇文章,了解前四篇文章的内容有助于更好的理解本文:

1.

2.
3.
4.


服务端负载均衡

负载均衡是我们处理高并发、缓解网络压力和进行服务端扩容的重要手段之一,但是一般情况下我们所说的负载均衡通常都是指服务端负载均衡,服务端负载均衡又分为两种,一种是硬件负载均衡,还有一种是软件负载均衡。

硬件负载均衡主要通过在服务器节点之间安装专门用于负载均衡的设备,常见的如F5。

软件负载均衡则主要是在服务器上安装一些具有负载均衡功能的软件来完成请求分发进而实现负载均衡,常见的就是Nginx。

无论是硬件负载均衡还是软件负载均衡,它的工作原理都不外乎下面这张图:

图片描述

无论是硬件负载均衡还是软件负载均衡都会维护一个可用的服务端清单,然后通过心跳机制来删除故障的服务端节点以保证清单中都是可以正常访问的服务端节点,此时当客户端的请求到达负载均衡服务器时,负载均衡服务器按照某种配置好的规则从可用服务端清单中选出一台服务器去处理客户端的请求。这就是服务端负载均衡。

客户端负载均衡

我们在一文中涉及到了客户端负载均衡,在那篇文章中我们提到

“Ribbo是一个基于HTTP和TCP的客户端负载均衡器,当我们将Ribbon和Eureka一起使用时,Ribbon会从Eureka注册中心去获取服务端列表,然后进行轮询访问以到达负载均衡的作用,客户端负载均衡中也需要心跳机制去维护服务端清单的有效性,当然这个过程需要配合服务注册中心一起完成。”

从上面的描述我们可以看出,客户端负载均衡和服务端负载均衡最大的区别在于服务清单所存储的位置。在客户端负载均衡中,所有的客户端节点都有一份自己要访问的服务端清单,这些清单统统都是从Eureka服务注册中心获取的。在Spring Cloud中我们如果想要使用客户端负载均衡,方法很简单,开启@LoadBalanced注解即可,这样客户端在发起请求的时候会先自行选择一个服务端,向该服务端发起请求,从而实现负载均衡。具体小伙伴们可以参考这篇文章。

OK,以上就是我们对客户端负载均衡的一个简介,有问题欢迎留言讨论。

更多JavaEE请关注公众号:

图片描述

以上。。

转载地址:http://tveel.baihongyu.com/

你可能感兴趣的文章
jspace2d——A free 2d multiplayer space shooter
查看>>
Form 重置记录编号(app_record.for_all_record)
查看>>
VC之美化界面(内容覆盖十分全面,经典)
查看>>
国外经典设计:12个漂亮的移动APP网站案例
查看>>
pl/sql programming 15 数据提取
查看>>
DBCP(一)数据源配置文件
查看>>
C++ map 映照容器
查看>>
重新想象 Windows 8 Store Apps (40) - 剪切板: 复制/粘贴文本, html, 图片, 文件
查看>>
[WinAPI] API 13 [遍历指定目录 打印文件和其他属性]
查看>>
字对齐、半字对齐、字节对齐的理解
查看>>
杀毒软件导致YourSQLDba备份失败
查看>>
struts2漏洞原理及解决办法
查看>>
利用cca进行fmri分析
查看>>
Oracle Dataguard之switchover
查看>>
Step-by-Step XML Free Spring MVC 3 Configuration--reference
查看>>
关于LD_DEBUG (转载)
查看>>
linux2.6.30.4内核移植(4)——完善串口驱动
查看>>
Timer&TimerTask原理分析
查看>>
GDI+ 和GDI
查看>>
日常工作中的点滴总结from 2014-03
查看>>