负载均衡架构

负载均衡(Load Balance):通过请求分发,实现多个服务器间的负载均衡的能力.
它建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性(业务解耦)和可用性。
 
根据实现方式的不同可以分为服务端负载均衡和客户端负载均衡.
 
服务端负载均衡
 
  服务端负载均衡,根据软硬件又可分为硬件负载均衡和软件负载均衡.根据网络模型分层分类,又可以分为四层负载均衡和七层负载均衡.软硬件和网络分层的负载均衡,互有交叉,如F5设备即可以实现四层负载均衡又可以实现七层负载均衡.
1 根据软硬件分类
 
  • 硬件负载均衡
    硬件负载均衡:通过硬件负载均衡设备,实现服务器间的负载均衡.常见的如:F5等设备.特点是高性能,高成本.
  • 软件负载均衡
    软件负载均衡:通过部署负载均衡软件,实现服务器间的负载均衡.常见的如:LVS,NGINX,HAPROXY.特点是低成本,但是性能较差.
 
2 根据网络模型分层分类
 
根据网络协议的OSI七层网络模型.负载均衡的网络消息转发一般集中在传输层和应用层.由于传输层位于OSI模型的第四层,故称为四层负载均衡,应用层位于OSI模型的第七层,则称为七层负载均衡.
  • 四层负载均衡:
    主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。
  以常见的TCP为例:负载均衡设备在接收到第一个来自客户端的SYN 请求->负载均衡算法选择服务器->修改报文目标IP地址->转发给实际的服务器
  • 七层负载均衡:
        反向代理.以常见的TCP为例:负载均衡设备通过解析报文中应用层的内容,将请求转发给合适的服务器.负载均衡设备先通过三次握手分别与所代理的应用服务器和客户端建立联系->解析客户端发送的应用层报文->负载均衡算法->决定最终选择的内部服务器。
区别:
    四层:通过ip和端口确定流量负载.实际连接过程是服务器和客户端执行;性能高
    七层:在四层的基础上,增加了对应用层特征的识别能力.是在负载均衡机器和客户端连接后,再决定实际访问的服务器;更灵活
 
3 服务器负载均衡的优缺点:
  • 优点:
    业务开发无侵入性:调整负载均衡部署不影响应用代码
  • 缺点:
    存在单点问题:负载均衡服务器是整个系统的瓶颈,就算多增加一层负载均衡,也会面临再次转发的问题,性能会受影响.
 
实际应用中,多将四层负载均衡和七层负载均衡结合使用,即可以保证业务解耦,又可一定限度的避免单点问题.
 
  
4 适用场景
 
服务器负载均衡适合应用于:服务器列表已知,固定的服务器环境.如:网站的前后端交互,应用与数据库交互等场景.
但是对于被负载均衡的服务器需要动态伸缩的场景,客户端负载均衡可以更好的满足需求.
 
客户端负载均衡
 
客户端负载均衡是客户端直接选择服务应用,而不是通过服务端分发请求.根据下面的图可知,客户端直接内嵌了负载均衡器,最佳实践是通过和服务发现进行配合,通过服务发现获取实时服务列表,负载均衡器选择实际的后端应用,直接进行服务访问.
1 优缺点
优点:
    访问快捷:直接访问目标服务器,无需二次转发;
    无单点问题:没有中心化负载均衡路由和代理节点;
    扩展性好:后端应用可以动态扩容,实时性高
缺点:
    复杂度高:客户端和后端应用存在网状交叉
    无法兼容异构语言:内嵌负载均衡器,异构语言支持差
 

猜你喜欢

转载自www.cnblogs.com/chengmuyu/p/11058691.html