当前位置: 首页 > news >正文

企业架构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了,而是直接响应给用户。

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

ServerTypeIP
server04负载均衡调度服务器 DS192.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上配置:

#设置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上配置:

#配置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这个开机自启配置文件。

http://www.lryc.cn/news/162520.html

相关文章:

  • Python学习之六 循环结构
  • flutter 网络地址URL转file
  • 【JavaEE基础学习打卡07】JDBC之应用分层设计浅尝!
  • Helm Kubernetes Offline Deploy Rancher v2.7.5 Demo (helm 离线部署 rancher 实践)
  • 网络编程day6——基于C/S架构封装的线程池
  • ARM/X86工业级数据采集 (DAQ) 与控制产品解决方案
  • 【Java】Jxls--轻松生成 Excel
  • MySQL主从复制读写分离
  • Kafka3.0.0版本——消费者(手动提交offset)
  • 【AIGC专题】Stable Diffusion 从入门到企业级实战0403
  • linux提权
  • Excel VSTO开发7 -可视化界面开发
  • 英文科技论文写作与发表-投稿到发表(第6章)
  • 2.4.3 【MySQL】设置系统变量
  • 【Redis】2、Redis持久化和性能管理
  • MIT6.S081实验环境搭建
  • spring spring-boot spring-cloud spring-cloud-alibaba之间版本对应关系
  • Docker技术入门 | Part01:Docker简介
  • Apache实现weblogic集群配置
  • Java面试题总结2023
  • 采用ROUANT 方法对 nex-gddp-cmip6 数据进行精度校正
  • 超级电容-电池-超级电容混合储能系统能量管理simulink仿真建模模型
  • 最新仿闲鱼链接+独立后台管理 跳转APP
  • DoIP协议——汽车以太网应用介绍
  • 标准C++day1——名字空间和堆内存管理
  • 草图大师SketchUp Pro 2023 for Mac
  • doris docker环境编译部署
  • java封装国密SM4为 jar包,PHP调用
  • 微信小程序 wx:if使用
  • SpringBoot环境MongoDB分页+去重+获取去重后的原始数据