企业架构LNMP学习笔记34

LVS-DR模式:

老师分析:

1、首先用户用CIP请求VIP

2、根据上图可以看到,不管是Director Server还是Real Server上都需要配置VIP,那么当用户请求到达我们的集群网络的前端路由器 的时候,请求数据包的源地址为CIP目标地址为VIP,此时路由器会发广播问谁是VIP,那么我们集群中所有的节点都配置有VIP,此时谁先响应路由器那么路由器就会将用户请求发给谁,这样一来我们的集群系统是不是没有意义了,那我们可以在网关路由器上配置静态路由指定VIP就是Director Server ,或者使用一种机制不让Real Server 接收来自网络中的ARP地址解析请求,这样一来用户的请求数据包都会经过Director Servrer。

3、当Director Server收到用户的请求后根据此前设定好的调度算法 结果来确定将请求负载到某台Real Server上去,假如说此时根据调度算法的结果,会将请求负载到RealServer 1上面去,此时Director Server 会将数据帧中的目标MAC地址修改为Real Server1的MAC地址,然后再将数据帧发送出去

4、当Real Server1 收到一个源地址为CIP目标地址为VIP的数据包时,Real Server1发现目标地址为VIP,而VIP是自己,于是接受数据包并给予处理,当Real Server1处理完请求后,会将一个源地址为VIP目标地址给CIP的数据包发出去,此时的响应请求就不会再经过Director Server了,而是直接响应给用户。

实际工作中,我们是没有权限更改路由器。

|----------|-----------------|-----------------------------------------|
| Server | Type | IP |
| server04 | 负载均衡调度服务器 DS | 192.168.17.110(DIP)192.168.17.205(VIP) |
| server01 | 真实服务器 RS Web服务器 | 192.168.17.107(RIP)192.168.17.205(VIP) |
| server03 | 真实服务器 RS Web服务器 | 192.168.17.109(RIP) 192.168.17.205(VIP) |

在RS上配置:

bash 复制代码
#设置arp的通告模式  通过VIP请求到DS服务器
shell > echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
shell > echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
shell > echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
shell > echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
#绑定VIP到网卡
shell > ifconfig lo:0 192.168.17.205  broadcast 192.168.17.205 netmask 255.255.255.255 up
#添加主机路由
shell > route add -host 192.168.17.205 dev lo:0

自己响应自己,通过lo速度更快一点。

添加路由,自己找自己的时候,到自己的lo网卡走进行了。

在DS上配置:

bash 复制代码
#配置DS上的VIP
shell > ifconfig ens33:0 192.168.17.205 broadcast 192.168.17.205 netmask 255.255.255.255 up
#添加主机路由
shell > route add -host 192.168.17.205 dev ens33:0
#配置转发规则
shell > ipvsadm -C
shell > ipvsadm -A -t 192.168.17.205:80 -s rr
shell > ipvsadm -a -t 192.168.17.205:80 -r 192.168.17.107 -g
shell > ipvsadm -a -t 192.168.17.205:80 -r 192.168.17.109 -g

-g 是DR工作模式

然后再进行测试:

这种配置都是临时生效的,如果要让这些永久生效。

可以放到etc/rc.local这个开机自启配置文件。

相关推荐
radient12 分钟前
Golang-GMP 万字洗髓经
后端·架构
Code季风12 分钟前
Gin Web 层集成 Viper 配置文件和 Zap 日志文件指南(下)
前端·微服务·架构·go·gin
鹏程十八少13 分钟前
9.Android 设计模式 模板方法 在项目中的实战
架构
程序员JerrySUN3 小时前
RK3588 Android SDK 实战全解析 —— 架构、原理与开发关键点
android·架构
ai小鬼头13 小时前
AIStarter如何助力用户与创作者?Stable Diffusion一键管理教程!
后端·架构·github
掘金-我是哪吒15 小时前
分布式微服务系统架构第156集:JavaPlus技术文档平台日更-Java线程池使用指南
java·分布式·微服务·云原生·架构
国服第二切图仔15 小时前
文心开源大模型ERNIE-4.5-0.3B-Paddle私有化部署保姆级教程及技术架构探索
百度·架构·开源·文心大模型·paddle·gitcode
SelectDB16 小时前
SelectDB 在 AWS Graviton ARM 架构下相比 x86 实现 36% 性价比提升
大数据·架构·aws
weixin_4373982118 小时前
转Go学习笔记(2)进阶
服务器·笔记·后端·学习·架构·golang
liulilittle18 小时前
SNIProxy 轻量级匿名CDN代理架构与实现
开发语言·网络·c++·网关·架构·cdn·通信