LVS四层 & Nginx七层 对比

你要分清哪些程序是应用层的,哪些程序是内核的。
LVS四层负载均衡服务器,是不会碰握手这一个步骤的。
Nginx是基于反向代理(七层)的负载均衡服务器,要先握手建立连接,才能取到URI,在判定location是否匹配,然后才将URI传递给后面的服务器。
server返回数据时,是需要过Nginx服务器的,而使用LVS的时候不会过LVS服务器。

学习 keepalived 之前,关于高可用,你需要知道:

1、如果你的LVS负载均衡服务器挂掉了,你整个公司的业务就下线了,这是不能容忍的。
这属于单点故障。
解决方法:一变多!但是入口的IP地址只能有一个,怎么变多?怎么实现多点?有2种形式:要么是主备,要么是主主
主备模型:备用机要以最快的速度接管原来的VIP(virtual IP),只有主机对外提供服务,只有主机挂了的时候,备机才顶上去。
主主模型:所有的LVS都是主,现在要借用其他形式搞定只有一个的入口IP地址,比如动态DNS。主和主之间是协作的形式。
我们首先讨论主备,有两个点需要考虑:方向性、效率性。

怎么知道主机挂没挂?
可以由备机轮询主机,但是这样会对主或多或少造成一些压力。
可以由主机发广播到所有的备机,但是网络是不可靠的,所以有一种重试机制。

如果已经确定主机挂了,谁来作为新的主机?
使用加权重的方式,这也是paxos和zookeeper的区别。官方压测200ms就能选出新的主机出来。

2、如果你后台的某一个RS(Real Server)挂掉了,负载均衡服务器还会对另外两台正常连接,会造成一部分人的业务请求异常,另一部分人的业务正常。

怎么知道RS挂了?可以用ping吗?
不可以!ping命令是网络层的只能检验网络能不能通,连TCP握手都不做,而web服务是应用层的。能ping通不能代表web服务可用。那怎么知道RS挂没挂?最简单的方式是“访问一下”。
“访问一下”这个操作,它的底层验证的是 应用层的HTTP协议,你发一个请求,返回的是200ok,就说明是可用的。

LVS内核中有模块:ipvs负载均衡模块。你想要检测各个RS是否可用的话,可以直接去修改模块的源码,也可以使用第三方实现。第三方可以是人,也可以是自动化(也就有了自动化运维)。

这个自动化的程序就是keepalived!它可以代替人工,实现自动运维。解决LVS单点故障,实现HA

keepalived

(1)监控自己的LVS服务
(2)每一台机器上都安装keepalived。Master(主机)通告自己还活着,Backup(备机)监听Master状态。如果Master挂了,一堆Backup推举选出一个新的Master.
(3)你不需要再手动配置VIP,添加LVS(ipvs模块)配置,只需要写到配置文件中即可。
(4)对后端的RS(real server)做健康检查,及时剔除不可用的节点
(5)最后,keepalived不仅仅用来解决LVS,它是一个通用的环境,主要作为linux上的HA的实现。例如,当你并发量不大的时候,nginx可以作为公司的负载均衡来使用,此时nginx成为了单点故障。这个问题也可以用keepalived来解决。

keepalived 实验手册


步骤说明





另外,可以参考Keepalived之——Keepalived + Nginx 实现高可用 Web 负载均衡,写的比较详细


一些过程记录

清空原来的负载记录


卸掉原来配置的VIP,因为keepalived会帮你去配。

虚拟路由冗余协议
VRRP使用选举机制来确定路由器的状态(Master或Backup)。运行VRRP的一组路由器对外组成了一个虚拟路由器,其中一台路由器处于Master状态,其他的处于Backup状态。

关于keepalived配置文件
可以使用man 5 keepalived.conf查看它的配置文件的帮助文档(并不是所有软件的配置文件都有帮助文档,只是它刚好提供了)

高并发负载均衡(四):基于keepalived的LVS高可用搭建相关推荐

  1. 高并发负载均衡(三):LVS的DR模型试验搭建

    LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统. 我们定义一些名词缩写: 早期的小型运营商使用的LVS: 隐藏的Virtual I ...

  2. 高并发负载均衡(二):LVS 的 DR,TUN,NAT 网络模型推导

    上节回顾 路由器就是要连接不同的网段,它是用来选择路线的.它里面有路由表,可以进行路由转发的判定. 交换机是负责同一个网络中转发,他只要转发就行了. ARP协议 发送端必须获取到目的MAC地址,MAC ...

  3. Django 高并发负载均衡

    1 什么是负载均衡? 当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能.那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台 ...

  4. Django高并发负载均衡

    1 什么是负载均衡? 当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能.那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台 ...

  5. 面试90%都会翻车的高可用+高并发+负载均衡架构设计 !

    很多人面试的时候被问到一个让人特别手足无措的问题: 你的系统如何支撑高并发? 对于一个公司而言,"为什么要高可用" 关于负载均衡架构设计你了解多少? 大多数同学被问到这个问题压根儿 ...

  6. 高并发负载均衡(一):网络协议原理

    引入 中国网络上可以产生消费的活跃用户约2.4亿,互联网人数较多,基础人群大 应该把钱花在哪里?营销上,而不是技术上.这样你赚得更多. 案例比如,陌陌:CCTV广告,营销让人们下载去使用这个软件,你可 ...

  7. 高并发负载均衡——网络协议原理

    一.网络分层模型 软件工程项目学中有一个重要的思想就是分层解耦.OSI七层模型,TCP/IP四层(有时将数据链路层和物理层分开称为五层模型),都是为了更好的实现网络的互通. 应用层:网络服务于最终用户 ...

  8. MHA+LAMP+Keepalived实现高可负载均衡综合实验

    MHA+LAMP+Keepalived实现高可负载均衡综合实验 文章目录 MHA+LAMP+Keepalived实现高可负载均衡综合实验 MHA实验过程 安装MySQL数据库 配置MySQL一主两从 ...

  9. nginx负载均衡(四)----keepalived原理及实现双vip

    keepalived原理及实现双vip 一.什么是keepalived? 二.VRRP协议 1.vrrp协议格式 2.相关术语 3.vrrp协议工作原理 4.master选举 4.1备份组中路由器的优 ...

最新文章

  1. static_cast, dynamic_cast, const_cast
  2. 苹果cms的php.ini,苹果cms安装及配置详细教程
  3. Spring Cloud Config配置中心使用(草稿版)
  4. 【Linux网络编程】并发服务器之多线程模型
  5. 【解题报告】Leecode 500. 键盘行——Leecode每日一题系列
  6. leetcode剑指 Offer 63. 股票的最大利润(动态规划)
  7. 日历2019全年日历表_实施和使用日历表
  8. cmake编译多个文件夹_cmake多目录构建(二)
  9. 如何将安卓数据同步到Mac电脑上
  10. Eclipse、STS 常用设置、操作 与 常用快捷键
  11. 配置远程jupyter notebook
  12. java 模糊图片_记录三种实现图片模糊的方法
  13. TM1640驱动程序
  14. linux shell通过i2cget命令获取I2C器件寄存器的值
  15. PHPDesigner默认编码方式
  16. ARP报文头部格式和请求流程
  17. Akka 指南 之「Actors」
  18. nginx 之安全配置
  19. Redis高级特性RDB、AOF、事务、Stream、Pipeline和Lua脚本
  20. 用十条命令在一分钟内检查Linux服务器性能[转]

热门文章

  1. HDU - 3555 Bomb(数位dp)
  2. 小学计算机课程表说课稿,小学信息技术《制作课程表》说课稿.doc
  3. 离散对数(关于方程x^A=B(mod C)的解)
  4. 12.映射表map.rs
  5. C++ 学习之函数重载、基于const的重载
  6. 大规模微服务利器:eBPF + Kubernetes
  7. 蓝绿发布、滚动发布、灰度发布,有什么区别?
  8. 读者吐槽:Go 面试总被问到 RPC
  9. 做好项目,从正确定义问题开始!
  10. 【内含福利】七牛云线下专场活动免费报名