LVS 负载均衡集群指南

news2024/12/23 10:42:00

1. 引言

LVS (Linux Virtual Server) 虚拟服务器,是 Linux 内核中实现的负载均衡技术,以其高性能、高可靠性和高可用性而闻名。LVS 工作在 TCP/IP 协议栈的第四层 (传输层),通过将流量分配到多个后端服务器,提高系统性能、可用性和可靠性。LVS 被广泛应用于各种场景,例如网站、数据库、游戏服务器等,是构建高可用、高性能 Web 服务的利器。

2. LVS 的工作原理

LVS 集群主要由两部分组成:

  • 调度器 (Director Server):  负责接收客户端请求,并根据负载均衡算法将请求转发到后端服务器。调度器通常被称为 “虚拟服务器” (VS)。

  • 服务端服务器 (Real Server):  负责处理实际的业务请求。服务端服务器也称为 “节点服务器” (RS)。

LVS 的工作流程如下:

  1. 客户端发送请求到调度器 (VS)。

  2. 调度器 (VS) 根据负载均衡算法选择一个服务端服务器 (RS)。

  3. 调度器 (VS) 将请求转发到选定的服务端服务器 (RS)。

  4. 服务端服务器 (RS) 处理请求,并将响应返回给客户端。

  5. 响应数据包通过调度器 (VS) 返回给客户端。

3. LVS 集群中的术语

术语描述
VS (Virtual Server)调度器,负责接收客户端请求,并根据负载均衡算法将请求转发到后端服务器。
RS (Real Server)服务端服务器,负责处理实际的业务请求。
CIP (Client IP)客户端请求的 IP 地址。
VIP (Virtual IP)虚拟 IP 地址,通常为公网 IP,直接面向用户的 IP 地址。
DIP (Director Server IP)调度器的内网 IP 地址,用于与后端服务器通信。
RIP (Real Server IP)后端服务端服务器的 IP 地址。

4. LVS 的工作模式

LVS 主要有四种工作模式,每种模式都有其特点和适用场景:

  • NAT 模式 (Network Address Translation):

  • 请求和响应数据包都需要经过调度器 (VS)。

  • 调度器 (VS) 成为系统瓶颈,性能受限。

  • 支持端口映射,可以修改请求报文的目标端口。

  • 服务端服务器 (RS) 可以是任意操作系统。

  • 原理: 调度器 (VS) 修改请求报文的目标 IP 地址,将请求转发到后端服务器 (RS)。

  • 特点:

  • 适用场景:  适合小型集群,对性能要求不高,且需要修改目标端口的场景。

  • DR 模式 (Direct Routing):

  • 请求数据包经过调度器 (VS),响应数据包直接返回给客户端。

  • 调度器 (VS) 性能压力较小,适合大型集群。

  • 服务端服务器 (RS) 需要配置 VIP 地址,并设置 arp_ignorearp_announce 参数。

  • 服务端服务器 (RS) 需要在同一个物理网络中。

  • 原理: 调度器 (VS) 只修改请求报文的目的 MAC 地址,将请求转发到后端服务器 (RS)。

  • 特点:

  • 适用场景:  适合大型集群,对性能要求较高,且不需要修改目标端口的场景。

  • TUN 模式 (IP Tunneling):

  • 请求和响应数据包都需要经过调度器 (VS)。

  • 调度器 (VS) 性能压力较大,适合跨网络的集群。

  • 服务端服务器 (RS) 可以是任意操作系统。

  • 原理: 调度器 (VS) 通过 IP 隧道将请求转发到后端服务器 (RS)。

  • 特点:

  • 适用场景:  适合跨网络的集群,需要将请求转发到不同的网络。

  • Full-NAT 模式:

  • 请求和响应数据包都需要经过调度器 (VS)。

  • 调度器 (VS) 性能压力较大,适合需要隐藏服务端服务器 IP 地址的场景。

  • 服务端服务器 (RS) 可以是任意操作系统。

  • 原理: 调度器 (VS) 修改请求报文的源和目标 IP 地址,将请求转发到后端服务器 (RS)。

  • 特点:

  • 适用场景:  适合需要隐藏服务端服务器 IP 地址,且对性能要求不高的场景。

5. LVS 的调度算法

LVS 支持多种调度算法,每种算法都有其特点和适用场景:

  • 静态调度算法:

  • RR (Round Robin): 轮询调度,将请求依次分配到后端服务器。

  • WRR (Weighted Round Robin): 加权轮询调度,可以为每个服务器设置权重,权重越大,分配到的请求越多。

  • SH (Source Hashing):  源地址哈希调度,根据客户端 IP 地址进行哈希,将请求分配到固定的服务器。适合解决 Session 共享问题。

  • DH (Destination Hashing): 目标地址哈希调度,根据请求的目标地址进行哈希,将请求分配到固定的服务器。适合用于缓存服务器的负载均衡。

  • 动态调度算法:

  • LC (Least Connections): 最小连接数调度,将请求分配到连接数最少的服务器。适合用于长连接应用。

  • WLC (Weighted Least Connections): 加权最小连接数调度,根据服务器的权重和连接数进行调度。

  • SED (Shortest Expected Delay): 最短延迟调度,根据服务器的权重和连接数进行调度,优先调度延迟最小的服务器。适合用于需要快速响应的应用。

  • NQ (Never Queue):  将请求分配到空闲的服务器,如果所有服务器都有连接,则使用 SED 算法。适合用于需要高吞吐量的应用。

  • LBLC (Locality-Based Least Connections): 动态的 DH 算法,根据负载状态实现正向代理。适合用于需要根据负载状态进行动态调度的场景。

  • LBLCR (LBLC with Replication): 带复制功能的 LBLC,解决 LBLC 负载不均衡问题。适合用于需要高可用性的场景。

6. ipvsadm 工具

ipvsadm 是 LVS 的管理工具,用于添加、删除、修改 LVS 虚拟服务器和服务端服务器,以及查看 LVS 状态信息。

常用命令:

  • ipvsadm -A -t <VIP:端口> -s <算法>:  添加虚拟服务器。

  • ipvsadm -D -t <VIP:端口>:  删除虚拟服务器。

  • ipvsadm -a -t <VIP:端口> -r <RIP:端口> <模式>:  添加服务端服务器。

  • ipvsadm -d -t <VIP:端口> -r <RIP:端口>:  删除服务端服务器。

  • ipvsadm -l:  查看 LVS 虚拟服务器列表。

  • ipvsadm -n:  以数字形式显示地址、端口等信息。

7. LVS-NAT 负载均衡部署

架构图:

图片

步骤:

  1. 配置调度器:
  • 添加一块网卡,设置为仅主机模式。

  • 开启路由转发功能:net.ipv4.ip_forward = 1

  • 安装 ipvsadm 软件:yum install ipvsadm

  • 添加虚拟服务器:ipvsadm -A -t 12.0.0.1:80 -s rr

  • 添加服务端服务器:ipvsadm -a -t 12.0.0.1:80 -r 192.168.204.20:80 -m

  • 添加服务端服务器:ipvsadm -a -t 12.0.0.1:80 -r 192.168.204.30:80 -m

  1. 配置服务端服务器:
  • 安装 Web 服务 (例如 Apache 或 Nginx)。

  • 设置网关为调度器的内网 IP 地址。

  1. 配置客户端:
  • 设置网关为调度器的内网 IP 地址。

8. LVS-DR 负载均衡部署

示例:

图片

  1. 配置调度器:
  • 配置虚拟网卡,设置 VIP 地址:IPADDR=192.168.204.188NETMASK=255.255.255.255

  • 开启路由转发功能:net.ipv4.ip_forward = 1

  • 安装 ipvsadm 软件:yum install ipvsadm

  • 添加虚拟VIP:ipvsadm -A -t 192.168.204.188:80 -s rr

  • 添加服务端服务器IP:ipvsadm -a -t 192.168.204.188:80 -r 192.168.204.20:80 -g

  • 添加服务端服务器IP:ipvsadm -a -t 192.168.204.188:80 -r 192.168.204.30:80 -g

  1. 配置服务端服务器:
  • 安装 Web 服务 (例如 Apache 或 Nginx)。

  • 配置回环网卡,设置 VIP 地址:IPADDR=192.168.204.188NETMASK=255.255.255.255

  • 设置 arp_ignorearp_announce 参数:net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2

  1. 配置客户端:
  • 设置网关为调度器的内网 IP 地址。

9. LVS 性能优化

  • 优化调度算法:  选择合适的调度算法,例如 WRR 或 WLC,根据服务器的权重和连接数进行调度,提高性能和负载均衡。

  • 优化健康检查:  合理设置健康检查间隔时间,避免过频繁的健康检查,减少调度器对后端服务器的压力。

  • 使用 spread-checks 指令:  延迟发送健康检查,错峰处理,减少调度器对后端服务器的压力。

  • 优化硬件配置:  使用高性能服务器、SSD 硬盘,提高 LVS 集群的整体性能。

10. Keepalived + LVS 高可用负载均衡

Keepalived 是一款开源的高可用软件,专为 LVS 和 HAproxy 设计,提供故障自动切换 (Failover) 和节点健康状态检查 (Health Checking) 功能。它通过 VRRP (Virtual Router Redundancy Protocol) 协议实现高可用性,确保当调度器出现故障时,可以自动切换到备用调度器,保证服务的连续性。

Keepalived 的核心组件:

  • VRRP stack:  负责发送心跳线,通告虚拟 IP (VIP) 和其他信息。

  • Checkers:  负责检查后端服务器的健康状态。

  • System call:  提供通用的模块,用于在 VRRP 协议状态转换时调用脚本。

  • SMTP:  邮件组件,用于发送报警邮件。

  • IPVS wrapper:  自动生成 LVS 规则。

  • Netlink Reflector:  网络接口,用于将虚拟 IP (VIP) 地址漂浮到主调度器。

  • WatchDog:  监控进程,确保 Keepalived 进程正常运行。

Keepalived 的工作原理:

Keepalived 通过 VRRP 协议实现高可用性,VRRP 协议是一种虚拟路由冗余协议,它将多个路由器虚拟成一个组,并选举出一个主路由器,负责处理流量。当主路由器出现故障时,备用路由器会自动接管主路由器的职责,确保服务的连续性。

Keepalived 的工作流程如下:

  1. Keepalived 启动后,会加入一个 VRRP 组,并选举出一个主节点。

  2. 主节点会定期发送心跳线,通告虚拟 IP (VIP) 和其他信息。

  3. 备用节点会接收心跳线,并根据优先级判断是否需要接管主节点。

  4. 当主节点出现故障时,备用节点会自动接管主节点的职责,并成为新的主节点。

  5. 当主节点恢复正常时,会根据抢占模式决定是否重新成为主节点。

VRRP 协议相关术语:

  • 虚拟路由器:  不是真正存在的路由器,而是由多个物理路由器虚拟出来的一个组。

  • 虚拟路由器标识 (VRID):  用于标识虚拟路由器组,同一个组的路由器才能使用 VRRP 协议。

  • VIP (Virtual IP):  虚拟 IP 地址,也就是网关,对外提供服务的地址。

  • VMAC (Virtual MAC):  虚拟路由器的 MAC 地址。

  • Master:  主节点,负责处理流量。

  • Backup:  备用节点,当主节点出现故障时,会自动接管主节点的职责。

  • Priority:  优先级,优先级高的节点会成为主节点。

  • Advert_int:  心跳线报文发送间隔时间,单位为秒。

Keepalived 的三种抢占模式:

  • 抢占式 (Preempt):  当主节点出现故障时,备用节点会接管主节点的职责。当主节点恢复正常时,会立即抢占主节点的职责。

  • 非抢占式 (No Preempt):  当主节点出现故障时,备用节点会接管主节点的职责。当主节点恢复正常时,不会重新成为主节点,而是继续作为备用节点。

  • 延迟抢占模式 (Preempt Delay):  当主节点出现故障时,备用节点会接管主节点的职责。当主节点恢复正常时,会延迟一段时间,等待主节点稳定后,再重新成为主节点。

Keepalived 的安装:

6.1 Yum 安装
yum install keepalived

注意: Yum 安装的 Keepalived 版本可能较旧,建议使用编译安装方式。

6.2 编译安装
yum install gcc curl openssl-devel libnl3-devel net-snmp-devel
wget https://keepalived.org/software/keepalived-2.2.2.tar.gz
tar xf keepalived-2.2.2.tar.gz
cd keepalived-2.2.2
./configure --prefix=/usr/local/keepalived
make
make install

7. Keepalived 的配置文件

Keepalived 的配置文件通常位于 /etc/keepalived/keepalived.conf,包含以下几个部分:

  • 全局配置块 (GLOBAL CONFIGURATION):  定义邮件配置、router_id、VRRP 配置、组播地址等。

  • 虚拟路由器设置 (VRRP CONFIGURATION):  定义 VRRP 协议中,每个 VRRP 虚拟路由器的规则、基本信息。

  • LVS 设置 (LVS CONFIGURATION):  定义调度服务器和服务端服务器的规则设置。

8. Keepalived 的配置示例

global_defs {
    notification_email {
        acassen@firewall.loc
        failover@firewall.loc
        sysadmin@firewall.loc
    }
    notification_email_from Alexandre.Cassen@firewall.loc
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id LVS_DEVEL
    vrrp_skip_check_adv_addr
    #vrrp_strict
    vrrp_garp_interval 0
    vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.125.123
    }
}

virtual_server 192.168.125.123 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 0
    protocol TCP
    real_server 192.168.201.100 443 {
        ```
        weight 1
        SSL_GET {
            url {
                path /
                digest ff20ad2481f97b1754ef3e12ecd3a9cc
            }
            url {
                path /mrtg/
                digest 9b3a0c85a887a256d6939da88aabd8cd
            }
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

9. Keepalived + LVS 的实验

实验环境:

  • 主节点 (Master):  7-1 (192.168.125.100)

  • 备用节点 (Backup):  7-2 (192.168.125.120)

  • 服务端服务器1:  7-3 (192.168.125.130)

  • 服务端服务器2:  7-5 (192.168.125.150)

  • 虚拟 IP (VIP):  192.168.125.123

  • 客户端:  7-6 (192.168.125.160)

步骤:

  1. 配置服务端服务器 (7-3 和 7-5):
  • 安装 Web 服务 (例如 Apache 或 Nginx)。

  • 创建访问页面,例如 echo "7-3 keepalived" > index.html

  • 关闭长连接:keepalive off

  1. 配置主节点 (7-1):
  • 复制配置文件并备份:cp keepalived.conf keepalived.conf.bak

  • 编辑配置文件,设置 router_idinterfacevirtual_ipaddress 等参数。

  • 设置 LVS 模式为 DR:lb_kind DR

  • 设置服务端服务器信息,包括 weightTCP_CHECK

  • 安装 ipvsadm 和 keepalived:yum install ipvsadm keepalived

  • 启动 ipvsadm 服务:systemctl start ipvsadm

  • 验证服务端服务器是否配置成功:curl 192.168.125.130curl 192.168.125.150

  • 配置 Keepalived:

  • 重启 Keepalived 服务:systemctl restart keepalived.service

  • 查看虚拟 IP:ip a

  1. 配置备用节点 (7-2):
  • 安装 ipvsadm 和 keepalived:yum install ipvsadm keepalived

  • 启动 ipvsadm 服务:systemctl start ipvsadm

  • 复制主节点的 Keepalived 配置文件到备用节点。

  • 编辑配置文件,将 state 设置为 BACKUPpriority 设置为低于主节点的优先级。

  • 重启 Keepalived 服务:systemctl restart keepalived.service

  1. 配置客户端 (7-6):
  • 设置网关为调度器的内网 IP 地址。
  1. 测试主备切换:
  • 关闭主节点的 Keepalived 服务,验证备用节点是否接管主节点职责。

  • 重新启动主节点的 Keepalived 服务,验证主节点是否重新成为主节点。

10. 抢占模式

Keepalived 支持三种抢占模式,可以根据实际需求选择合适的模式:

  • 立即抢占模式 (Preempt):  当主节点出现故障时,备用节点会接管主节点的职责。当主节点恢复正常时,会立即抢占主节点的职责。

  • 非抢占模式 (No Preempt):  当主节点出现故障时,备用节点会接管主节点的职责。当主节点恢复正常时,不会重新成为主节点,而是继续作为备用节点。

  • 延迟抢占模式 (Preempt Delay):  当主节点出现故障时,备用节点会接管主节点的职责。当主节点恢复正常时,会延迟一段时间,等待主节点稳定后,再重新成为主节点。

11. 修改单播和多播地址

  • 修改多播地址:  在 Keepalived 配置文件中,使用 vrrp_mcast_group4 指令修改多播地址。

  • 修改单播地址:  在 Keepalived 配置文件中,使用 unicast_src_ipunicast_peer 指令修改单播地址。

12. 主备切换的通知脚本

Keepalived 可以通过脚本通知管理员主备切换事件。

  • 定义脚本:  在 Keepalived 配置文件中,使用 notify_masternotify_backupnotify_fault 指令定义脚本路径。

  • 编写脚本:  编写脚本,实现发送邮件、记录日志等功能。

13. 脑裂问题

脑裂问题是指在高可用集群中,由于网络故障或其他原因,导致两个节点都认为自己是主节点,从而导致数据不一致或服务中断。

预防脑裂问题的方法:

  • 使用双心跳线:  使用串行电缆和以太网电缆连接,确保即使一条线路断开,另一条线路也能正常工作。

  • 使用 Fencing 设备:  使用 Fencing 设备,当检测到脑裂时,强行关闭一个心跳节点,避免两个节点都认为自己是主节点。

14. Nginx + Keepalived 实验

实验环境:

  • 调度服务器:  7-1 (192.168.125.100)

  • 备用调度服务器:  7-2 (192.168.125.120)

  • 服务端服务器1:  7-3 (192.168.125.130)

  • 服务端服务器2:  7-5 (192.168.125.150)

  • 虚拟 IP (VIP):  192.168.125.123

  • 客户端:  7-6 (192.168.125.160)

步骤:

  1. 配置服务端服务器 (7-3 和 7-5):
  • 安装 Web 服务 (例如 Apache 或 Nginx)。

  • 创建访问页面,例如 echo "7-3 nginx" > index.html

  1. 配置服务端服务器 (7-1):
  • 复制配置文件并备份:cp keepalived.conf keepalived.conf.bak

  • 编辑配置文件,设置 router_idinterfacevirtual_ipaddress 等参数。

  • 使用 vrrp_script 模块,定义一个脚本,用于检测 Nginx 是否正常运行。

  • 使用 track_script 指令,将脚本添加到 Keepalived 的监控列表中。

  • 编辑 Nginx 配置文件,添加 upstreamlocation 配置。

  • 安装 Nginx 和 Keepalived:yum install nginx keepalived

  • 启动 Nginx 服务:systemctl start nginx

  • 配置 Nginx 负载均衡:

  • 复制 Nginx 配置文件到备用调度服务器 (7-2)。

  • 配置 Keepalived:

  • 重启 Keepalived 服务:systemctl restart keepalived.service

  1. 配置备用调度服务器 (7-2):
  • 复制配置文件并备份:cp keepalived.conf keepalived.conf.bak

  • 编辑配置文件,将 state 设置为 BACKUPpriority 设置为低于主调度服务器的优先级。

  • 使用 vrrp_script 模块,定义一个脚本,用于检测 Nginx 是否正常运行。

  • 使用 track_script 指令,将脚本添加到 Keepalived 的监控列表中。

  • 安装 Nginx 和 Keepalived:yum install nginx keepalived

  • 启动 Nginx 服务:systemctl start nginx

  • 复制主调度服务器的 Nginx 配置文件到备用调度服务器。

  • 配置 Keepalived:

  • 重启 Keepalived 服务:systemctl restart keepalived.service

  1. 配置客户端 (7-6):
  • 设置网关为调度器的内网 IP 地址。
  1. 测试主备切换:
  • 关闭主调度服务器的 Nginx 和 Keepalived 服务,验证备用调度服务器是否接管主调度服务器职责。

  • 重新启动主调度服务器的 Nginx 和 Keepalived 服务,验证主调度服务器是否重新成为主节点。

15. 总结

Keepalived + LVS 是构建高可用负载均衡集群的常见方案,可以有效地提高系统的性能、可用性和可靠性。通过本文档,您应该已经了解了 Keepalived 和 LVS 的基本概念、工作原理、部署步骤和性能优化等内容。希望这份指南能够帮助您更好地理解和使用 Keepalived + LVS,构建高性能、安全可靠的 Web 服务。

16. 进一步学习

  • Keepalived 官方网站: https://www.keepalived.org/

  • Keepalived 文档: https://www.keepalived.org/

  • LVS 官方网站: http://linuxvirtualserver.org/

  • LVS 文档: http://linuxvirtualserver.org/

  • LVS 模块: http://linuxvirtualserver.org/

注意:

  • 以上配置示例仅供参考,请根据您的实际需求进行调整。

  • 在进行任何配置更改之前,请务必备份您的配置文件,并进行测试以确保更改不会影响 LVS 或 Keepalived 的正常运行。

Keepalived + LVS 示例图:

图片

说明:

  • Keepalived 通过 VRRP 协议实现调度器的高可用性,主节点和备用节点之间通过心跳线进行通信,确保当主节点出现故障时,备用节点可以自动接管主节点的职责。

  • LVS 负责将流量分配到多个服务端服务器,提高系统的性能和可靠性。

  • 客户端只访问虚拟 IP (VIP),而不会直接访问服务端服务器。SS

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

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

相关文章

硬件工程师笔试面试知识器件篇——电阻

目录 1、电阻 1.1 基础 电阻原理图 阻实物图 1.1.1、定义 1.1.2、工作原理 1.1.3、类型 1.1.4、材料 1.1.5、标记 1.1.6、应用 1.1.7、特性 1.1.8、测量 1.1.9、计算 1.1.10、颜色编码 1.1.11、公差 1.1.12、功率 1.1.13、重要性 1.2、相关问题 1.2.1、电阻…

数组和指针 笔试题(1)

目录 0.复习 1.笔试题1 2.笔试题2 3.笔试题3 4.笔试题4 5.笔试题5 0.复习 在做笔试题之前&#xff0c;我们首先复习一下数组名的理解 数组名的所有情况&#xff1a; 1.&数组名&#xff0c;取出的是整个数组的地址 2.sizeof&#xff08;数组名&#xff09;&#x…

LLM常见问题(Attention 优化部分)

1. 传统 Attention 存在哪些问题&#xff1f; 传统的 Attention 机制忽略了源端或目标端句子中词与词之间的依赖关系。传统的 Attention 机制过度依赖 Encoder-Decoder 架构上。传统的 Attention 机制依赖于Decoder的循环解码器&#xff0c;所以依赖于 RNN,LSTM 等循环结构。传…

【Transformer】Tokenization

文章目录 直观理解分词方式词粒度-Word字粒度-Character子词粒度-Subword&#xff08;目前最常使用&#xff09; 词表大小的影响参考资料 直观理解 在理解Transformer或者大模型对输入进行tokenize之前&#xff0c;需要理解什么是token&#xff1f; 理工科的兄弟姐妹们应该都…

027集——goto语句用法——C#学习笔记

goto语句可指定代码的跳行运行&#xff1a; 实例如下&#xff1a; 代码如下&#xff1a; using System; using System.Collections.Generic; using System.Linq; using System.Security.Policy; using System.Text; using System.Threading.Tasks;namespace ConsoleApp2 { //…

采用基于企业服务总线(ESB)的面向服务架构(SOA)集成方案实现统一管理维护的银行信息系统

目录 案例 【题目】 【问题 1】(7 分) 【问题 2】(12 分) 【问题 3】(6 分) 【答案】 【问题 1】解析 【问题 2】解析 【问题 3】解析 相关推荐 案例 阅读以下关于 Web 系统设计的叙述&#xff0c;在答题纸上回答问题 1 至问题 3。 【题目】 某银行拟将以分行为主体…

是噱头还是低成本新宠?加州大学用视觉追踪实现跨平台的机器手全掌控?

导读&#xff1a; 在当今科技飞速发展的时代&#xff0c;机器人的应用越来越广泛。从工业生产到医疗保健&#xff0c;从物流运输到家庭服务&#xff0c;机器人正在逐渐改变我们的生活方式。而机器人的有效操作和控制&#xff0c;离不开高效的遥操作系统。今天&#xff0c;我们要…

OHIF Viewer (3.9版本最新版) 适配移动端——最后一篇

根据一些调用资料和尝试,OHIF 的底层用的是Cornerstonejs ,这个是基于web端写的,如果说写在微信小程序里,确实有很多报错, 第一个问题就是 npm下载的依赖, 一、运行环境差异 微信小程序的运行环境与传统的 Node.js 环境有很大不同。小程序在微信客户端中运行,有严格的…

传输大咖38 | 如何应对汽车行业内外网文件交换挑战?

在数字化浪潮的推动下&#xff0c;汽车行业正经历着前所未有的变革。随着智能网联汽车的兴起&#xff0c;内外网文件的安全交换成为了一个亟待解决的问题。本文将探讨汽车行业在内外网文件交换中遇到的难题&#xff0c;并介绍镭速如何为这些问题提供有效的解决方案。 跨网文件传…

js封装上传组件 点击拖拽上传

效果图 上传组件代码 <template><div id"appp"><label for"fileInput" class"upload" dragover"fileDragover" drop"fileDrop" v-if"log ! checkLog"><!-- <div class"jia" …

CTFHub技能树-备份文件下载-.DS_Store

目录 方法一&#xff1a;直接访问/.DS_Store文件 方法二&#xff1a;使用Python-dsstore工具解析.Dsstore文件 方法三&#xff1a;直接使用crul访问/./.DS_Store文件 .DS_Store 是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单…

中西结合治疗帕金森怎么样

中西结合治疗帕金森怎么样 中西结合治疗帕金森病是一种综合运用中医和西医治疗方法的策略&#xff0c;旨在通过各自的优势来改善患者的症状、延缓病情进展&#xff0c;并提高生活质量。西医治疗帕金森病主要依赖药物治疗&#xff0c;如左旋多巴和多巴胺受体激动剂&#xff0c;…

基于web知识库管理系统设计与实现

第二章 系统分析 2.1 知识库管理系统可行性分析 可行性分析对系统的开发至关重要&#xff0c;可以大幅减少不必要的损失&#xff0c;保证系统开发的顺利进行。因此要对系统进行技术可行性、经济可行性两方面的系统可行性分析。 2.1.1技术可行性 随着网络技术日新月异的高速…

换热站可视化:提升热能管理效率

通过图扑 HT 搭建换热站可视化解决方案&#xff0c;实时监控与数据展示&#xff0c;优化热能分配与运行管理&#xff0c;提高能源效率并降低运营成本。

俄罗斯Ozon选品三要素,简单实用的选品方法

在 Ozon 上选品可以参考以下三个要素&#xff1a; 要素一&#xff1a;市场需求 关注热门品类&#xff1a;从 Ozon 的销售数据和市场趋势来看&#xff0c;像电子产品&#xff08;如手机、耳机、智能穿戴设备等&#xff09;、时尚服饰&#xff08;包括流行服装、鞋类、配饰&…

HTTPS访问是什么?

HTTPS&#xff08;Hypertext Transfer Protocol Secure&#xff09;是一种安全的网络传输协议&#xff0c;它基于HTTP&#xff08;Hypertext Transfer Protocol&#xff0c;超文本传输协议&#xff09;进行工作&#xff0c;但增加了安全性的要求。HTTPS通过在客户端&#xff08…

glsl着色器学习(八)通用模板

下面是一个简单的通用WebGL模板 Study.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Doc…

QQ聊天记录删除了怎么恢复?学会这3个方法,简单又有效

QQ作为我们日常沟通的重要工具之一&#xff0c;其聊天记录往往承载着许多珍贵的记忆和重要的信息。但在操作中我们会不小心删除或丢失这些聊天记录&#xff0c;那么QQ聊天记录删除了怎么恢复就成为我们急切需要解决的问题。先别急&#xff0c;本文就为你介绍3种简单又有效的QQ聊…

SpringBoot 大学生体质测试管理系统

摘要 大学生体质测试管理系统提供给用户一个简单方便体质测试管理信息&#xff0c;通过留言区互动更方便。本系统采用了B/S体系的结构&#xff0c;使用了java技术以及MYSQL作为后台数据库进行开发。系统主要分为系统管理员、教师和用户三个部分&#xff0c;系统管理员主要功能…

【STM32+HAL库】---- 驱动DHT11温湿度传感器

硬件开发板&#xff1a;STM32F407VET6 软件平台&#xff1a;cubemaxkeilVScode1 DHT11工作原理 1.1 简介 DHT11温湿度传感器是一种数字式温湿度传感器&#xff0c;其工作原理基于集成了湿度感测元件和NTC温度感测元件的传感器模块。以下是DHT11温湿度传感器的工作原理&#x…