手把手搭建简易负载均衡集群
前言:
最近在公司部署了一个简易的负载均衡集群,这个集群的主要功能是分摊公司业务服务器的流量,防止服务器因为访问量过大而造成负,导致服务宕机或者响应速度慢等一系列问题。在这里做个简要的记录,方便后续自己复盘,也给感兴趣的读者学习学习,如果存在问题帮忙指正哈。
学习了这系列的文章你将会自己搭建简单的负载均衡集群,了解负载均衡集群在高访问量的情况下充当的重要角色,可以有效的保护业务服务器稳定运行。
了解负载均衡:
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。我这里就不做过多介绍了,我就拿我自己搭建的集群给看官说明一下哈:
说明: 从图中的三个部分:用户,负载均衡服务器,业务服务器分别来分析:
用户:用户发送请求(这里可以理解为大量的用户发送大量的请求)。
负载均衡服务器:必须有公网IP才可以对外开放,绑定开放端口,与业务服务器建立独立的通信通道。
业务服务器:把业务端口映射到负载均衡服务器上,部署业务流程。
整体的流程大概就是:用户发送请求,访问负载均衡服务器,通过HAProxy的负载均衡算法把流量分摊到压力最小的业务服务器上,业务服务器响应请,原路返回响应内容到达用户端。整个过程中我们可以想象一下,大量访问到达负载均衡服务器,经负载均衡算法把每个访问分摊到压力最小的业务服务器上,从而保护了业务服务器,大大减轻了业务服务器的压力。
举个程序员最能感受到的例子:你们小组有8个程序员(业务服务器)和一个组长(负载均衡),当产品(用户)的若干需求出来的时候是不是要程序员去实现,如果只有8个程序员去实现的话,但是产品跟1号程序员比较熟悉,然后他就把所有的需求都给了1号去实现,其他程序员非常空闲,1号程序员可能得天天加班然后还得一个月完成这些需求,造成得结果会是什么?需求完成的慢,程序员因为长期高强度工作心里有了负面情绪,离职了(宕机),这种情况是非常糟糕的!于是改变了工作方式,产品把这些需求统一交给了组长,组长是不是每天都有8个程序员的工作汇报,了解他们手上的工作,于是经过组长的调节,把这些需求相对平均的分配到8个程序员身上,这样达到的效果是8个程序员的工作量相对平均,他们可以每天不用加班而且10天就完成了所有的需求,这样需求的完成速度加快了,而且程序员也轻松,这样的情况是公司最愿意看到的!
负载均衡算法:
轮询:
- 将所有请求,依次分发到每台服务器上,适合服务器硬件同相同的场景。
优点:服务器请求数目相同;
缺点:服务器压力不一样,不适合服务器配置不同的情况;
随机:
- 请求随机分配到各个服务器。
优点:使用简单;
缺点:不适合机器配置不同的场景;
最少链接:
- 将请求分配到连接数最少的服务器(目前处理请求最少的服务器)。
优点:根据服务器当前的请求处理情况,动态分配;
缺点:算法实现相对复杂,需要监控服务器请求连接数;
Hash(源地址散列):
- 根据IP地址进行Hash计算,得到IP地址。
优点:将来自同一IP地址的请求,同一会话期内,转发到相同的服务器;实现会话粘滞。
缺点:目标服务器宕机后,会话会丢失;
加权:
- 在轮询,随机,最少链接,Hash等算法的基础上,通过加权的方式,进行负载服务器分配。
优点:根据权重,调节转发服务器的请求数目;
缺点:使用相对复杂;
总体的算法就是这些了,当然以上可以进行组合使用比较灵活,我网上找了一圈好像8种常用的方法。
负载均衡支持的协议:
- HTTP
- HTTPS
- TCP
总结
以上就是我对负载均衡的简单了解,因为我接触的不是很深,理解不到位的或者有异议的,大家可以给我纠正下哈。其实我觉得这篇文章很生动形象,大家觉得我解释的不是很好理解可以看一下戳我看有趣的文章
给个一健三连吧,后续我会给大家带来详细的搭建过程:
- FRP部署流程实现内网穿透(windows)
- 使用cygwin编译haproxy(windows)
- HAProxy配置和使用
手把手搭建简易负载均衡集群相关推荐
- 搭建K8S-web-MySQL-keepalived 负载均衡集群项目
搭建K8S-web-MySQL-keepalived 负载均衡集群项目 部署目录 搭建K8S-web-MySQL-keepalived 负载均衡集群项目 总体架构图 安装MySQL 下载MySQL镜像 ...
- Nginx+Tomcat搭建高性能负载均衡集群的实现方法
一. 目标实现高性能负载均衡的Tomcat集群: 二.步骤 1.首先下载Nginx,要下载稳定版: 2.然后解压两个Tomcat,分别命名为apache-tomcat-6.0.33-1和apac ...
- Nginx+Tomcat搭建高性能负载均衡集群
2019独角兽企业重金招聘Python工程师标准>>> 一. 工具 nginx-1.8.0 apache-tomcat-6.0.33 二. 目标 实现高性能负载均衡 ...
- [运维] 高性能负载均衡集群
1.Nginx+Tomcat搭建高性能负载均衡集群 https://blog.csdn.net/wang379275614/article/details/47778201 2.使用Tomcat-re ...
- 负载均衡集群介绍、LVS介绍、LVS调度算法、 LVS NAT模式搭建
负载均衡集群介绍 LVS介绍 lvs的NAT模式介绍 这种模式借助iptables的nat表来实现,用户的请求到分发器后,通过预设的iptables规则,把请求的数据包转发到后端的服务器上去,这些服务 ...
- 18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 LVS NAT模式搭建
2019独角兽企业重金招聘Python工程师标准>>> 18.6 负载均衡集群介绍 实现负载均衡集群的软件有:LVS.Keepalived.Nginx.haproxy等.其中LVS属 ...
- 搭建Nginx+Tomcat 负载均衡集群
Nginx+Tomcat 负载均衡集群 一. 实验拓扑: 二. 实验要求: 1. 试验环境: 主机 操作系统 所需软件 Nginx服务器 rhel 6.5 x86_64 nginx-1.6.0.tar ...
- Linux平台上搭建apache+tomcat负载均衡集群
传统的Java Web项目是通过tomcat来运行和发布的.但在实际的企业应用环境中,采用单一的tomcat来维持项目的运行是不现实的.tomcat 处理能力低,效率低,承受并发小(1000左右).当 ...
- 负载均衡集群介绍LVS介绍LVS调度算法LVS NAT模式搭建
2019独角兽企业重金招聘Python工程师标准>>> 18.6 负载均衡集群介绍 • 主流开源软件LVS.keepalived.haproxy.nginx等 • 其中LVS属于4层 ...
最新文章
- 怎样才能学好Vue,听听尤雨溪怎么说?
- 优秀工程师至关重要的一项技能,你解锁了吗?
- js面试必考:this
- NIX***检测方法
- Swift 泛型函数补充
- Spring 事务core 模块-JdbcTeamplate 对象
- Python处理csv文件
- java对象名不可以是_java运行一个方法时如何得到该个对象的名字(不是类的名字)....
- JS调用WebService
- Dxg——Bat批处理 开发笔记整理分类合集【所有的相关记录,都整理在此】
- [精简]托福核心词汇23
- Material Design实战
- 从sk_buff中的线性区与非线性区到 bpf_skb_pull_data
- 简述自动化测试实习收获
- 安装php扩展fileinfo
- 怎样计算权重?——层次分析法、熵值法:工具+数据+案例+代码
- CloseableHttpClient 和 MultipartFile 配合上传文件
- 软件测试自动化验证码,自动化测试如何解决验证码的问题
- 面试后要请你吃饭_朋友入职阿里请我吃饭,只因为面试前我逼他看了这些,经验很重要...
- MTK关于手机AGPS问题总结
热门文章
- Android系统防火墙开发一(1)功能介绍
- Qt翻金币小游戏详细教程(内涵所有源码、图片资源)
- java jaxb 注解_JAXB注解的使用详解
- cesium系列 - 错误收集
- Linux入门——适合初学者
- unable to read local cache ‘C:\\Users\\../gensim-data\\information.json‘ during fallback, connect to
- 北斗导航 | 最优奇偶矢量算法理论及改进实验分析
- 《斯坦福数据挖掘教程·第三版》读书笔记(英文版)Chapter 12 Large-Scale Machine Learning
- CSDN学霸课表——反黑客电脑手机QQ密码防盗网购安全保护隐私
- AI测试SQL设计--常用SQL与基础知识总结