_**工作原理:
DR和REAL SERVER都是用同一个IP对外服务。但只有DR对ARP请求进行响应,所有REAL SERVER对本身这个IP的ARP请求保持静默。也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的REAL SERVER,把目的MAC地址改为REAL SERVER的MAC并发给这台REAL SERVER。这时REAL SERVER收到这个数据包,则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端。由于DR要对二层包头进行改换,所以DR和REAL SERVER之间必须在一个广播域,也可以理解为在同一台交换机上。**_
白话文:客户端发起一个http请求,我要上网,那么这个请求发给DR(调度均衡服务器),DR看这个请求的MAC地址是那个然后发给对应的RS(真实服务器),RS直接把回应发给client。
基础环境:
Centos7.7
DR:
DIP:11.11.11.10 VIP:11.11.11.13
RS1:
RIP:11.11.11.11 VIP:11.11.11.13
RS2:
RIP:11.11.11.12 VIP:11.11.11.13
1、关闭防火墙和SELINUX
[root@d ~]# systemctl stop firewalld
[root@rs1 ~]# systemctl stop firewalld
[root@rs2 ~]# systemctl stop firewalld
[root@d ~]# setenforce 0
[root@rs1 ~]# setenforce 0
[root@rs2 ~]# setenforce 0
2、DR操作
(1)配置VIP和路由转发
[root@d ~]# ifconfig ens32:0 11.11.11.13 broadcast 11.11.11.13 netmask 255.255.255.255 up
[root@d ~]# route add -host 11.11.11.13 dev ens32:0
[root@d ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1 #开启路由转发功能
(2)安装集群管理工具并进行配置
[root@d ~]# yum install -y ipvsadm
[root@d ~]# ipvsadm -A -t 11.11.11.13:80 -s wrr
[root@d ~]# ipvsadm -a -t 11.11.11.13:80 -r 11.11.11.11 -g -w 1
[root@d ~]# ipvsadm -a -t 11.11.11.13:80 -r 11.11.11.12 -g -w 1
-A在服务器列表中新添加一条新的虚拟服务器记录
-t表示为tcp服务
-s使用的调度算法
-a在服务器表中添加一条新的真实主机记录
-r真实服务器地址
-m指定LVS工作模式为NAT模式
-g指定LVS工作模式为直接路由模式(LVS默认的模式)
-w真实服务器的权值
3.RS操作
[root@rs1 ~]# ifconfig lo:0 11.11.11.13 broadcast 11.11.11.13 netmask 255.255.255.255 up
#配置VIP到本地回环网卡lo上,并只广播自己
[root@rs1 ~]# route add -host 11.11.11.13 lo:0
#配置本地回环网卡路由
[root@rs1 ~]# echo “1” > /proc/sys/net/ipv4/conf/lo/arp_ignore
#1只回答目标IP地址是来访网络接口本地地址的ARP查询请求
[root@rs1 ~]# echo “2” > /proc/sys/net/ipv4/conf/lo/arp_announce
#2对查询目标使用最适当的本地地址,在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址
[root@rs1 ~]# echo “1” > /proc/sys/net/ipv4/conf/all/arp_ignore
#1仅在请求的目标IP配置在本地主机的接收到请求报文的接口上,才给予回应
[root@rs1 ~]# echo “2” > /proc/sys/net/ipv4/conf/all/arp_announce
#2必须避免将接口信息向非本网络进行通告
[root@rs2 ~]# ifconfig lo:0 11.11.11.13 broadcast 11.11.11.13 netmask 255.255.255.255 up
[root@rs2 ~]# route add -host 11.11.11.13 lo:0
[root@rs2 ~]# echo “1” > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@rs2 ~]# echo “2” > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@rs2 ~]# echo “1” > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@rs2 ~]# echo “2” > /proc/sys/net/ipv4/conf/all/arp_announce
4.RS进行测试
[root@rs1 ~]# yum install -y httpd
[root@rs1 ~]# echo “test” > /var/www/html/index.html && systemctl restart httpd
[root@rs2 ~]# yum install -y httpd
[root@rs2 ~]# echo “test” > /var/www/html/index.html && systemctl restart httpd
DR模式负载均衡完成啦!
实验原理:就是不端的转化dest地址,利用了nat原理(一目了然)
搭建LVS的NAT模式环境
基础环境: Centos7.7
4台虚拟机
client: CIP:192.168.1.17
lvs: 内网:11.11.11.10 外网:192.168.1.16
RS1:内网:11.11.11.11
RS2: 内网:11.11.11.12
192.168.1.0网段网络为我虚拟机桥接网络,11.11.11.0为仅主机网段
1.关闭防火墙和selinux
[root@d ~]# systemctl stop firewalld
[root@rs1 ~]# systemctl stop firewalld
[root@rs2 ~]# systemctl stop firewalld
[root@client ~]# systemctl stop firewalld
[root@d ~]# setenforce 0
[root@rs1 ~]# setenforce 0
[root@rs2 ~]# setenforce 0
[root@client ~]# setenforce 0
2.lvs服务器配置
写在最后
作为一名即将求职的程序员,面对一个可能跟近些年非常不同的 2019 年,你的就业机会和风口会出现在哪里?在这种新环境下,工作应该选择大厂还是小公司?已有几年工作经验的老兵,又应该如何保持和提升自身竞争力,转被动为主动?
就目前大环境来看,跳槽成功的难度比往年高很多。一个明显的感受:今年的面试,无论一面还是二面,都很考验Java程序员的技术功底。
最近我整理了一份复习用的面试题及面试高频的考点题及技术点梳理成一份“Java经典面试问题(含答案解析).pdf和一份网上搜集的“Java程序员面试笔试真题库.pdf”(实际上比预期多花了不少精力),包含分布式架构、高可扩展、高性能、高并发、Jvm性能调优、Spring,MyBatis,Nginx源码分析,Redis,ActiveMQ、Mycat、Netty、Kafka、Mysql、Zookeeper、Tomcat、Docker、Dubbo、Nginx等多个知识点高级进阶干货!
由于篇幅有限,为了方便大家观看,这里以图片的形式给大家展示部分的目录和答案截图!
Java经典面试问题(含答案解析)
阿里巴巴技术笔试心得
cat、Netty、Kafka、Mysql、Zookeeper、Tomcat、Docker、Dubbo、Nginx等多个知识点高级进阶干货!**
由于篇幅有限,为了方便大家观看,这里以图片的形式给大家展示部分的目录和答案截图!
[外链图片转存中…(img-vNJUpJi7-1714416199023)]
Java经典面试问题(含答案解析)
[外链图片转存中…(img-fE9DALOK-1714416199023)]
阿里巴巴技术笔试心得
[外链图片转存中…(img-ZGT3A5FW-1714416199023)]