负载均衡实现的几种方式
负载均衡,英文名Load Balance,作用是将操作分摊到多个执行单元上执行。随着如今网络流量的不断增大,服务的负载均衡是必须的,这里就来讲一讲负载均衡的结构。
说到负载均衡,同学最容易想到的可能就是nginx了,但是nginx只是其中的一层,而负载均衡从我们发送一个请求时可能就开始了,下面是一个负载均衡流程:
从用户发起一个请求,从DNS分流,到中间的反向代理,再到应用服务的分流等,经历了一层有一层,达到了服务水平拓展的目的,以应对目前庞大的数据流量。
1.DNS分流
DNS功能即指域名系统,在万维网中,我们访问他人服务,即是访问他人ip,但是ip不便于记忆,此时域名系统就出现了。通过域名与ip的相互映射,我们可以不用记忆ip,而是通过域名去访问目标服务,而DNS系统即是一个域名与ip地址相互映射的分布式数据库,我们访问域名是,经历了以下步骤:
域名与ip之间有映射关系,但是大多数情况下却不是一一对应的,我们可以将多个ip映射到同一个域名,因为用户是通过域名去进行访问的,具体访问哪个地址,则有DNS服务器的映射记录和一定的负载均衡算法来决定,用户拿到具体ip后再去访问,而这个过程对用户来说完全是透明的,通过DNS分流完成了第一步的负载均衡:
2.硬件分流
通过硬件设备,在网络流量进入服务之前进行流量的分流,通过各种策略,分散到不同的服务器。常见的如F5负载均衡器。
3.四层负载
四层负载主要是指OSI七层模型中,工作在第四次tcp层的负载均衡,主要是通过修改报文中的目标地址和端口,再加上一定的负载均衡策略,选择最终处理的服务器,如lvs。由此可以想到,其实还有二层负载和三层负载,通过虚拟mac地址或者虚拟ip地址来接收请求然后再分流到真实的mac地址或者ip地址。这几种负载方式都是不关心具体的上层协议,只负责修改数据的流向。
4.七层负载
七层负载也称“内容负载”,是根据具体的应用层内容,更加智能的选择具体内部服务。如更具请求的url信息等,选择具体的应用服务器来进行相应处理,如nginx。
5.客户端分流
前面的负载均衡除了DNS以外,都有一个点来分发具体的流量,我们称为服务器分流。当用户请求到达了真正的应用服务器以后,请求还会细分,而同一类的请求的服务可能还是集群,例如如今的微服务架构。这时可以使用应用框架来完成服务请求的分流,如dubbo以及springCloud的Ribbon组件等,这些由服务自己决定的分流方式称为客户端分流。
6.数据层分流
在应用服务器的背后,是数据层,各种缓存以及持久化数据库等。对于到达数据层的请求,我们也可以进行相应的负载均衡处理,如redis的主从读写分
离集群、分片集群等,mysql的主从读写、分区分表分库等。
【End】
推荐阅读:
Java 最常见的 200+ 面试题
关注下方二维码,订阅更多精彩内容。
转发朋友圈,是对我最大的支持。
负载均衡实现的几种方式相关推荐
- 负载均衡常用的几种方式
一.HTTP重定向 HTTP重定向服务器就是一个普通的服务器,当用户访问时,其会根据一定的算法得到服务器集群的一个真实服务器的IP地址,将其放在HTTP响应头中,响应状态码为(302) ...
- Nginx服务器之负载均衡策略(6种)
一.关于Nginx的负载均衡 在服务器集群中,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器. 二.Nginx负载均衡策略 负载均 ...
- 实现服务器负载均衡常见的四种技术
为了提高服务器的性能和工作负载能力,企业通常会使用DNS服务器.网络地址转换等技术来实现多服务器负载均衡,特别是目前企业对外的互联网Web网站,许多都是通过几台服务器来完成服务器访问的负载均衡. 目前 ...
- 【Nginx】Nginx服务器之负载均衡策略(6种)
一.关于Nginx的负载均衡 在服务器集群中,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器. 二.Nginx负载均衡策略 负载均 ...
- 负载均衡方案的三种实现策略
早期的互联网应用,由于用户流量比较小,业务逻辑也比较简单,往往一个单服务器就能满足负载需求.随着现在互联网的流量越来越大,稍微好一点的系统,访问量就非常大了,并且系统功能也越来越复杂,那么单台服务器就 ...
- nginx负载均衡配置的几种策略
nginx的upstream目前支持4种方式的分配 1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. 2.weight 指定轮询几率,weight ...
- IPVS -三种IP负载均衡技术与八种调度算法
三种IP负载均衡技术 在调度器的实现技术中,IP负载均衡技术是效率最高的.在已有的IP负载均衡技术中有通过网络地址转换(Network Address Translation)将一组服务 ...
- 负载均衡是什么?部署方式和工作原理
当我们刚开始用云服务器搭建网站或者部署应用的时候,因为用户流量较小,业务逻辑比较简单,一个云服务器就可以满足负载需求.但随着互联网流量越来越大,单台服务器有时候并不足以支撑大量的访问,可能会出现服务器 ...
- 负载均衡的常见几种算法
负载均衡的几种算法 轮询 加权轮询 随机 加权随机 IP Hash URL Hash 一致性Hash 特点 其他: 最小连接 最小时延等 Nginx支持 轮询 每次的请求到达时,对每个服务器都轮询访问 ...
最新文章
- 安装ubuntu20.4+gtx1050+cuda11.3
- ZkServer服务启动的逻辑-NIOServerCnxnFactory.start
- CodeForces - 1484D Playlist(循环链表+bfs)
- 『ACM-算法-离散化』信息竞赛进阶指南--离散化
- AxureRP9不同Page使用同一个Master,触发不同事件。
- perl 中部分正则表达式中匹配非空字符和正常使用字符
- MySQL 高可用架构在业务层面细化分析研究
- Javascript堆排序
- java servlet 学习_java学习之web基础(1):Servlet
- C语言 scanf函数
- Android View框架总结(二)View焦点
- mysql临时表多线程时能用吗_学会使用临时表优化,切记不要乱用临时表(记录一)...
- 光载无线(RoF, Radio over Fiber)通信技术
- 计算机硬件工程师主要干什么,计算机硬件工程师主要学习什么内容
- WPF 做的天干地支 乾坤八卦时钟表盘 可以设置24小时制
- 一:使用FreeIPA安装Kerberos和LDAP( IPA-Client安装)
- 2017年12月19-20日 阿里云 飞天/智能 云栖大会-北京峰会 会议笔记
- 搜狐CEO张朝阳:不想把成功交给一种可能
- 阿里云的ECS服务器1M宽带等于多少入网kbps和出网kbps
- com组件 的劫持_IE首页被劫持跳转问题的解决方案
热门文章
- mysql备份服务器中的_使用 Shell 备份远程服务器上的 MySQL 数据库到本机
- 多学一招总没错吧?MP通用枚举轻松实现存储显示相分离
- 消息队列-Message Queue
- Epson C1100报错“Service Req E511”的处理方法
- 极验验证码流程-3.图片加密处理 图片移位
- 关于 java 实现 语音朗读
- VMware vCloud® Suite 5.5功能介绍
- asp.net网页中导出EXCEL,WORD的环境设置验证实例
- bitcount java_java-Long.bitCount()如何找到设置的位数?
- Mybatis源码阅读(一):Mybatis初始化1.1 解析properties、settings