设为首页 加入收藏

TOP

高并发解决方法-LVS、LVS-NAT、LVS-DR(一)
2023-09-09 10:25:42 】 浏览:137
Tags:高并发 解决方 -LVS LVS-NAT LVS-DR

高并发解决方法-LVS、LVS-NAT、LVS-DR

前言:

集群功能分类:

1.LB Load Balancing,负载均衡(增加处理能力),有一定高可用能力,但不是高可用集群,是以提高服务的并发处理能力为根本着重点。LVS

2.HA High Availability 高可用集群(增加服务可用性),是以提升服务的始终在线能力为着重点,不会因为宕机而导致服务不可用。Keepalived

大型网站高并发解决方案LVS

负载均衡

(Load Balance)负载均衡,当然这是一个简单的概括,比如,我有10台机器都提供web服务,那么我如何均衡的利用这10台机器呢,让这10台机器保证高性能、高可用、高并发就是负载均衡要考虑和要做的事情。

实现负载均衡一般可以使用顺序、比重、流量、服务类别等进行分配,负载均衡的部署方式也分为路由和服务直接返回模式

负载均衡的主要方式

1.http重定向

2.DNS负载均衡

优点:
将负载均衡的工作交给了DNS,省却了网站管理维护负载均衡服务器的麻烦,同时许多DNS还支持基于地理位置的域名解析,将域名解析成距离用户地理最近的一个服务器地址,加快访问速度吗,改善性能。
缺点:
目前的DNS解析是多级解析,每一级DNS都可能化缓存记录A,当某一服务器下线后,该服务器对应的DNS记录A可能仍然存在,导致分配到该服务器的用户访问失败。
DNS负载均衡的控制权在域名服务商手里,网站可能无法做出过多的改善和管理。
不能够按服务器的处理能力来分配负载。DNS负载均衡采用的是简单的轮询算法,不能区分服务器之间的差异,不能反映服务器当前运行状态,所以其的负载均衡效果并不是太好。
可能会造成额外的网络问题。为了使本DNS服务器和其他DNs服务器及时交互,保证DNSs数据及时更新,使地址能随机分配,一般都要将DNS的刷新时间设置的较小,但太小将会使DNS流量大增造成额外的网络问题。

3.反向代理负载均衡

4.ip负载均衡

优点:在响应请求时速度较反向服务器负载均衡要快。
缺点。如法处理更高级的请求

5.数据链路层负载均衡

优点:不需要负载均衡服务器进行IP地址的转换。数据响应时,不需要经过负载均衡服务器。
缺点:负载均衡服务器的网卡带宽要求较高。

四层负载和七层负载

所谓四层就是基于IP+端口的负载均衡,主要代表有lvs。
七层负载也称内容交换,就是基于URL等应用层信息.的负载均衡,主要代表有nginx。

关于代理

正向代理

反向代理

LVS概述

LVS是Linux Virtual Server 也就是Linux虚拟服务器

LVS工作在一台server上提供Directory(负载均衡器)的功能,本身并不提供服务,只是把特定的请求转发给对应的real server(真正提供服务的主机),从而实现集群环境中的负载均衡。

LVS工作模式:

NAT转发模式

1.客户端将请求发往前端的负载均衡器,请求报文源地址是CIP(客户端lP),后面统称为CIP,目标地址为VIP(负载均衡器前端地址,后面统称为VIP)。
2.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将客户端请求报文的目标IP地址改为了后端服务器的RIP地址并将报文根据算法发送出去。
R.报文送到Real Server后,由于报文的目标地址是自己,所以会响应该请求,并将响应报文返还给LVS。
4.然后LVS将此报文的源地址修改为本机并发送给客户端。

优点:

网络隔离安全,节约IP地址

还有DR直接路由模式、TUN-IP隧道模式、FULL-NAT等...

LVS-NAT实战案例

准备:

client: VMNET0 192.168.31.86

LVS: VMNET0 192.168.31.143
VMNET2 192.168.198.128

web1: VMNET 2 192.168.198.129

web2: VMNET 2 192.168.198.130

关闭防护墙 关闭selinux

步骤:

1.web1配置网站和路由

yum install -y httpd  //先使用NAT网络连接 安装好httpd
systemctl start httpd
systemctl enable httpd  //完成后切换为vmnet2仅主机网络
echo "web1" > /var/www/html/index.html
route add default gw 192.168.198.128  //配置真实服务器的网络出口 -net外部网络 gw网关

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="2a55dccb-7784-4b4e-a5e2-4004033803fa"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.198.129
NETMASK=255.255.255.0
GATEWAY=192.168.198.128  //只允许LVS的vmnet2通过
DNS1=114.114.114.114

2.web2配置网站和路由

yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "web2" > /var/www/html/index.html
route add default gw 192.168.198.128  //配置真实服务器的网络出口 -net外部网络 gw网关

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_F
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇为什么创建 Redis 集群时会自动错.. 下一篇Keepalived高可用集群、Keepalive..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目