Linux系统——LVS-DR群集部署及拓展

目录

引言 

1.LVS的工作模式及其工作过程

2.列举出LVS调度算法

3.LVS调度常见算法(均衡策略)

3.1固定调度算法:rr,wrr,dh,sh

3.2动态调度算法:wlc,lc,lblc

4.LVS三种工作模式区别

一、IP隧道

二、直接路由

1.DR——直接路由概述

2.DR模式特点

3.LVS工作模式总结和比较

4.直接路由原理

三、搭建LVS-DR模式

1.准备环境

2.配置LVS-DR代理服务器

3.配置后端真实服务器

Centos7-2

Centos7-3

4.测试


引言 

1.LVS的工作模式及其工作过程

LVS有三种负载均衡的模式,分别是VS/NAT(NAT模式)、VS/DR(路由模式)、VS/TUN(隧道模式)

1.NAT模式(VS-NAT)

原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(R)。然后负载均衡器就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP)。,真实服务器响应完诘求后,查看默认路由,把响应后的数据包发送给负载均衡器,负载均衡器在接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端,

  • 优点:集样中的服务器可以使用任何支持TCP/IP的操作系统,只要负载均衡器有一个合法的IP地址。
  • 缺点;扩展性有限,当服务器节点增长过多时,由于所有的请求和应答都需要经过负我均衡器,因此负我均衡器将成为整个系统的瓶颈。 

2.直接路由模式(VS-DR) 

原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标MC地址改成后端真实服务器的MAC地址(R-MAC)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负均器。

  • 优点:负载均衡器只负责将请求包分发给后端节点服务器,而Rs将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。
  • 缺点:需要负载均衡器与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。

3.IP隧道模式(VS-TUN)

原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求报文封装一层IP隧道(T-IP)转发到真实服务器(RS)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均器。

  • 优点:负载均衡器只负责将请求包分发给后端节点服务器,而Rs将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。
  • 缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持"IP Tunneling"

IP隧道模式——VPN技术,开通VPN,架设一条专属线路,通过公司内网和互联网进行互联

2.列举出LVS调度算法

  • 轮询(Round Robin)
  • 加权轮询(weighted Round Robin)
  • 最少连接(Least Connections)
  • 加权最少连接(weighted east Connections)
  • 源地址哈希值(source hash)

3.LVS调度常见算法(均衡策略)

LVS常用的调度算法基本分为两类:固定调度算法、动态调度算法

3.1固定调度算法:rr,wrr,dh,sh

  • rr:轮询算法,将请求依次分配给不同的rs节点,即RS节点中均摊分配。适合于RS所有节点处理性能接近的情况。
  • wrr:加权轮训调度,依据不同RS的权值分配任务。权值较高的Rs将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。
  • dh:目的地址哈希调度(destination hashing)以目的地址为关键字查找一个静态hash表来获得所需RS。
  • sh:源地址哈看调度(source basbing)以源地址为关键字查找一个静态basb表来获得需要的RS

3.2动态调度算法:wlc,lc,lblc

  • wlc:加权最小连接数调度,假设各台R的权值依次为Wi,当前tcp连接数依次为?1,依次去Ti/mi为最小的RS作为下一个分配的RS。
  • lc:最小连接数调度(least-connection),IPVS表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS
  • 1blc:基于地址的最小连接数调度(locality-based  least-connection):将来自同一个目的地址的请求分配给同一台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑

4.LVS三种工作模式区别

  • NAT:通过网络地址转换实现的虚拟服务器,大并发访问时,调度器的性能成为瓶颈
  • DR:使用路由技术实现虚拟服务器,节点服务器需要配置VIP,注意MAC地址广播
  • TUN:通过隧道方式实现虚拟服务器。

一、IP隧道

  1. RIP和DIP可以不处于同一物理网络中,RS的网关一般不能指向DIP,且RIP可以和公网通信。也就是说集群节点可以跨互联网实现。DIP, VIP, RIP可以是公网地址。
  2. RealServer的通道接口上需要配置VIP地址,以便接收DIP转发过来的数据包,以及作为响应的报文源IP。
  3. DIP转发给RealServer时需要借助隧道,隧道外层的IP头部的源IP是DIP,目标IP是RIP,而RealServer响应给客户端的IP头部是根据隧道内层的IP头分析得到的,源IP是VIP,目标IP是CIP
  4. 请求报文要经由Director,但响应不经由Director,响应由RealServer自己完成
  5. 不支持端口映射
  6. RS的OS须支持隧道功能

一般来说,隧道模式常会用来负载调度缓存服务器组,这些缓存服务器一般放置在不同的网络环境,可以就近折返给客户端。在请求对象不在Cache服务器本地命中的情况下,Cache服务器要向源服务器发送请求,将结果取回,最后将结果返回给用户。

二、直接路由

1.DR——直接路由概述

直接路由(Direct Routing):简称 DR 模式,采用半开放式的网络结构,与 TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络。

负载调度器与各节点服务器通过本地网络连接,不需要建立专用的 IP 隧道直接路由,LVS默认模式,应用最广泛,通过请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变

直接路由(DR)实际上是客户端访问虚拟地址 代理服务器和真实服务器都使用虚接口,把lo回环口 配虚接口 可以让用户访问同一个IP(也就是代理服务器和真实服务器的局域网)

2.DR模式特点

  • Director和各RS都配置有VIP
  • 确保前端路由器将目标IP为VIP的请求报文发往Director
  • RS和Director要在同一个物理网络
  • 请求报文要经由Director,但响应报文不经由Director,而由RS直接发往Client
  • 不支持端口映射(端口不能修改)
  • 无需开启 ip_forward
  • RS可使用大多数OS系统
  • 在前端网关做静态绑定VIP和Director的MAC地址
  • 在RS上使用arptables工具
arptables -A IN -d $VIP -j DROP
arptables -A OUT -s $VIP -j mangle --mangle-ip-s $RIP

在RS上修改内核参数以限制arp通告及应答级别

/proc/sys/net/ipv4/conf/all/arp_ignore
#忽略ARP广播
/proc/sys/net/ipv4/conf/all/arp_announce
#无故ARP  不检测ARP

ARP(Address Resolution Protocol)地址解析协议,在封装报文的时候解决封装mac的问题;

RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络;RIP的网关不能指向DIP,以确保响应报文不会经由Director

3.LVS工作模式总结和比较

NATTUNDR
优点端口转换WAN性能最好
缺点性能瓶颈服务器支持隧道模式不支持跨网段
真实服务器要求anyTunnelingNon-arp device
支持网络private(私网)LAN/WAN(私网/公网)LAN(私网)
真实服务器数量low (10~20)High (100)High (100)
真实服务器网关lvs内网地址Own router(网工定义)Own router(网工定义)

4.直接路由原理

客户端访问外网地址12.0.0.100    12.0.0.100反馈数据给客户端

如果12.0.0.7直接反馈给客户端,客户端会丢弃数据报文

三、搭建LVS-DR模式

1.准备环境

Centos7-1作为LVS-DR代理服务器;Centos7-2和Centos7-3作为后端真实服务器;Centos7-4作为客户端

[root@localhost ~]#systemctl stop firewalld
[root@localhost ~]#setenforce 0
setenforce: SELinux is disabled
[root@node2 ~]#systemctl stop firewalld
[root@node2 ~]#setenforce 0
[root@node3 ~]#systemctl stop firewalld
[root@node3 ~]#setenforce 0
[root@G ~]#systemctl stop firewalld
[root@G ~]#setenforce 0

2.配置LVS-DR代理服务器

[root@localhost ~]#ifconfig ens33:0 192.168.241.111/32
#配置虚拟IP地址
[root@localhost ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:51:4b:b5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.241.11/24 brd 192.168.241.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.241.111/0 brd 255.255.255.255 scope global ens33:0
       valid_lft forever preferred_lft forever
    inet6 fe80::de6f:32c8:5a64:a6b2/64 scope link 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 52:54:00:53:c1:45 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
    link/ether 52:54:00:53:c1:45 brd ff:ff:ff:ff:ff:ff
[root@localhost ~]#vim /etc/sysctl.conf
#调整/proc响应参数

net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0



[root@localhost ~]#sysctl -p
#刷新配置
#调整/proc响应参数  对于 DR 群集模式来说,由于 LVS 负载调度器和各节点需要共用 VIP 地址,应该关闭 Linux 内核的重定向参数响应服务器不是一台路由器,那么它不会发送重定向,所以可以关闭该功能
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@localhost ~]#modprobe ip_vs
#加载ip_VS内核模块  ip_vs是内核模块的一个配置  是操作系统的一部分 modprobe是把ip_vs配置加载到进程中
[root@localhost ~]#cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@localhost ~]#yum install ipvsadm.x86_64 -y
[root@localhost ~]#ipvsadm-save > /etc/sysconfig/ipvsadm
#保存设置
[root@localhost ~]#systemctl start ipvsadm.service 
[root@localhost ~]#systemctl status ipvsadm.service 
● ipvsadm.service - Initialise the Linux Virtual Server
   Loaded: loaded (/usr/lib/systemd/system/ipvsadm.service; disabled; vendor preset: disabled)
   Active: active (exited) since 三 2024-03-06 14:32:38 CST; 5s ago
  Process: 6369 ExecStart=/bin/bash -c exec /sbin/ipvsadm-restore < /etc/sysconfig/ipvsadm (code=exited, status=0/SUCCESS)
 Main PID: 6369 (code=exited, status=0/SUCCESS)

3月 06 14:32:38 localhost.localdomain systemd[1]: Starting Initialise the...
3月 06 14:32:38 localhost.localdomain systemd[1]: Started Initialise the ...
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]#ipvsadm -A -t 192.168.241.111:80 -s rr
[root@localhost ~]#ipvsadm -a -t 192.168.241.111:80 -r 192.168.241.22:80 -g
[root@localhost ~]#ipvsadm -a -t 192.168.241.111:80 -r 192.168.241.23:80 -g
[root@localhost ~]#ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.241.111:80 rr
  -> 192.168.241.22:80            Route   1      0          0         
  -> 192.168.241.23:80            Route   1      0          0 
#添加真实服务器-a  指定VIP地址及TCP端口 -t   指定RIP地址及TCP端口 -r 指定DR模式 -g

ipvsadm不支持端口映射;如果是ipvsadm -a -t 192.168.241.111:80 -r 192.168.241.22:8080 -g最终还是显示80端口。

3.配置后端真实服务器

Centos7-2

[root@node2 ~]#yum install httpd -y
[root@node2 ~]#ifconfig lo:0 192.168.241.111/32
[root@node2 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet 192.168.241.111/0 scope global lo:0
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:3e:a0:08 brd ff:ff:ff:ff:ff:ff
    inet 192.168.241.22/24 brd 192.168.241.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::d9cd:6857:3bdc:7454/64 scope link 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 52:54:00:fe:22:f2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
    link/ether 52:54:00:fe:22:f2 brd ff:ff:ff:ff:ff:ff
[root@node2 ~]#systemctl start httpd
[root@node2 ~]#systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2024-03-06 01:44:08 EST; 6s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 6418 (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─6418 /usr/sbin/httpd -DFOREGROUND
           ├─6420 /usr/sbin/httpd -DFOREGROUND
           ├─6421 /usr/sbin/httpd -DFOREGROUND
           ├─6422 /usr/sbin/httpd -DFOREGROUND
           ├─6423 /usr/sbin/httpd -DFOREGROUND
           └─6424 /usr/sbin/httpd -DFOREGROUND

Mar 06 01:43:38 node2.localdomain systemd[1]: Starting The Apache HTTP Se....
Mar 06 01:43:38 node2.localdomain httpd[6418]: AH00558: httpd: Could not r...
Mar 06 01:44:08 node2.localdomain systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
[root@node2 ~]#vim /etc/sysctl.conf
#添加系统只响应目的IP为本地IP的ARP请求
#系统不使用原地址来设置ARP请求的源地址,而是物理mac地址上的IP
[root@node2 ~]#sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
[root@node2 ~]#echo cxk > /var/www/html/index.html
[root@node2 ~]#cat /var/www/html/index.html 
cxk

Centos7-3

[root@node3 ~]#yum install httpd -y
[root@node3 ~]#ifconfig lo:0 192.168.241.111/32
[root@node3 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet 192.168.241.111/0 scope global lo:0
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:6b:71:15 brd ff:ff:ff:ff:ff:ff
    inet 192.168.241.23/24 brd 192.168.241.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::f11e:5019:be57:47b8/64 scope link 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 52:54:00:9d:e9:ac brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
    link/ether 52:54:00:9d:e9:ac brd ff:ff:ff:ff:ff:ff
[root@node3 ~]#systemctl start httpd
[root@node3 ~]#systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 三 2024-03-06 14:44:03 CST; 10s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 2913 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─2913 /usr/sbin/httpd -DFOREGROUND
           ├─2923 /usr/sbin/httpd -DFOREGROUND
           ├─2924 /usr/sbin/httpd -DFOREGROUND
           ├─2925 /usr/sbin/httpd -DFOREGROUND
           ├─2926 /usr/sbin/httpd -DFOREGROUND
           └─2927 /usr/sbin/httpd -DFOREGROUND

3月 06 14:43:37 node3.node3 systemd[1]: Starting The Apache HTTP Server...
3月 06 14:44:03 node3.node3 systemd[1]: Started The Apache HTTP Server.
[root@node3 ~]#vim /etc/sysctl.conf
#添加系统只响应目的IP为本地IP的ARP请求
#系统不使用原地址来设置ARP请求的源地址,而是物理mac地址上的IP
[root@node3 ~]#sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
[root@node3 ~]#echo wyb > /var/www/html/index.html
[root@node3 ~]#cat /var/www/html/index.html 
wyb

4.测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/433185.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

逆向实战33——某东登录参数与流程分析(包含滑块)

声明 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 目标网站 aHR0cHM6Ly9wYXNzcG9ydC5qZC5jb20vbmV3L2xvZ2luLmFzcHg/UmV0dXJuVXJsPWh0dHBzJ…

CSS极速入门

CSS介绍 什么是CSS? CSS(Cascading Style Sheet),层叠样式表,用于控制页面的样式. CSS能够对网页中元素位置的排版进行像素级的精确控制,实现美化页面的效果.能够做到页面的样式和结构分离. CSS可以理解为"东方四大邪术"的化妆术. 对页面展示进行化妆. 基本语法规…

PCM会重塑汽车OTA格局吗(2)

目录 1.概述 2. PCM技术视角下的OTA 3.小结 1.概述 上一篇文章&#xff0c;我们着重讲解了OTA的概述内容&#xff0c;和意法半导体推出的跨域融合MCU的四大特征&#xff0c;其中就包含了OTA技术。 他们针对OTA做了比较创新的设计&#xff0c;在总的可用memory容量不变情况…

Ansys Zemax | 如何在OpticStudio中建模DMD(MEMS)

附件下载 联系工作人员获取附件 什么是DMD/ MEMS 下图显示了一个DMD设备&#xff0c;它单独倾斜的微镜组成。镜子通常被称为像素。 如何在OpticStudio中建模DMD 这些设备可以在序列或非序列模式下建模。 如何计算单个像素/镜子的旋转 本节将说明如何设置单个像素的旋转。像…

FEP样品瓶透明聚四氟乙烯取样瓶

一、产品介绍 FEP试剂瓶&#xff0c;也叫FEP取样瓶、特氟龙样品瓶等&#xff0c;主要用于痕量分析、同位素检测&#xff0c;ICP-MS/OES/AAS分析等高端实验。本底值低&#xff0c;金属元素铅、铀含量小于0.01ppb,无溶出与析出。 常用尺寸&#xff08;ml&#xff09;&#xff1…

2024大厂Java面试最火问题,1200页文档笔记

前言 ⽂章有点⻓&#xff0c;请耐⼼看完&#xff0c;绝对有收获&#xff01;不想听我BB直接进⼊⾯试分享&#xff1a; 准备过程蚂蚁⾦服⾯试分享拼多多⾯试分享字节跳动⾯试分享最后总结个人所得&#xff08;供大家参考学习&#xff09; 当时我⾃⼰也准备出去看看机会&#…

七、链表问题(上)

160、相交链表&#xff08;简单&#xff09; 题目描述 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个…

引领测试开发新风向:模型驱动测试的魔力

测试开发是软件开发周期中至关重要的一个环节&#xff0c;而模型驱动测试作为一种新颖的测试方法&#xff0c;为测试开发带来了新的思路和技术。本文将探讨如何利用模型驱动测试优化测试开发流程&#xff0c;提高软件质量和开发效率。 模型驱动测试在测试开发中的应用价值 模型…

计算机三级——网络技术(综合题第一题)

笔记 标准分类的IP地址&#xff1a; 类别地址范围实际可用范围说明A类0~1271.0.0.1~126.255.255.2540代表任何地址&#xff0c;127为回环测试地址B类128~191128.1.0.0~191.254.0.0128.0.0.0和191.255.0.0为保留ipC类192~223192.0.1.0~223.255.254.0192.0.0.0和223.255.255.0…

java多线程编程(四)-----线程池

一.线程池的介绍 java中的池是非常重要的思想方法&#xff0c;比如内存池&#xff0c;进程池&#xff0c;连接池&#xff0c;常量池等等。本篇重点介绍java中的线程池。这里的这些池的概念都是一样的&#xff0c;比如做饭的时候&#xff0c;有烧水&#xff0c;切菜&#xff0c…

大数据开发-Hadoop之HDFS高级应用

文章目录 HDFS回收站HDFS的安全模式定时上传数据至HDFSHDFS的高可用和高扩展HDFS写数据过程源码剖析 HDFS回收站 HDFS会为每个用户创建一个回收站目录:/user/用户名/.Trash/回收站中的数据都会有一个默认的保存周期&#xff0c;过期未恢复则会被HDFS自动彻底删除默认情况下HDF…

用友-UFIDA-NC saveDoc.ajax 存在任意文件上传漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

【投稿优惠|优质会议】【主题广范|见刊快】2024年艺术设计与公共管理国际学术会议(ICADPM 2024)

【投稿优惠|优质会议】【主题广范|见刊快】2024年艺术设计与公共管理国际学术会议(ICADPM 2024) 2024 International Conference Art and Design and Public Management 一、【会议简介】 会议主题为“艺术设计与公共管理的融合与创新”&#xff0c;将涵盖多个子主题&#xff…

罐区自动防爆气象站的功能优势

TH-FBCQX1(FB01)罐区自动防爆气象站在现代工业安全中扮演着至关重要的角色。其独特的设计和强大的功能确保了罐区在易燃易爆环境中的安全&#xff0c;同时提供了精准的气象数据&#xff0c;为企业提供了有力的决策支持。以下是罐区自动防爆气象站的主要功能优势&#xff1a; 防…

2024年Java社招面试题,字节跳动算法工程师面试总

前言 Spring让我们可以更快&#xff0c;更轻松&#xff0c;更安全地进行Java编程。Spring对速度&#xff0c;简单性和生产率的关注使其成为世界上最受欢迎的Java框架。 像阿里巴巴&#xff0c;亚马逊&#xff0c;谷歌&#xff0c;微软等在内的所有科技巨头对Spring都有很大的…

ubuntu_定制文件系统[2]-清理日志log

1.问题现象 系统长时间运行, 产生大量的系统日志 ubuntu/debian 系统日志如下 /var/log$ du -sh * 31M syslog # syslog日志 61M syslog.1 2.5G journal/ # systemd service日志 当日志文件过大, 硬盘空间占用100%时, 导致各种异常 命令按tab补全无响应服务/进程启动异常服务…

一文搞懂所有常见数据结构

一&#xff0c;概念 计算机只能处理0和1&#xff0c;计算机能把0和1转换成电路中的信号来计算&#xff0c;这个就是计算机的本质。 bit 比特 bit就是计算对数据存储的最小单元&#xff0c;只有两个值0和1&#xff0c;简写为b。 - byte 字节 8个bit1个byte字节&#xff08;8位一…

「经验」在博途中 是否可以在 LAD与STL 语言之间进行切换

用惯了STEP7&#xff0c;准确来说是SIMATIC Manager进行编程开发的同学&#xff0c;在转战TIA portal后&#xff0c;通常会经历一段“晦涩”的过度期&#xff0c;包括指令库的微小变动、工作界面的大改等等。 又比如&#xff1a;“在博途中&#xff0c;怎么快速切换LAD与STL语…

小白跟做江科大51单片机之AT24C02数据存储

1.导入Delay、key、LCD1602相关文件 2.控制逻辑 以I2C去写入&#xff0c;用AT24C02包装好&#xff0c;main调用即可 3.编写I2C代码 看着这六个状态编 图1 开和关 图2 发送一个字节 图3 接收一个字节 图4 接收和发送应答 #include <REGX52.H> sbit I2C_SCL P2^1; sbi…

纹波和噪声有啥区别?看完不会你打我!

大家好&#xff0c;我是砖一。 今天给大家分享一下电源纹波和电源噪声都是在电源输出中出现的信号波动&#xff0c;但两者存在明显的区别。 一&#xff0c;纹波 电源纹波是指电源输出时&#xff0c;叠加在稳定的直流电源上的交流成分。这种波动主要是由于电源自身的开关、PW…