一 DNS

DNS 是一种实现负载均衡的方式,为了扩展后端的服务能力,我们会在一个域名下配置多个 IP 地址。在 DNS 上可以配置访问策略,按照运营商、地域进行优先选择,然后按照随机的方式分配被访问的节点。

DNS 一般用在 Web 类业务中,用户在请求域名的时候,会先访问 DNS 服务器,从 DNS 服务器中解析到真正的 IP 地址,然后通过 IP 地址访问服务器。

如果服务端要做扩容或缩容,则可以通过修改 DNS 配置文件控制服务器数量、地域接入分布及权重等。

优点

配置简单,不用单独开发和维护负载均衡服务器。

缺点

存在多级缓存的问题。由于 DNS 服务器在全球呈树状结构,每一级 DNS 服务器都缓存上一级服务器的信息,客户端也会有缓存。更新不及时,就不能达到配置更新后立即刷新数据的目的。在实际开发中,甚至出现访问一个月之前老 DNS 缓存的现象。

DNS 作为一级负载均衡的手段,主要用于对不同运营商、地域进行接入和分流,后面还要配合 Nginx 或 LVS 等虚拟 IP 地址的方式作为二级缓存。

二 Nginx

在 HTTP 服务器 Nginx 上也有实现负载均衡的功能,只需要简单地配置,就能够对后端服务进行负载均衡转发。Nginx 支持轮询、最小连接数和 ip-hash 三种方式的负载均衡。

Nginx 还可以开发插件,有很多在 Nginx 插件上建立负载均衡。

1 默认的负载均衡配置——轮询

http{upstream myapp1{server srv1.example.com weight = 3;server srv2.example.com;server srv3.example.com;}server{listen 80;location / {proxy_pass http://myapp1;}}
}

上面配置了三台后端 server(srv1~srv3)。该配置是轮询算法,依次把 80 端口的请求转发给后端的 srv1、srv2、srv3。如果在某个 server 上加上 weight 配置,就转换成按权重轮询,默认的权重是 1。

2 最小连接数:

    upstream myapp1{least_conn;server srv1.example.com weight = 3;server srv2.example.com;server srv3.example.com;}

如果按照最小连接数的方案进行转发,那么只需要修改 upstream 的配置即可,在其中加上 least_conn 的配置。

3 源地址 Hash

    upstream myapp1{ip_hash;server srv1.example.com weight = 3;server srv2.example.com;server srv3.example.com;}

Nginx 还可以按照客户端源地址进行 Hash 运算后转发,保证相同客户端的请求都能落在同一后端 server 上。只需要修改 upstream 的配置,在其中加上 ip_hash 的配置即可。

三 LVS

对于分布式网络服务,LVS(Linux Virtual server,Linux虚拟服务器)能够基于 IP 层和内容进行请求分发和负载均衡。在 Linux 内核实现调度算法,将服务器集群构成一个可伸缩高可用的网络服务的虚拟服务器。

当只用 LVS 时,对外展示的是一个虚拟 IP 地址。通过 LVS,根据负载均衡算法转到实际的实体 IP 地址上。算法可以是轮询、随机、源地址 Hash 等,提供多种方式供用户选择。而且会对后端实体机器进行健康检查,当发现后端有异常时,会删除有异常的节点,把请求转到健康节点上。后端恢复后再把请求重新接入进来。

LVS的主要实现模式如下:

  • NAT 模式——通过修改目标 IP 地址实现
  • DR 模式——通过修改目标 MAC 地址实现
  • TUN 模式——通过 IP 隧道协议实现

负载均衡常用组件介绍相关推荐

  1. Nginx负载均衡集群介绍

    第1章 集群介绍 1.1 集群简介 1.1.1 什么是集群 简单说,集群就是一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行 ...

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

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

  3. Spring Clould负载均衡重要组件:Ribbon中重要类的用法

    Ribbon是Spring Cloud Netflix全家桶中负责负载均衡的组件,它是一组类库的集合.通过Ribbon,程序员能在不涉及到具体实现细节的基础上"透明"地用到负载均衡 ...

  4. 负载均衡原理剖析与实践:负载均衡第一篇-介绍篇

    负载均衡第一篇-介绍篇   系列文章索引: 负载均衡第一篇-介绍篇 负载均衡第二篇-负载均衡基础知识普及   前言:相信朋友们对负载均衡应该不陌生了!特别是对搞运维的朋友!可能很多的技术人员认为,负载 ...

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

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

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

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

  7. SQL Server 2005实现负载均衡的详细介绍

    SQL Server 2005实现负载均衡的详细介绍 SQL Server 2005仍然不直接地支持负载均衡--但是它为以前SQL Server版本中可用的所有负载均衡方法提供了令人激动的改善和支持. ...

  8. Nginx负载均衡常用配置

    搭建实验环境(使用docker部署两台nginx容器) 1)使用搭建第一台nginx服务 [root@linux-node4 ~]# docker container run -d --name we ...

  9. Nginx源码实现的细枝末节 11个阶段的实现丨Nginx Filter|中间件开发|惊群效应|负载均衡丨组件丨c/c++linux服务器开发

    Nginx源码实现的细枝末节 11个阶段的实现 视频讲解如下,点击观看: Nginx源码实现的细枝末节 11个阶段的实现丨Nginx Filter|中间件开发|惊群效应|负载均衡丨组件丨c/c++li ...

最新文章

  1. python语法教程-Python语言的核心语法(1)(语法教程)(参考资料)
  2. 【ijkplayer】编译 Android 版本的 ijkplayer ⑤ ( 执行 init-android-libyuv.sh | 执行 init-android-soundtouch.sh )
  3. RHEL6基础之十八Linux中Kill进程的方法
  4. 升级android 6.0系统
  5. 《Python Cookbook 3rd》笔记(5.21):序列化 Python 对象
  6. 模拟电子技术不挂科学习笔记3(放大电路的分析方法)
  7. ue4小白人骨骼定义_【Blender】用SkinModifier+骨骼顶点“灵活”快速创建雕刻需要用的基本人物模型...
  8. React开发中常见问题和 Warning
  9. Uploadify-中文帮助手册
  10. 宋宝华《Linux设备驱动开发详解》
  11. GPS经纬度转84坐标系
  12. css字体超出显示点点点
  13. 软件测试,谱尼为网络安全护航
  14. PostgreSQL数据库学习手册之大对象
  15. win10安装super-url出现编码错误解决方法
  16. 阿里云ECS学习资源
  17. 1134: 字符串转换
  18. android动态获取地理位置权限,Android6.0获取GPS定位和获取位置权限和位置信息的方法...
  19. vue3.0 组合式API 加加减减
  20. 使用钩子函数获取全部的鼠标消息和键盘消息

热门文章

  1. TryHackMe-Carnage
  2. MSSQL2005+分组添加序号
  3. memcached noreply 和tcp Nagle
  4. PEP 8 E231 missing whitespace after ‘,’
  5. 排球比赛规则的程序化
  6. java web getrealpath,[学习笔记]java web ServletContext.getRealPath(String str)方法的使用
  7. 线程池详解(通俗易懂超级好)
  8. 什么是Net5? 来自Net5(net core)的开场白
  9. Spring cloud alibaba(二)nacos服务发现docker相同ip冲突
  10. 继推出科创板,证监会将统筹推进新三板创业板改革