最专业的八方代购网站源码!

资讯热点
实现基于LVS负载均衡集群的电子商务代购源码网站架构

发布时间:2019-3-23 分类: 电商动态

背景

随着业务的发展,对代购源码网站的访问次数越来越多,代购源码网站访问次数也从原来的1000QPS变为3000QPS。该代购源码网站已经不堪重负,反响缓慢。在这种情况下,不可能完全依赖单个LNMP的体系结构。携带更多用户访问权限,您需要使用负载均衡技术来扩展代购源码网站容量以解决托管问题。向外扩展?扩大规模?

技术说明

集群技术是一项相对较新的技术。通过集群技术,可以以较低的成本获得在性能,可靠性和灵活性方面的相对高的性能。任务调度是一个集群系统。中间的核心技术。

集群是由高速网络互连的一组独立计算机,这些计算机组成一个组并在单个系统中进行管理。当客户端与群集交互时,群集就像独立服务器一样。

组成集群后,您可以使用多台计算机和组合来执行大量请求处理(负载平衡),从而实现高处理效率。您还可以使用多台计算机进行备份(高可用性),这样任何一台计算机都可以破坏整个系统。可以正常运行。群集是当今互联网公司必备的技术,极大地提高了互联网服务的可用性和可扩展性。

负载平衡群集技术

负载平衡负载平衡群集为解决容量问题的企业需求提供了有效的解决方案。负载平衡群集允许工作负载尽可能均匀地分布在计算机群集中。

负载通常包括应用程序处理负载和网络流量负载。这种系统非常适合为使用同一组应用程序的大量用户提供服务。每个节点都可以承受一定的处理负载,可以实现节点间处理负载的动态分配,实现负载均衡。对于网络流量负载,当网络服务程序接受高网络流量时,无法快速处理,网络流量被发送到在其他节点上运行的网络服务程序。还可以根据服务器的承载能力来执行服务请求的分发,从而可以更快地处理用户的请求。

负载均衡集群技术实现

负载平衡

负载均衡技术类型:基于4层负载均衡技术,基于7层负载均衡技术

负载均衡实现:硬件负载均衡设备或软件负载均衡

硬件负载平衡产品:F5 BIG-IP,Citrix Netscaler,Deep Confidence,Array,Radware

软件负载平衡产品:LVS(Linux虚拟服务器),Haproxy,Nginx,Ats(apache流量服务器)

负载均衡技术演示图

Lvs是一种负载均衡技术,让我们来介绍lvs

什么是LVS

LVS是Linux Virtual Server的缩写,是Linux虚拟服务器。这是张文钊博士发起的一个自由软件项目。其官方代购源码网站是www.linuxvirtualserver.org。现在LVS已经是Linux标准内核的一部分。在使用Linux 2.4内核之前,必须重新编译内核以在使用LVS时支持LVS功能模块。然而,在Linux 2.4内核之后,LVS的各种功能模块已经完全构建。为内核提供任何补丁,并直接使用LVS提供的各种功能。

自1998年以来,LVS已发展成为一个相对成熟的技术项目。 LVS技术可用于实现高度可扩展,高度可用的网络服务,如WWW服务,缓存服务,DNS服务,FTP服务,MAIL服务,视频/音频点播服务等,许多知名代购源码网站和组织都是使用由LVS构建的集群系统,例如Linux门户代购源码网站(www.linux.com),Real(www.real.com),它以向RealPlayer提供音频和视频服务而闻名,以及世界上最大的开源代购源码网站(sourceforge) 。净)。 。

LVS软件:一种高性能,高可用性的服务器集群,具有LSA提供的负载平衡技术和Linux操作系统,可实现可靠性,可扩展性和可操作性。从而以低成本实现最佳服务性能。

LVS特征

高并发连接:LVS在内核网络级别上运行,具有出色的负载能力和并发处理能力。单个LVS负载均衡器,支持数万个并发连接。稳定性强:仅适用于网络层4进行分发。此功能还决定了其在负载均衡软件中的性能,最佳稳定性,内存和CPU资源消耗极低。

低成本:硬件负载均衡器小于100,000,数十亿。 LVS只需要一台服务器,可以免费部署。性价比非常高。

简单配置:LVS配置非常简单,只需几行命令即可完成配置,或者可以编写为脚本进行管理。

支持多种算法:支持多种参数算法,可根据业务场景灵活部署

支持多种工作模式:根据业务场景,可以使用不同的工作模式解决生产环境请求处理问题。

广泛的应用:由于LVS可以在4层工作,因此几乎可以对所有应用程序进行负载平衡,包括http,数据库,DNS,ftp服务等。

缺点:工作在4层,不支持7层规则修改,机制太大,不适合小规模应用。

LVS工作流程图

LVS工作内核模型

1.当客户端的请求到达负载均衡器的内核空间时,它将首先到达PREROUTING链。

2.当内核发现请求数据包的目标地址是本地机器时,它会将数据包发送到INPUT链。

3. LVS由用户空间中的ipvsadm和内核空间中的IPVS组成。 ipvsadm用于定义规则。 IPVS使用ipvsadm定义的规则。 IPVS适用于INPUT链。当数据包到达INPUT链时,首先由IPVS检查。如果数据包中的目标地址和端口不在规则中,则数据包将释放到用户空间。

4.如果数据包中的目标地址和端口在规则中,则数据消息将被修改为预先定义的目标服务器并发送到POSTROUTING链。

5.最后通过POSTROUTING链发送到后端服务器。

LVS负载均衡NAT工作流程

(一个)。当用户请求Director服务器时,请求的数据消息将首先进入内核空间的PREROUTING链。数据包的源IP地址为CIP,目标IP地址为VIP。

(b)中。 PREROUTING检查数据包的目标IP是否为本地IP,并将数据包发送到INPUT链

(C)。 IPVS比较数据包请求的服务是否是群集服务。如果是,则修改的数据包的目标IP地址是后端服务器IP,然后将数据包发送到POSTROUTING链。报文的源IP地址为CIP,目的IP地址为RIP。

(d)。 POSTROUTING链通过路由将数据包发送到Real Server。

(E)。 Real Server将发现目标与其自己的IP进行比较,并开始构建要发送回Director Server的响应消息。数据包的源IP地址为RIP,目标IP地址为CIP。

(F)。在Director Server响应客户端之前,它会将源IP地址更改为其自己的VIP地址并响应客户端。数据包的源IP地址为VIP,目标IP地址为CIP。

实验:负载平衡群集企业应用程序实践 - LVS-nat模式

实验环境:

一个DR负载均衡器,两个网卡,一个网桥172.17.253.132,一个主机仅192.168.10.200

两台后端服务器,一台网卡只托管192.168.10.188和192.168.10.189,实现基于lnmp的电子商务代购源码网站服务器

I. DR负载均衡器中的配置

1.yum install ipvsadm -y

2.grep -i -C 10'ipvs'/boot/config-VERSION-RELEASE.x86_64查看内核是否支持ipvs模块

3.iptables -F; setenf orce 0清除防火墙策略,关闭selinux策略

4.ipvsadm -A -t 172.17.253.132: 80 -s wrr打开基于端口80的虚拟Web服务,调度算法为wrr

5.ipvsadm -a -t 172.17.253.132: 80 -r 192.168.10.188: 80 -m -w1配置Web服务后端服务器在nat中工作,权重为1

Ipvsadm -a -t 172.17.253.132: 80 -r 192.168.10.189: 80 -m -w1

6.修改内核配置并启用路由转发

Vim /etc/sysctl.conf

把net.ipv4.ip_forward=1

Sysctl -p验证修改的内部和配置参数

2.在真实服务器中配置

Iptables -F; setenforce 0清除防火墙策略,关闭selinux策略

配置网关指向192.168.10.200,打开nginx,php-fpm,mariadb服务

路线添加defult gw 1​​92.168.10.200

三,验证

在您的浏览器上访问172.17.253.132

LVS负载均衡DR工作模式

通过直接路由(VS-DR)的虚拟服务器:使用直接路由技术实现虚拟服务器。当参与集群的计算机和作为控制管理的计算机位于同一网段时,该方法可用于在接收请求数据包时控制受管计算机。直接发送到参与集群的节点。直接路由模式是特殊的,很难说类似,前者模式基本上是在网络层(三层)上工作,而直接路由模式应该在数据链路上工作(两层)。

工作原理:DR和REAL SERVER都使用相同的IP外部服务。但是,只有DR响应ARP请求,并且所有REAL SERVER在此IP的ARP请求上保持静默。也就是说,网关都会将对服务IP的请求都指向DR,在收到数据包后,DR根据调度算法找到对应的REAL SERVER,并将目的MAC地址改为MAC。 REAL SERVER并将其发送到此站。真实服务器。此时,REAL SERVER接收此数据包,相当于直接从客户端接收数据包,并在处理后直接将其返回给客户端。由于DR需要更改第2层报头,因此DR和REAL SERVER必须位于广播域中,或者只是理解为位于同一交换机上。

当数据包进入后端服务器时,它会通过负载均衡器。当它返回时,它直接发送到客户端而不通过负载平衡器,这大大提高了效率。

LVS负载平衡DR工作流程

(a)当用户请求到达Director服务器时,请求的数据消息将首先进入内核空间的PREROUTING链。数据包的源IP地址为CIP,目标IP地址为VIP。

(b)PREROUTING检查数据包的目标IP是否为本地IP,并将数据包发送到INPUT链

(c)IPVS比较数据包请求的服务是否是集群服务。如果是,则将请求包中的源MAC地址修改为DIP的MAC地址,将目的MAC地址修改为RIP的MAC地址,然后将该包发送到POSTROUTING链。不修改源IP地址和目标IP地址。只修改源MAC地址为DIP的MAC地址,目的MAC地址为RIP的MAC地址。

(d)由于DS和RS在同一网络中,因此它们通过第二层传输。 POSTROUTING链检查目标MAC地址是RIP的MAC地址,此时数据包将发送到Real Server。

(e)RS发现请求消息的MAC地址是其自己的MAC地址并接收该消息。处理完成后,响应报文通过lo接口发送到eth0网卡,然后发送出去。源IP地址为VIP,目标IP为CIP

(f)响应消息最终传递给客户

特性:

1.确保前端路由将目标地址作为VIP数据包发送到Director服务器而不是RS

2,RS可以使用私人地址;它也可以是公共网络地址,如果使用公共网络地址,则可以通过Internet直接访问RIP

3. RS和Director Server必须位于同一物理网络中

4.所有请求消息都通过Director服务器,但响应消息不得进入Director服务器

5,不支持地址转换,不支持端口映射

6,RS可以是最常用的操作系统

7. RS网关绝不能指向DIP(因为我们不允许他通过导演)

8.在RS上的lo接口上配置VIP的IP地址

实验:负载平衡群集企业应用程序实践 - LVS-DR模式:

实验环境:一个DR负载均衡器,一个网卡172.17.253.132,桥接,两个后端服务器172.17.221.236和172.17.253.253,一个网卡,网桥

首先,在DR负载均衡器上

1.yum install ipvsadm -y

2.grep -i -C 10'ipvs'/boot/config-VERSION-RELEASE.x86_64查看内核是否支持ipvs模块

3.iptables -F; setenf orce 0清除防火墙策略,关闭selinux策略

4.ifconfig ens33: 0 172.17.253.100广播172.17.253.100网络掩码255.255.255.255 up配置VIP到本地网卡别名ens33: 0(vip地址可以是随机的),并且只播放自己,否则,后端和后端服务器在最后一个环网卡上配置vip冲突,因此后端服务器上配置的vip只会自己广播

5.route add -host 172.17.253.100 dev ens33: 0配置vip路由

6.ipvsadm -A -t 172.17.253.100: 80 -s wrr打开基于端口80的虚拟Web服务,调度模式为wrr

7.ipvsadm -a -t 172.17.253.100: 80 -r 172.17.253.132: 80 -g -w 1配置Web服务后端真实服务器以用于DR权重1

Ipvsadm -a -t 172.17.253.100: 80 -r 172.17.253.253: 80 -g -w 1

8.修改内核配置并启用路由转发

Vim /etc/sysctl.conf net.ipv4.ip_forward=1 sysctl -p使修改后的内核配置参数有效

第二,在RS后端服务器上

Iptables -F; setenforce 0清除防火墙策略,关闭selinux策略

1.ifconfig lo: 0 172.17.253.100 broadcast 172.17.253.100 netmask 255.255.255.255 up将VIP配置为本地环回网卡并仅将其广播

2.route add -host 172.17.253.100 lo: 0配置本地环回NIC路由

3。

回声'1'>的/proc/SYS /净/的IPv4/CONF/LO/arp_ignore

1仅回答目标IP地址是访问网络接口的本地地址的ARP查询请求

回声'2'>的/proc/SYS /净/的IPv4/CONF/LO/arp_announce

2为查询目标使用最合适的本地地址。在此模式下,将忽略此IP数据包的源地址,并尝试选择可与该地址通信的本地地址。

回声'1'>/proc/sys/net/ipv4/conf/all/arp_ignore echo'2'>的/proc/SYS /净/的IPv4/CONF /所有/arp_announce

关闭arp响应

(1):仅在接收请求消息的本地主机的接口上配置所请求的目标IP时才响应。

(2):您必须避免向非网络广告接口信息

4.打开web,php-fpm,mysql服务

三,验证

在您的浏览器上访问172.17.253.100(vip)。

« 机器人对话的互动设计原则 | 非理想主义的响应网格 »