LVS负载均衡群集和keepalive

目录

一. 集群概述

1.1 集群的定义

1.2 集群的分类

1.  高可用集群 HA

2. 高性能运输群集 HPC

3.负载均衡群集 LB

4.  分布式存储集群

二. LVS概述

2.1 LVS的定义

2.2 LVS的工作原理

2.3 LVS 的三种工作模式

2.4 LVS 三种工作模式的对比

2.5 LVS 调度算法

1. 静态方法

2. 动态方法

三. LVS集群创建与管理

3.1 LVS集群类型中的术语

3.2 ipvsadm工具

3.2.1 ipvsadm工具选项

3.2.2 常见操作

1. 列出规则

2. 建立集群

3. 添加后端服务器 

4. 删除后端服务器 

5. 删除集群

四. DR模式部署

4.1 配置负载调度器

4.2 配置节点服务器

五. keepalive概述

5.1 vrrp技术

5.1.2 vrrp相关术语

5.2 keepalive的定义

5.3 keepalive的功能

5.4 keepalive架构

六. 安装keepalive

6.1 centos7-yum安装

6.2 Ubuntu-apt安装

6.3 centos7-编译安装

6.4 Ubuntu-编译安装

七. keepalived的相关文件

7.1 配置组成

7.1.1 全局配置

7.1.2 配置虚拟路由器


一. 集群概述

1.1 集群的定义

集群(Cluster) 是指将多台计算机或服务器通过某种方式连接在一起,作为一个整体来提供服务或执行任务的技术架构。

1.2 集群的分类

1. 高可用集群 HA

目标:确保服务的高可用性,减少停机时间。

实现方式:通过冗余节点和故障转移机制,当主节点故障时,备用节点立即接管服务。

例如:Keepalived、heartbeat

2. 高性能运输群集 HPC

目标:通过并行计算解决复杂的科学计算或数据处理任务

实现方式:将任务分解为多个子任务,分配到多个节点并行执行。

3.负载均衡群集 LB

目标:将请求或任务均匀分配到多个节点,提高系统性能和资源利用率。

实现方式:通过负载均衡器(如LVS、Nginx、HAProxy)将请求分发到后端服务器。

例如:LVS、Nginx

4.  分布式存储集群

目标:提供高可用、可扩展的存储服务。

实现方式:将数据分布到多个节点存储,并通过冗余机制确保数据安全。


二. LVS概述

2.1 LVS的定义

LVS(Linux Virtual Server) 是一种基于 Linux 内核的高性能、高可用的负载均衡技术,用于将客户端请求分发到多个后端服务器节点,以提高系统的处理能力和可用性。

2.2 LVS的工作原理

  1. 客户端发起请求

    • 客户端通过访问 LVS 的虚拟 IP(VIP)发起请求。
  2. 负载均衡器接收请求

    • 负载均衡器接收客户端的请求,并根据预定义的调度算法选择一个后端服务器节点。
  3. 请求分发

    • 负载均衡器将请求转发到选定的后端服务器节点。
    • 转发方式取决于 LVS 的工作模式(NAT、DR 或 TUN)。
  4. 后端服务器处理请求

    • 后端服务器节点处理请求并生成响应。
  5. 响应返回客户端

    • 后端服务器将响应返回给客户端。
    • 返回方式取决于 LVS 的工作模式(NAT、DR 或 TUN)。

2.3 LVS 的三种工作模式

1. NAT 模式

  • 工作原理

    1. 客户端发送请求到 LVS 的虚拟 IP(VIP)。

    2. 负载均衡器将请求的源 IP 地址修改为自身的 IP 地址,并将请求转发到后端服务器。

    3. 后端服务器处理请求,并将响应返回给负载均衡器。

    4. 负载均衡器将响应的目标 IP 地址修改为客户端的 IP 地址,并将响应返回给客户端

2. DR 模式

  • 工作原理

    1. 客户端发送请求到 LVS 的虚拟 IP(VIP)。

    2. 负载均衡器将请求直接转发到后端服务器,不修改 IP 地址。

    3. 后端服务器处理请求,并直接将响应返回给客户端。

 3. TUN 模式

  • 工作原理
    1. 客户端发送请求到 LVS 的虚拟 IP(VIP)。
    2. 负载均衡器通过 IP 隧道将请求封装并转发到后端服务器。
    3. 后端服务器解封装请求,处理请求,并直接将响应返回给客户端。

2.4 LVS 三种工作模式的对比

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

2.5 LVS 调度算法

分为两种:

静态方法: 不管后端真实服务器的 状态,根据自身 算法进行调度

动态方法: 会根据后端服务器的状态来进行调度

1. 静态方法

轮询(RR):将请求依次分发到每个后端服务器节点。

加权轮询(WRR):根据后端服务器的权重分发请求,权重越高,分配的请求越多

源地址哈希(SH):根据客户端的源 IP 地址哈希值分发请求,确保同一客户端的请求被分发到同一台后端服务器。

目标地址哈希(DH):通过让后端服务器直接响应客户端请求来优化性能和简化配置。

2. 动态方法

最小连接数(LC):将请求分发到当前连接数最少的后端服务器节点。

加权最小连接数(WLC):根据后端服务器的权重和连接数分发请求。

预期延迟最短(SED):选择预期延迟最短的后端服务器来处理请求。

空闲(NQ):优先选择 空闲 的后端服务器,如果没有空闲服务器,则退化为 SED 算法。

基于地址的最小连接数(LBLC):基于 请求的源地址 和 后端服务器的活动连接数 进行分发,确保同一客户端的请求被分发到同一台后端服务器。


三. LVS集群创建与管理

3.1 LVS集群类型中的术语

  1. VS(代理服务器):Virtual Server,Director Server(DS), Dispatcher(调度器),Load Balancer(lvs服务器) 代理服务器

  2. RS(真实服务器):Real Server(lvs), upstream server(nginx), backend server(haproxy)(真实服务器)

  3. CIP:Client IP(客户机IP) 客户机的ip

  4. VIP:Virtual serve IP VS外网的IP 代理服务器的 外网ip

  5. DIP:Director IP VS内网的IP 代理服务器的 内网ip

  6. RIP:Real server IP 真实服务器的 ip地址

3.2 ipvsadm工具

LVS集群通过ipvsadm工具创建管理

3.2.1 ipvsadm工具选项

-A: 添加虚拟服务器
-D: 删除整个虚拟服务器
-s: 指定负载调度算法(轮询: rr、加权轮询: wrr、最少连接: lc、加权最少连接: wlc  默认的 )
-a: 添加真实服务器(节点服务器)
-d: 删除某一个节点
-t: 指定VIP地址及TCP端口
-r: 指定RIP地址及TCP端口
-m: 表示使用NAT群集模式
-g: 表示使用DR模式
-i: 表示使用TUN模式
-w: 设置权重(权重为0时表示暂停节点)
-p 60: 表示保持长连接60秒
-l: 列表查看 LVS虚拟服务器(默认为查看所有)
-n: 以数字形式显示地址、端口等信息,常与"-l“选项组合使用。ipvsadm -ln

3.2.2 常见操作

1. 列出规则
ipvsadm -L
2. 建立集群
格式:
ipvsadm -A -t <虚拟IP>:<端口> -s <调度算法>例子:
ipvsadm -A -t  192.168.91.188:80 -s rr
3. 添加后端服务器 
格式:
ipvsadm -a -t <虚拟IP>:<端口> -r <后端服务器IP>:<端口> -g -w <权重>例子:
ipvsadm -a -t 192.168.91.188:80 -r  192.168.91.100:80  -g
4. 删除后端服务器 
格式:
ipvsadm -d -t <虚拟IP>:<端口> -r <后端服务器IP>:<端口>例子:
ipvsadm -d -t 192.168.91.188:80 -r 192.168.91.100:80
5. 删除集群
格式:
ipvsadm -D -t <虚拟IP>:<端口>例子:
ipvsadm -D -t 192.168.91.188:80

四. DR模式部署

4.1 配置负载调度器

ubuntu 调度器配置1.更新系统并安装 ipvsadm
apt update
apt install ipvsadm -y2.添加虚拟IP(VIP)
ifconfig ens33:0 192.168.52.188/243.配置LVS规则
添加虚拟服务器(VIP)并设置调度算法为轮询(rr):
ipvsadm -A -t 192.168.52.188:80 -s rr
添加真实服务器(RIP):
ipvsadm -a -t 192.168.52.188:80 -r 192.168.52.100:80 -g
ipvsadm -a -t 192.168.52.188:80 -r 192.168.52.101:80 -g4.修改内核参数:
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使配置生效:
sudo sysctl -p

4.2 配置节点服务器

centos7-13真实服务器1配置1.安装Nginx:
sudo yum install epel-release -y
sudo yum install nginx -y
sudo systemctl start nginx2.设置测试页面
echo "7-13" > /usr/share/nginx/html/index.html3.修改内核参数
vim /etc/sysctl.conf
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 = 24.添加虚拟IP(VIP)
ifconfig ens33:0 192.168.52.188/24
centos7-14 真实服务器2配置yum install epel-release -y
yum install nginx -y
systemctl start nginx"7-14" > /usr/share/nginx/html/index.htmlvim /etc/sysctl.conf
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 = 2sysctl -pifconfig ens33:0 192.168.52.188/24

测试
在集群外的新机器上测试:
curl 192.168.52.188
多次执行 curl 命令,观察返回的内容是否在 7-13 和 7-14 之间轮换。

五. keepalive概述

5.1 vrrp技术

VRRP 是一种用于实现 路由器高可用性的网络协议。它通过将多个路由器组成一个虚拟路由器组,并分配一个虚拟 IP 地址(VIP),确保在主路由器故障时,备用路由器能够接管流量,从而实现网络服务的连续性。

5.1.2 vrrp相关术语

虚拟路由器(Virtual Router):由多个物理路由器组成的一个逻辑路由器。

虚拟 IP 地址(VIP):虚拟路由器对外提供的 IP 地址,客户端通过该 IP 地址访问网络服务。

主路由器(Master Router):在虚拟路由器组中,负责转发流量的路由器,持有虚拟 IP 地址。

备用路由器(Backup Router):在主路由器故障时,接管流量并成为新的主路由器,平时处于监听状态,不转发流量。

优先级(Priority):用于选举主路由器的参数,优先级越高,越有可能成为主路由器。

5.2 keepalive的定义

Keepalived 是一个用于实现 高可用性负载均衡的开源软件。它基于 VRRP(Virtual Router Redundancy Protocol) 协议,通过虚拟 IP(VIP)的切换来确保服务的连续性,同时可以与 LVS(Linux Virtual Server) 集成,提供负载均衡功能。

5.3 keepalive的功能

  1. 基于vrrp协议完成地址流动

  2. 为vip地址所在的节点生成ipvs规则(在配置文件中预先定义)

  3. 为ipvs集群的各RS做健康状态检测

  4. 基于脚本调用接口完成脚本中定义的功能,进而影响集群事务,以此支持nginx、haproxy等服务

5.4 keepalive架构

  1. vrrp stack:VIP消息通告 虚拟ip

  2. checkers:监测real server(简单来说 就是监控后端真实服务器的服务)是否存活

  3. system call:实现 vrrp 协议状态转换时调用脚本的功能

  4. SMTP:邮件组件(报警邮件)

  5. IPVS wrapper:生成IPVS规则(直接生成ipvsadm)

  6. Netlink Reflector:监控网络接口状态变化

  7. WatchDog:监控进程(整个架构是否有问题)

六. 安装keepalive

6.1 centos7-yum安装

yum  install   keepalived  -yvim /etc/keepalived/keepalived.conf#修改 interface eth0 为
interface ens33 systemctl start keepalived.servicesystemctl status keepalived.service

6.2 Ubuntu-apt安装

apt updateapt install keepalived -ycp /usr/share/doc/keepalived/samples/keepalived.conf.sample  /etc/keepalived/keepalived.confvim /etc/keepalived/keepalived.conf#修改interface eth0为
interface ens33systemctl start keepalivedsystemctl status keepalived

6.3 centos7-编译安装

yum install gcc curl openssl-devel libnl3-devel net-snmp-devel  -y
# 安装依赖包环境https://keepalived.org/download.html
# 官网下载安装包mkdir -p /data/cd /data/wget https://keepalived.org/software/keepalived-2.2.2.tar.gztar  xf   keepalived-2.2.2.tar.gzcd   keepalived-2.2.2/./configure --prefix=/usr/local/keepalivedmake   &&  make  install#编译好后起不来没有配置文件/etc/keepalived/keepalived.confmkdir    /etc/keepalivedcp /usr/local/keepalived/etc/keepalived/keepalived.conf  /etc/keepalived/keepalived.confsed  -i   's/eth0/ens33/' /etc/keepalived/keepalived.confsystemctl start keepalivedsystemctl status keepalived

6.4 Ubuntu-编译安装

ubuntu尽可能安装比较新的keepalive安装包

cd /optapt update && apt -y install make gcc ipvsadm build-essential pkg-config automake autoconf libipset-dev libnl-3-dev libnl-genl-3-dev libssl-dev libxtables-dev libip4tc-dev libip6tc-dev libmagic-dev libsnmp-dev libglib2.0-dev libpcre2-dev libnftnl-dev libmnl-dev libsystemd-devhttps://keepalived.org/download.html
# 官网下载安装包wget https://keepalived.org/software/keepalived-2.3.3.tar.gztar  xf   keepalived-2.3.3.tar.gzcd   keepalived-2.3.3/./configure --prefix=/usr/local/keepalivedmake  -j2 &&  make  installmkdir    /etc/keepalivedcp /usr/local/keepalived/etc/keepalived/keepalived.conf.sample  /etc/keepalived/keepalived.confvim /etc/keepalived/keepalived.conf#interface ent0改为
interface ens33systemctl start keepalivedsystemctl status keepalived

七. keepalived的相关文件

  • 软件包名:keepalived

  • 主程序文件:/usr/sbin/keepalived

  • 主配置文件:/etc/keepalived/keepalived.conf

7.1 配置组成

7.1.1 全局配置

global_defs {notification_email {root@localhost#keepalived 发生故障切换时邮件发送的目标邮箱,可以按行区分写多个root@localhost360601212@qq.com 
}notification_email_from keepalived@localhost  #发邮件的地址smtp_server 127.0.0.1     
#邮件服务器地址smtp_connect_timeout 30   
#邮件服务器连接timeoutrouter_id   LVS01
#每个keepalived主机唯一标识,建议使用当前主机名,但多节点重名不影响vrrp_skip_check_adv_addr  
#对所有通告报文都检查,会比较消耗性能,启用此配置后,如果收到的通告报文和上一个报文是同一个路由器,则跳过检查,默认值为全检查vrrp_strict 
#严格遵守VRRP协议,启用此项后以下状况将无法启动服务:1.无VIP地址 2.配置了单播邻居 3.在VRRP版本2中有IPv6地址,开启动此项并且没有配置vrrp_iptables时会自动开启iptables防火墙规则,默认导致VIP无法访问,建议不加此项配置。vrrp_garp_interval 0 
#gratuitous ARP messages 免费ARP报文发送延迟,0表示不延迟vrrp_gna_interval 0 
#unsolicited NA messages (不请自来)消息发送延迟vrrp_mcast_group4 225.0.0.18
#指定组播IP地址范围:224.0.0.0到239.255.255.255,默认值:224.0.0.18 vrrp_iptables        
#此项和vrrp_strict同时开启时,则不会添加防火墙规则,如果无配置vrrp_strict项,则无需启用此项配置
}

7.1.2 配置虚拟路由器

vrrp_instance <STRING> {
#<String>为vrrp的实例名,一般为业务名称配置参数......}#配置参数:
state MASTER|BACKUP
#当前节点在此虚拟路由器上的初始状态,状态为MASTER或者BACKUPinterface IFACE_NAME 
#绑定为当前虚拟路由器使用的物理接口,如:eth0,bond0,br0,可以和VIP不在一个网卡virtual_router_id VRID 
#每个虚拟路由器惟一标识,范围:0-255,每个虚拟路由器此值必须唯一,否则服务无法启动,同属一个虚拟路由器的多个keepalived节点必须相同,务必要确认在同一网络中此值必须唯一priority 100 
#当前物理节点在此虚拟路由器的优先级,范围:1-254,值越大优先级越高,每个keepalived主机节点此值不同advert_int 1
#vrrp通告的时间间隔,默认1sauthentication { 
#认证机制auth_type AH|PASS   
#AH为IPSEC认证(不推荐),PASS为简单密码(建议使用)auth_pass <PASSWORD> 
#预共享密钥,仅前8位有效,同一个虚拟路由器的多个keepalived节点必须一样
}include    /etc/keealived/conf.d/*.conf
virtual_ipaddress { 
#虚拟IP,生产环境可能指定上百个IP地址<IPADDR>/<MASK> brd <IPADDR> dev <STRING> scope <SCOPE> label <LABEL>
192.168.200.100 
#指定VIP,不指定网卡,默认为,注意:不指定/prefix,默认为/32192.168.200.101/24 dev eth1   
#指定VIP的网卡,建议和interface指令指定的岗卡不在一个网卡192.168.200.102/24 dev eth2 label eth2:1 
#指定VIP的网卡label   ifconfig eth2:1   192.168.200.102/24
}track_interface { 
#配置监控网络接口,一旦出现故障,则转为FAULT状态实现地址转移
eth0
eth1…
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ZTE 7551N 中兴小鲜60 远航60 努比亚小牛 解锁BL 刷机包 刷root 展讯 T760 bl

ZTE 7551N 中兴小鲜60 远航60 努比亚小牛 解锁BL 刷机包 刷root 3款机型是一个型号&#xff0c;包通用&#xff0c; ro.product.system.modelZTE 7551N ro.product.system.nameCN_P720S15 #################################### # from generate-common-build-props # Th…

单片机-STM32部分:12、I2C

飞书文档https://x509p6c8to.feishu.cn/wiki/MsB7wLebki07eUkAZ1ec12W3nsh 一、简介 IIC协议&#xff0c;又称I2C协议&#xff0c;是由PHILP公司在80年代开发的两线式串行总线&#xff0c;用于连接微控制器及其外围设备&#xff0c;IIC属于半双工同步通信方式。 IIC是一种同步…

Virtualized Table 虚拟化表格 el-table-v2 表头分组 多级表头的简单示例

注意添加这个属性,会影响到有多少个层级的表头: :header-height“[50, 40]”,即后面的columnIndex 如果有fix的列CustomizedHeader会被调用多次,如果有多个层级的表头,也会被调用多次, 实际被调用次数是(fix数 1 * 表头层级数量) 以下代码均删除了JSX TS版本代码 <templ…

防御保护-----第十二章:VPN概述

文章目录 第二部分&#xff0c;数据安全第十二章&#xff1a;VPN概述VPN概述VPN分类VPN关键技术隧道技术身份认证技术加解密技术数据认证技术 数据的安全传输密码学发展史 对称加密算法 --- 传统密码算法密钥解释流加密分组加密 --- 块加密算法填充算法PKCS7算法分组模式 公钥密…

前端项目打包部署流程j

1.打包前端项目(运行build这个文件) 2.打包完成后&#xff0c;控制台如下所示:(没有报错即代表成功) 3.左侧出现dist文件夹 4.准备好我们下载的nginx(可以到官网下载一个),然后在一个没有中文路径下的文件夹里面解压。 5.在继承终端内打开我们的项目&#xff0c;找到前面打包好…

Go语言标识符

文章目录 标识符的组成规则Go语言关键字预定义标识符标识符命名惯例 特殊标识符标识符访问权限控制 在Go语言中&#xff0c;标识符(Identifier)是用来命名变量、函数、类型、常量等程序实体的名称。 标识符的组成规则 1、必须以字母或下划线(_)开头&#xff1a; 字母包括Unico…

CST软件对OPERACST软件联合仿真汽车无线充电站对人体的影响

上海又收紧了新能源车的免费上牌政策。所以年前一些伙伴和我探讨过买新能源汽车的问题&#xff0c;小伙伴们基本纠结的点是买插电还是纯电&#xff1f;我个人是很抗拒新能源车的&#xff0c;也开过坐过。个人有几个观点&#xff1a; 溢价过高&#xff0c;不保值。实际并不环保…

吴恩达机器学习笔记:多变量梯度下降

1.多维特征 之前我们探讨了单变量/特征的回归模型&#xff0c;现在我们对房价模型增加更多的特征&#xff0c;例如房间数楼层等&#xff0c;构成一个含有多个变量的模型&#xff0c;模型中的特征为 &#xff08; x 1 &#xff0c; x 2 &#xff0c; x 3... x n &#xff09; &…

【Linux Nano Vim快捷键大全】

Nano 快捷键大全 常用高频操作 功能描述快捷键组合替代按键/备注使用频率显示帮助CtrlGF1高保存文件CtrlOF3高退出编辑器CtrlXF2高剪切当前行CtrlKF9高粘贴内容CtrlUF10高搜索文本CtrlWF6高替换文本Ctrl\AltR高撤销操作AltU无中重做操作AltE无中跳转到行号Ctrl_AltG中插入文件…

uniapp vue 沉浸式窗体如何获取并排除外部手机浏览器底部菜单栏工具栏高度

这个问题可以简称为&#xff1a;uniapp vue 获取可视窗口高度 第一种方案&#xff0c;只改变css样式 /* 不考虑浏览器UI的最小视口高度 */ .element {height: 100svh; /* small viewport height */ }/* 考虑浏览器UI变化的动态视口高度 */ .element {height: 100dvh; /* dyna…

React Native告别图标体积大手动更换慢的噩梦:让图标更新像修改文字一样简单

写在前面:凌晨三点的图标战争 “所有图标都要换成圆角风格,明天上线!”——产品经理这条消息弹出时,我的保温杯差点从手中滑落。扫了一眼项目中的347个图标文件,我知道今晚又是个不眠夜。但就在绝望之际,同事发来一个GIF:他只是在终端输入了iconfont-rn --update,所有…

自然语言处理与BI融合实战:ChatBI动态语义解析技术架构剖析

在数字经济时代&#xff0c;数据已成为企业核心竞争力的关键要素。如何高效挖掘数据价值、实现智能化决策&#xff0c;成为企业数字化转型的核心命题。传统商业智能&#xff08;BI&#xff09;工具虽具备强大的数据处理能力&#xff0c;但其技术门槛高、交互方式复杂等局限性日…

鸿蒙OSUniApp开发支持多语言的国际化组件#三方框架 #Uniapp

使用UniApp开发支持多语言的国际化组件 在全球化的今天&#xff0c;一个优秀的应用往往需要支持多种语言以满足不同地区用户的需求。本文将详细讲解如何在UniApp框架中实现一套完整的国际化解决方案&#xff0c;从而轻松实现多语言切换功能。 前言 去年接手了一个面向国际市场…

SpringBoot的外部化配置

一、什么是外部化配置 外部化配置是指把应用程序中各种可配置的参数、属性等信息&#xff0c;从代码内部提取出来&#xff0c;放置在外部的配置文件、数据库或配置中心等地方&#xff08;比如使用.properties、.yml 或.xml 等格式的文件&#xff09;进行管理。提高应用程序的可…

SQL中联表的运用

当出现要大量数据去查询时&#xff0c;不要一个个去SQL查询&#xff0c;应该要批量的去查询。 def batch_cavity_query(self, fuseids): “”“批量查询cavity信息”“” if not fuseids: return {} # 创建临时表批量查询 try:# 创建临时表self.cursor.execute("CREATE …

React面试常问问题详解

以下是30个React面试中常见的问题及简要解析&#xff0c;涵盖基础概念、核心原理、性能优化、Hooks、状态管理等方面&#xff0c;适用于初中高级开发者准备面试时参考&#xff1a; 一、React 基础与核心概念 React 是什么&#xff1f; React 是由 Facebook 开发的用于构建用户界…

【vite好用的配置】自动导入组件、vue中的hook、路径解析、打包配置、本地运行反向代理配置

前言 之前出了一篇自己搭建 后台管理系统的文章&#xff0c;今天顺便把vite配置&#xff0c;涉及到的一些给大家分享吧。 按需食用哈。 文章目录 前言一、 自动导入vue中的hook、ref等1. 安装插件2. 配置 Vite&#xff08;vite.config.ts 或 vite.config.js&#xff09;1&…

思科(Cisco ASA/Firepower)、华三(H3C)、华为(Huawei USG)防火墙 的基础配置

以下是针对 思科&#xff08;Cisco ASA/Firepower&#xff09;、华三&#xff08;H3C&#xff09;、华为&#xff08;Huawei USG&#xff09;防火墙 的基础配置指南&#xff0c;涵盖 区域划分、安全策略、NAT、路由 等核心功能。配置示例基于通用场景&#xff0c;实际部署时需根…

mac latex vscode 配置

mac latex vscode 配置 安装mactex.pkg 这里有个快速下载的镜像 https://mirrors.aliyun.com/CTAN/systems/mac/mactex/ 可以检查是否将 PATH 写入 export PATH"/Library/TeX/texbin:$PATH"vscode 下载插件 Latex Workshop 在配置文件 settings.json 中输入如下的…

AI日报 · 2025年5月14日|Android 生态大型更新与多端 Gemini 集成

1、Google “Android Show: I/O Edition” 汇总&#xff1a;设计、安全、Gemini 三线并进 北京时间 5 月 14 日凌晨&#xff08;原文标注 5 月 13 日 PDT&#xff09;&#xff0c;Google 在 I/O 前夕举办的 Android Show 一口气公布四大方向更新&#xff1a;① Mater…