前言:

最近在公司部署了一个简易的负载均衡集群,这个集群的主要功能是分摊公司业务服务器的流量,防止服务器因为访问量过大而造成负,导致服务宕机或者响应速度慢等一系列问题。在这里做个简要的记录,方便后续自己复盘,也给感兴趣的读者学习学习,如果存在问题帮忙指正哈。
学习了这系列的文章你将会自己搭建简单的负载均衡集群,了解负载均衡集群在高访问量的情况下充当的重要角色,可以有效的保护业务服务器稳定运行。

了解负载均衡:

负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。我这里就不做过多介绍了,我就拿我自己搭建的集群给看官说明一下哈:

说明: 从图中的三个部分:用户,负载均衡服务器,业务服务器分别来分析:

  • 用户:用户发送请求(这里可以理解为大量的用户发送大量的请求)。

  • 负载均衡服务器:必须有公网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配置和使用

手把手搭建简易负载均衡集群相关推荐

  1. 搭建K8S-web-MySQL-keepalived 负载均衡集群项目

    搭建K8S-web-MySQL-keepalived 负载均衡集群项目 部署目录 搭建K8S-web-MySQL-keepalived 负载均衡集群项目 总体架构图 安装MySQL 下载MySQL镜像 ...

  2. Nginx+Tomcat搭建高性能负载均衡集群的实现方法

    一.    目标实现高性能负载均衡的Tomcat集群: 二.步骤 1.首先下载Nginx,要下载稳定版: 2.然后解压两个Tomcat,分别命名为apache-tomcat-6.0.33-1和apac ...

  3. Nginx+Tomcat搭建高性能负载均衡集群

    2019独角兽企业重金招聘Python工程师标准>>> 一.       工具 nginx-1.8.0 apache-tomcat-6.0.33 二.    目标 实现高性能负载均衡 ...

  4. [运维] 高性能负载均衡集群

    1.Nginx+Tomcat搭建高性能负载均衡集群 https://blog.csdn.net/wang379275614/article/details/47778201 2.使用Tomcat-re ...

  5. 负载均衡集群介绍、LVS介绍、LVS调度算法、 LVS NAT模式搭建

    负载均衡集群介绍 LVS介绍 lvs的NAT模式介绍 这种模式借助iptables的nat表来实现,用户的请求到分发器后,通过预设的iptables规则,把请求的数据包转发到后端的服务器上去,这些服务 ...

  6. 18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 LVS NAT模式搭建

    2019独角兽企业重金招聘Python工程师标准>>> 18.6 负载均衡集群介绍 实现负载均衡集群的软件有:LVS.Keepalived.Nginx.haproxy等.其中LVS属 ...

  7. 搭建Nginx+Tomcat 负载均衡集群

    Nginx+Tomcat 负载均衡集群 一. 实验拓扑: 二. 实验要求: 1. 试验环境: 主机 操作系统 所需软件 Nginx服务器 rhel 6.5 x86_64 nginx-1.6.0.tar ...

  8. Linux平台上搭建apache+tomcat负载均衡集群

    传统的Java Web项目是通过tomcat来运行和发布的.但在实际的企业应用环境中,采用单一的tomcat来维持项目的运行是不现实的.tomcat 处理能力低,效率低,承受并发小(1000左右).当 ...

  9. 负载均衡集群介绍LVS介绍LVS调度算法LVS NAT模式搭建

    2019独角兽企业重金招聘Python工程师标准>>> 18.6 负载均衡集群介绍 • 主流开源软件LVS.keepalived.haproxy.nginx等 • 其中LVS属于4层 ...

最新文章

  1. 怎样才能学好Vue,听听尤雨溪怎么说?
  2. 优秀工程师至关重要的一项技能,你解锁了吗?
  3. js面试必考:this
  4. NIX***检测方法
  5. Swift 泛型函数补充
  6. Spring 事务core 模块-JdbcTeamplate 对象
  7. Python处理csv文件
  8. java对象名不可以是_java运行一个方法时如何得到该个对象的名字(不是类的名字)....
  9. JS调用WebService
  10. Dxg——Bat批处理 开发笔记整理分类合集【所有的相关记录,都整理在此】
  11. [精简]托福核心词汇23
  12. Material Design实战
  13. 从sk_buff中的线性区与非线性区到 bpf_skb_pull_data
  14. 简述自动化测试实习收获
  15. 安装php扩展fileinfo
  16. 怎样计算权重?——层次分析法、熵值法:工具+数据+案例+代码
  17. CloseableHttpClient 和 MultipartFile 配合上传文件
  18. 软件测试自动化验证码,自动化测试如何解决验证码的问题
  19. 面试后要请你吃饭_朋友入职阿里请我吃饭,只因为面试前我逼他看了这些,经验很重要...
  20. MTK关于手机AGPS问题总结

热门文章

  1. Android系统防火墙开发一(1)功能介绍
  2. Qt翻金币小游戏详细教程(内涵所有源码、图片资源)
  3. java jaxb 注解_JAXB注解的使用详解
  4. cesium系列 - 错误收集
  5. Linux入门——适合初学者
  6. unable to read local cache ‘C:\\Users\\../gensim-data\\information.json‘ during fallback, connect to
  7. 北斗导航 | 最优奇偶矢量算法理论及改进实验分析
  8. 《斯坦福数据挖掘教程·第三版》读书笔记(英文版)Chapter 12 Large-Scale Machine Learning
  9. CSDN学霸课表——反黑客电脑手机QQ密码防盗网购安全保护隐私
  10. AI测试SQL设计--常用SQL与基础知识总结