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

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…
}

相关文章:

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. 静态…...

在 Excel 中有效筛选重复元素

如果是新版excel UNIQUE(FILTER(D2:D19, COUNTIF(D2:D19, D2:D19)>1)) 旧版 Excel&#xff08;如 2019/2016/2013&#xff09; 使用方法&#xff1a;在 E2 单元格输入此公式。按 Ctrl Shift Enter&#xff08;数组公式&#xff09;。向下拖动填充至空白行为止。 IFERROR…...

Apache Pulsar 消息、流、存储的融合

Apache Pulsar 消息、流、存储的融合 消息队列在大层面有两种不同类型的应用&#xff0c;一种是在线系统的message queue&#xff0c;一种是流计算&#xff0c;data pipeline的streaming高throughout&#xff0c;一致性较低&#xff0c;延迟较差的过程。 存算分离 扩容和缩容快…...

最优化方法Python计算:有约束优化应用——线性可分问题支持向量机

设问题的数据样本点 ( x i , y i ) (\boldsymbol{x}_i,y_i) (xi​,yi​)&#xff0c; x i ∈ R n \boldsymbol{x}_i\in\text{R}^n xi​∈Rn&#xff0c; y i 1 y_i\pm1 yi​1&#xff0c; i 1 , 2 , ⋯ , m i1,2,\cdots,m i1,2,⋯,m。由于标签数据 y i ∈ { − 1 , 1 } y_i\…...

Linux 离线安装 Docker 和 Docker Compose 最新版 的完整指南

一、准备工作 1. 下载安装包​&#xff08;需在有网络的机器操作&#xff09;&#xff1a; Docker 引擎&#xff1a;从官方仓库下载最新二进制包 wget https://download.docker.com/linux/static/stable/x86_64/docker-24.0.6.tgz​Docker Compose&#xff1a;下载最新二进制…...

SpringBoot学习(上) , SpringBoot项目的创建(IDEA2024版本)

目录 1. SpringBoot介绍 SpringBoot特点 2. SpringBoot入门 2.1 创建SpringBoot项目 Spring Initialize 第一步: 选择创建项目 第二步: 选择起步依赖 第三步: 查看启动类 2.2 springboot父项目 2.3 测试案例 2.3.1 数据库 2.3.2 生成代码 1. SpringBoot介绍 Spring B…...

数据结构(四)——栈的应用—数制转换

利用栈进行数制转换&#xff1a; 十进制转换八进制&#xff1a;先将十进制数除以八得到余数&#xff0c;余数入栈&#xff0c;然后将得到的商继续除以八&#xff0c;直到商为零 #include <stdio.h> #include <stdlib.h>#define MAXSIZE 100//数制转换//定义链表节…...

多视角系统,视角之间的切换,输入操作。无人机Pawn视角的实现

一.创建自己的PlayerController。它相当于是灵魂&#xff0c;穿梭在不同Pawn之间。也即是切换视角。不同输入的响应也写在这里。这样即使&#xff0c;都有鼠标操作&#xff0c;也能区分。避免了代码的重复耦合。也可以叫做视角系统。 class LZJGAMEMODE_API ALZJPlayerControl…...

【Redis 进阶】哨兵模式

思维导图&#xff1a; 一、哨兵模式概述 &#xff08;一&#xff09;传统主从复制模式的局限性 在传统的Redis主从复制架构中&#xff0c;若主节点发生故障&#xff0c;运维人员需手动执行故障转移操作&#xff0c;将一个从节点提升为新主节点&#xff0c;并逐一通知所有客户…...

掌控随心 - 服务网格的流量管理艺术 (Istio 实例)

掌控随心 - 服务网格的流量管理艺术 (Istio 实例) 想象一下,没有服务网格的时候,我们要实现像“将 1% 的用户流量导入到新版本应用”、“根据用户设备类型访问不同后端”、“模拟下游服务故障”这类高级流量策略,通常需要在代码、负载均衡器、API 网关等多个地方进行复杂且分…...

在服务器排查java某个线程导致CPU飙高教程

&#x1f9e9; 第一步&#xff1a;确定是哪个线程占用 CPU 高 1.1 使用 top 或 htop 命令查看高 CPU 的 Java 进程 top -Hp <Java进程PID>-H 表示显示线程级别&#xff1b;-p 后面跟 Java 主进程的 PID&#xff1b;你会看到各个线程的 CPU 使用情况&#xff0c;找出使用…...

电子商城后台管理平台-Flask Vue项目开发

电子商城后台管理系统 电子商城后台管理平台-Flask 项目开发 文章目录 前言网课内容数据库参数用户模块/user/前端LESS 的语法使用LESS 的特点 ui登录页面主页页面头部左边aside 菜单main主体后端main页面设置用户-角色-权限商品分类商品信息图片保存到项目里面订单数据展示 网…...

Lettuce 节点刷新、连接优化与 Spring 升级适配全解析:从环境约束到生产验证

引言 在分布式系统中&#xff0c;Redis 作为高性能缓存中间件被广泛使用。随着 Spring 生态的迭代&#xff08;尤其是 Spring Boot 2.0 的普及&#xff09;&#xff0c;Lettuce 逐渐取代 Jedis 成为 Redis 客户端的 “默认选择”。但开发者常面临三个核心问题&#xff1a;Let…...

CVE-2025-31258 macOS远程视图服务沙箱逃逸漏洞PoC已公开

苹果公司近日针对macOS系统中新披露的CVE-2025-31258漏洞发布补丁&#xff0c;该漏洞可能允许恶意应用程序突破沙箱限制&#xff0c;获取未授权的系统资源访问权限。在安全研究员Seo Hyun-gyu公开概念验证&#xff08;PoC&#xff09;利用代码后&#xff0c;该漏洞已在macOS Se…...

UDP协议详细讲解及C++代码实例

目录 一、UDP协议概述二、UDP通信流程1)数据传输2)无连接 三、关键点解析1&#xff09; 套接字创建2&#xff09;无连接特性3&#xff09;数据传输 四、总结 UDP协议详细讲解及C代码实例 一、UDP协议概述 UDP&#xff08;User Datagram Protocol&#xff0c;用户数据报协议&a…...

武汉大学无人机视角下的多目标指代理解新基准!RefDrone:无人机场景指代表达理解数据集

作者&#xff1a;Zhichao Sun, Yepeng Liu, Huachao Zhu, Yuliang Gu, Yuda Zou, Zelong Liu, Gui-Song Xia, Bo Du, Yongchao Xu 单位&#xff1a;武汉大学计算机学院 论文标题&#xff1a;RefDrone: A Challenging Benchmark for Drone Scene Referring Expression Compreh…...

【递归、搜索和回溯】二叉树中的深搜

个人主页 &#xff1a; zxctscl 专栏 【C】、 【C语言】、 【Linux】、 【数据结构】、 【算法】 如有转载请先通知 文章目录 前言1 2331. 计算布尔二叉树的值1.1 分析1.2 代码 2 129. 求根节点到叶节点数字之和2.1 分析2.2 代码 3 814. 二叉树剪枝3.1 分析3.2 代码 4 98. 验证…...

Algolia - Docsearch的申请配置安装【以踩坑解决版】

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;CSDN博客专家   &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01…...

Linux513 rsync本地传输 跨设备传输 一

ping节点bPing通 仅主机模式不需要设置网关节点a也可以Ping通节点b 同步成功 下载文件夹成功 今日源码 节点a 节点b...

leetcode 383. Ransom Note

题目描述 代码 class Solution { public:bool canConstruct(string ransomNote, string magazine) {vector<int> table(26,0);for(char ch : magazine){table[ch-a];}for(char ch : ransomNote){table[ch-a]--;if(table[ch-a] < 0)return false;}return true;} };...

Skyvern:用 AI+视觉驱动浏览器自动化

Skyvern&#xff1a;用 AI视觉驱动浏览器自动化 一、前言二、项目概览2.1 Skyvern 项目简介2.2 代码结构与模块划分 三、环境搭建与快速上手3.1 环境准备3.1.1 系统与依赖3.1.2 克隆项目3.1.3 安装 Python 依赖3.1.4 配置环境变量3.1.5 启动服务 3.2 验证安装 四、核心功能与实…...

数据库原理期末考试速成--最后附带两套题

引言 为什么从3开始呢,毕竟是速成吗,总要放弃一些东西 前两章1.概论 2.关系数据库:这里面都是一些运算符什么的,我感觉都学这个:笛卡尔积之列的都会算 这两章比较重要的我就放在这里了 选择、投影、连接、除、并、交、差,其中选择、投影、并、差、笛卡尔积是5种基本关…...

《探索React Native社交应用中WebRTC实现低延迟音视频通话的奥秘》

WebRTC&#xff0c;全称为Web Real-Time Communication&#xff0c;是一项开创性的开源技术&#xff0c;为Web和移动应用开启了实时通信的大门。它打破了传统通信的束缚&#xff0c;使得应用之间无需依赖繁琐的中间服务器&#xff0c;就能实现直接的点对点通信&#xff0c;这是…...

关于vue 本地代理

接口调用&#xff1a;其中我们可以约定一个拦截的标识&#xff0c; 用来给本地 http://localhost/ 进行代理要请求的测试地址https:abc.com 例子&#xff1a; axios.post(/OwnRateReport/-------------------------------------------------------00001)devServer: {proxy: {/…...

#跟着若城学鸿蒙#HarmonyOS NEXT学习之Blank组件详解

一、组件介绍 Blank&#xff08;空白&#xff09;组件是HarmonyOS NEXT中一个简单但非常实用的UI组件&#xff0c;它主要用于在布局中创建空白区域&#xff0c;帮助开发者更灵活地控制界面元素之间的间距和布局结构。虽然Blank组件本身不显示任何内容&#xff0c;但它在界面设…...

PX4开始之旅(二)通过自定义 MAVLink 消息与 QGroundControl (QGC) 通信

核心知识点&#xff1a;通过自定义 MAVLink 消息与 QGroundControl (QGC) 通信 1. 通俗易懂的解释 想象一下&#xff0c;MAVLink 就像是无人机&#xff08;飞控&#xff09;和地面站&#xff08;QGroundControl&#xff09;之间约定好的一种“语言”。这种语言有很多标准的“…...

数据结构基础--蓝桥杯备考

1.优缺点总述 STL中各容器对比图 各类线性数据结构优缺点 1.数组 1.优点 1.简单&#xff0c;容易理解 2.访问快捷&#xff0c;只需要用下标就可以 3.有某些应用场景直接对应&#xff0c;例如二维数组对应平面 2.缺点 删除和插入数据非常耗时 2.链表 1.优点 插入和删…...

2.4GHz无线通信芯片选型指南:集成SOC与低功耗方案解析

今天给大家分享几款2.4GHz无线通信芯片方案&#xff1a; 一、集成SOC芯片方案 XL2407P&#xff08;芯岭技术&#xff09; 集成射频收发机和微控制器&#xff08;如九齐NY8A054E&#xff09; 支持一对多组网和自动重传 发射功率8dBm&#xff0c;接收灵敏度-96.5dBm&#xff08…...

安卓刷机模式详解:Fastboot、Fastbootd、9008与MTK深刷

安卓刷机模式详解&#xff1a;Fastboot、Fastbootd、9008与MTK深刷 一、刷机模式对比 1. Fastboot模式 简介&#xff1a;传统安卓底层刷机模式&#xff0c;通过USB连接电脑操作优点&#xff1a;支持大多数安卓设备&#xff0c;操作相对简单缺点&#xff1a;需要设备进入特定…...

Unity_JK框架【5】音效系统实现

在游戏开发中&#xff0c;音频是不可或缺的一部分&#xff0c;它能够极大地增强游戏的沉浸感和趣味性。今天&#xff0c;我们就用JK框架 探讨一下如何在Unity中实现一个强大的音频系统&#xff0c;并且通过实际的测试脚本来验证其功能&#x1f44f;。 一、音频模块类&#xff1…...