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

《基于Keepalived+LVS+Web+NFS的高可用集群搭建》

目  录

1 项目概述

1.1 项目背景

1.2 项目功能

2 项目的部署

2.1  部署环境介绍

2.2  项目的拓扑结构

2.3  项目环境调试

2.4  项目的部署

2.5  项目功能的验证

2.6  项目对应服务使用的日志

3 项目的注意事项

3.1 常见问题与解决方案

3.2 项目适用背景


1 项目概述

1.1 项目背景

乙公司近年来业务规模快速扩张,线上用户量和访问量激增,现有单台Web服务器已无法承载高并发请求,导致以下问题频发:

服务响应延迟:用户访问网页时常出现卡顿,平均响应时间超过3秒,严重影响用户体验。

频繁服务中断:高峰期服务器CPU和内存利用率长期超过90%,多次因资源耗尽触发宕机。

业务损失风险:618、双十一等大促期间,订单提交失败率高达15%,直接影响公司营收。

为保障业务连续性并提升服务质量,需对现有架构进行升级,核心需求包括:

高并发支持:单台服务器峰值QPS不足1000,需扩展至多节点分担流量。

高可用保障:消除单点故障,实现故障自动切换,确保服务SLA≥99.9%。

资源统一管理:静态内容(商品图片、HTML模板)需多节点实时同步,避免人工维护不一致。

经技术评估,采用 LVS-DR + Keepalived + NFS + Nginx 架构实现:

负载均衡:通过LVS(Linux Virtual Server)将流量分发至多台Web服务器,支持横向扩展。

故障自动转移:Keepalived实现主备节点VIP漂移,切换时间<2秒。

共享存储:NFS统一托管静态资源,确保各节点内容一致性。

性能监控:集成Prometheus对服务器状态、流量调度实时监控。

本项目实施后,乙公司服务器压力问题将得到根本解决,为后续业务增长提供稳定技术支撑。

1.2 项目功能

1.1.1项目优势

高可用性:无单点故障,主备切换时间秒级。

高性能:DR模式避免LVS Director成为带宽瓶颈。

低成本:完全基于开源软件,无需硬件负载均衡设备。

易扩展:横向增加Real Server即可提升处理能力。

1.1.2 功能介绍

(1)负载均衡(LVS-DR)

功能描述:

通过Linux Virtual Server(LVS)的直接路由(DR)模式,将客户端请求分发到多台后端Real Server(Web服务器)。

调度算法:支持轮询(rr)、加权轮询(wrr)等,本项目采用rr实现简单均衡。

高性能:DR模式下,Real Server直接响应客户端,避免LVS Director成为带宽瓶颈。

技术实现:

LVS Director通过内核模块ip_vs管理流量转发。

Real Server需绑定VIP到本地回环接口(lo:1),并配置ARP抑制。

(2)高可用(Keepalived)

功能描述:

实现LVS Director的主备故障自动切换,避免单点故障。

VIP漂移:主节点故障时,备节点自动接管虚拟IP(10.1.1.140)。

健康检查:定期检测Real Server的80端口,自动剔除故障节点。

技术实现:

基于VRRP协议(虚拟路由冗余协议)实现主备协商。

通过TCP_CHECK机制监控Real Server状态。

(3)统一内容分发(NFS共享存储)

功能描述:

使用NFS(网络文件系统)在多台Web服务器间共享静态资源(如HTML、图片等),确保内容一致性。

实时同步:所有Web服务器挂载同一NFS目录,文件修改即时生效。

权限控制:通过/etc/exports限制仅允许Real Server访问。

技术实现:

NFS服务端导出目录:/nfs/web。

Web客户端挂载:mount -t nfs 10.1.1.134:/nfs/web /var/www/html/shared。

(4)Web服务(Nginx)

功能描述:

部署Nginx作为Real Server的Web服务器,提供静态内容服务。

多节点区分:通过不同index文件(如index1.html、index2.html)标识不同Real Server。

容灾测试:关闭任意Web节点后,LVS自动将流量切至存活节点。

技术实现:

Nginx配置根目录指向NFS共享路径:root /var/www/html/shared。

监听VIP和本地IP的80端口。

(5)自动化运维支持

日志监控:

Keepalived日志(/var/log/messages):记录VIP漂移和健康检查事件。

Nginx日志(/var/log/nginx/access.log):统计客户端访问情况。

一键启停:

通过systemctl管理服务(如systemctl restart keepalived)。

2 项目的部署

2.1  部署环境介绍

系统版本: CentOS 7.x

软件版本:

keepalived-1.3.5, ipvsadm-1.27, nginx-1.20.1, nfs-utils-1.3.0

2.2  项目的拓扑结构

2.3  项目环境调试

LVS-master

10.1.1.130

LVS-node01

10.1.1.131

Web01-RS

10.1.1.132

Web02-RS

10.1.1.133

NFS

10.1.1.134

VIP

10.1.1.140

全部机子都需要操作

2.3.1配置静态ip

以10.1.1.130为例

vi /etc/sysconfig/network-scripts/ifcfg-ens33

systemctl restart network

2.3.2关闭防火墙和selinux(环境是centos7,个别机子需要关闭两个防火墙)

systemctl stop firewalld

systemctl disable firewalld

systemctl stop iptables

systemctl disable iptables

vi /etc/selinux/config

将enforcing修改成disabled

#重启生效

reboot

2.3.3连通性测试

ping www.baidu.com

ping 10.1.1.140

ping 10.1.1.131

ping 10.1.1.132

ping 10.1.1.133

ping 10.1.1.134

2.4  项目的部署

2.4.1  Master节点操作(keepalived主节点10.1.1.130)

(1)修改主机名

hostnamectl set-hostname master-hn

bash

(2)安装keepalived  ipvsadm

yum -y install keepalived ipvsadm

(3)加载内核模块

modprobe  ip_vs

(4)备份keepalived配置文件

cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak

(5)修改配置文件

vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

   router_id LVS_MASTER

}

vrrp_instance VI_1 {

    state MASTER

    interface ens33

    virtual_router_id  10

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        10.1.1.140

    }

}

virtual_server 10.1.1.140 80 {

   delay_loop 15

   lb_algo rr

    lb_kind DR

!    persistence_timeout 50

    protocol TCP

    real_server 10.1.1.132 80 {

        weight 1

       TCP_CHECK {

        connect_port 80

        connect_timeout 3

        nb_get_retry 3

        delay_before_retry 4

       }

    }

     real_server 10.1.1.133 80 {

        weight 1

       TCP_CHECK {

        connect_port 80

        connect_timeout 3

        nb_get_retry 3

        delay_before_retry 4

       }

    }

}

2.4.2 node01节点操作keepalived备节点(10.1.1.131)

(1)克隆一台master节点作为node01节点并且修改ip为10.1.1.131,并且修改主机名为node01

hostnamectl set-hostname node01-hn

Bash

(2)修改备机keepalived配置文件

修改router id

修改state BACKUP

修改优先权(低于master)

注意:只需要修改这三个地方

2.4.3 keepalived服务启动,查看,关闭的方法介绍

(1)主备启动keepalived并设置开机自启和查看状态

systemctl start keepalived  #开启服务

systemctl enable keepalived  #开机自启

systemctl status keepalived  #查看状态

systemctl stop keepalived  #关闭服务

systemctl restart keepalived  #重启服务

(2)检查VIP绑定

ip addr show dev ens33

实际状态为 MASTER 的主服务器将为 ens33 接口自动添加 VIP 地址,通过 ip 命令可以查看。

10.1.1.140 是一个浮动 VIP(虚拟 IP),同一时间只有一个节点会持有这个 VIP,/32 表示这是一个单机 IP,此时只有主节点会有这个ip,从节点时没有的

(3)查看LVS规则,列出所有RS及调度状态(RR/WLC等)

ipvsadm -ln

      

(4)正常状态确认

VIP绑定正确

主节点(10.1.1.130)成功持有VIP 10.1.1.140(ip addr show显示10.1.1.140/32),备节点未绑定VIP,符合预期。

IPVS规则完整

主备节点的 ipvsadm -ln 均显示两台Real Server(10.1.1.132和10.1.1.133),调度算法为轮询(rr),转发模式为DR(Route)。

主备切换逻辑

备节点(node01)重启Keepalived后未抢占VIP,说明 state BACKUP 和 priority 配置已生效。

2.4.4 NFS配置(10.1.1.134)

(1)修改主机名

hostnamectl set-hostname NFS-hn

Bash

(2)安装 NFS 工具

yum install -y nfs-utils

(3)创建共享目录(把文件内容共享给web服务器),设置权限

mkdir -p /nfs/web

chmod 777 /nfs/web

(4)修改exports文件,把web服务器ip暴露给nfs,允许 Web 主机 IP 访问

vi /etc/exports

/nfs/web 10.1.1.132(rw,sync,no_root_squash,no_subtree_check)

/nfs/web 10.1.1.133(rw,sync,no_root_squash,no_subtree_check)

(5)启动nfs并设置开机自启

2.4.5 web(10.1.1.132和10.1.1.132)配置,搭建(RS真实后端服务器)

Web02除了IP为10.1.1.133,其他配置和web01相同

(1)修改主机名:

hostnamectl set-hostname web01-hn

Bash

(2)安装 NFS 客户端工具

yum install -y nfs-utils

(3)启动nsf服务

systemctl start nfs-server

systemctl enable nfs-server

(4)创建本地挂载点,并且把共享目录挂载到本地挂载点

mkdir -p /var/www/html/shared

mount -t nfs 10.1.1.134:/nfs/web /var/www/html/shared

如果一直挂载不能成功,查看配置都没有问题,可能是centos的防火墙iptables的问题,需要关掉重新挂载

(5)设置永久挂载

vi /etc/fstab

10.1.1.134:/nfs/web  /var/www/html/shared  nfs  defaults  0  0

mount -a测试挂载,如果无报错,说明修复成功。

    (6)df -h | grep nfs  # 查看挂载信息

    cat /var/www/html/shared/index.html  # 应显示 NFS 服务端的 IP

    (7)安装nginx

    yum install -y epel-release  # 安装 EPEL 仓库

    yum install -y nginx

    (8)启动nginx

    systemctl start nginx

    systemctl status nginx

    systemctl enable nginx

    如果启动失败

    查看80端口是否被别的应用占用,比如apache

    ss -tulnp | grep ':80'

    如果被占用可以关闭并禁止开机自启,再进行启动nginx

    systemctl stop httpd

    systemctl disable httpd

    (9)检查nfs中共享目录的内容web01和web02中是否能查看

    cd /var/www/html/shared/

    cat index.html

    2.5  项目功能的验证

    2.5.1 验证VIP漂移和LVS流量分发是否均衡

    (1)原来的状态

    关闭主机点的keepalived后的状态对比

    2.5.2 验证NFS共享

    Nfs服务器上:

    (1)查看nfs配置

    exportfs -v

    (2)创建测试文件

    echo $(hostname -I | awk '{print $1}') > /nfs/web/index.html  # 写入本机 IP 到 HTML 文件

    (3)进行测试

    暴露共享位置,一定要先启动服务再暴露位置,不然会报错

    showmount -e 10.1.1.134

    showmount -e localhost  # 显示本地导出的 NFS 共享目录

    Web01/02上:

    showmount -e 10.1.1.134  # 替换为你的 NFS 服务器 IP

    2.5.3 nginx网页测试

    (1)查看nginx的网页文件存储目录

    rpm -ql nginx |grep html

    (2)为了区分web01与web02的内容,配置nginx

    在服务器134上:

    cd /nfs/web/

    ls

    mv index.html index1.html

    echo "Web01 index.html" > index1.html

    echo "Web02 index.html" > index2.html

    在web01和web02上查看是否共享配置文件:

    Web01和web02上操作:

    vi /etc/nginx/conf.d/web01.conf

    server {

            listen 80;

        server_name 10.1.1.132;

        location / {

            root   /var/www/html/shared;

            index  index1.html;

        }

    }

    systemctl restart nginx

    vi /etc/nginx/conf.d/web02.conf

    server {

            listen 80;

        server_name 10.1.1.133;

        location / {

            root   /var/www/html/shared;

            index  index2.html;

        }

    }

    配置内核参数

    vi /etc/sysctl.conf

    net.ipv4.conf.lo.arp_ignore = 1

    net.ipv4.conf.all.arp_announce = 2

    net.ipv4.conf.lo.arp_announce = 2

    net.ipv4.ip_forward=0

    sysctl -p 更新

    添加虚拟IP(两台web对要)

    yum install -y net-tools  #安装工具包

    ifconfig lo:1 10.1.1.140 netmask 255.255.255.255 broadcast 10.1.1.140 up

    增加路由

    route add -host 10.1.1.140 dev lo:1

    route -n

    (3)正式测试nginx网页

    在网页输入虚拟ip,10.1.1.140,出现以下界面

    关掉web02

    可看到web01内容

    如果再启动web02,关掉web01

    又可以看到web02内容

    2.6  项目对应服务使用的日志

    2.6.1 Keepalived(LVS主备节点)

    日志文件:/var/log/messages

    作用:主日志文件,记录VRRP状态切换、VIP漂移、健康检查结果

    journalctl -u keepalived

    查找方法:grep keepalived /var/log/messages

    示例:

    日志文件:journalctl -u keepalived

    作用:Systemd日志,详细记录服务启停和错误(需配置log_facility后更完整)

    查看方法:journalctl -u keepalived -f

    示例:

    2.6.2 LVS(IPVS内核模块)

    日志文件:ipvsadm -lcn

    作用:实时连接状态,显示当前活动的LVS连接和RS状态

    查看方法:watch -n 1 ipvsadm -lcn

    示例:

    2.6.3 NFS Server(10.1.1.134)

    日志文件:/var/log/messages

    作用:记录NFS服务启停、客户端挂载/访问权限错误

    查看方法:grep nfs /var/log/messages

    示例:

    2.6.4 Nginx(Web1/Web2节点)

    日志文件:/var/log/nginx/access.log

    作用:所有客户端访问记录(IP、请求路径、状态码等

    查看方法:tail -f /var/log/nginx/access.log

    示例:

    日志文件:/var/log/nginx/error.log

    作用:Nginx错误日志(配置错误、权限问题等)

    查看方法:tail -f /var/log/nginx/error.log

    示例:

    日志文件:/var/log/messages

    作用:系统级Nginx服务启停记录(通过Systemd管理时)

    查看方法:grep nginx /var/log/messages

    示例:

    3 项目的注意事项

    3.1 常见问题与解决方案

    3.1.1 VIP无法漂移

    原因:VRRP组播通信被防火墙阻止,或主备节点优先级配置错误。

    解决:

    检查防火墙是否放行VRRP协议:firewall-cmd --add-rich-rule='rule protocol value="vrrp" accept' --permanent

    确认主节点priority高于备节点(如主100,备50)。

    使用tcpdump -i ens33 vrrp抓包验证组播通信。

    3.1.2 LVS规则中缺少部分Real Server

    原因:Real Server的健康检查失败(Nginx未启动或端口不通)。

    解决:

    在LVS节点测试RS端口:telnet 10.1.1.132 80

    检查RS的Nginx状态:systemctl status nginx

    查看Keepalived日志:grep "TCP_CHECK" /var/log/messages

    3.1.3 NFS挂载失败

    原因:防火墙未放行NFS端口(2049、111),或SELinux限制。

    解决:

    开放NFS端口:firewall-cmd --add-service=nfs --permanent

    临时关闭SELinux:setenforce 0

    检查挂载日志:grep mountd /var/log/messages

    3.1.4 备节点异常持有IPVS规则

    原因:备节点误配置为state MASTER。

    解决:

    修改备节点配置:state BACKUP,并降低priority(如50)。

    清理异常规则:ipvsadm -C && systemctl restart keepalived

    3.1.5 访问VIP返回502错误

    原因:Real Server未正确绑定VIP到本地回环接口。

    解决:

    在RS上执行:ifconfig lo:1 10.1.1.140 netmask 255.255.255.255 up

    添加永久路由:echo "route add -host 10.1.1.140 dev lo:1" >> /etc/rc.local

    3.1.6 NFS共享内容不同步

    原因:挂载点权限不足或客户端未重新挂载。

    解决:

    服务端设置权限:chmod -R 777 /nfs/web

    客户端强制重新挂载:mount -o remount /var/www/html/shared

    3.2 项目适用背景

    适用场景

    高并发Web服务:需要横向扩展多台Web服务器分担流量压力。

    静态资源一致性:通过NFS共享HTML、图片等静态文件,确保各节点内容一致。

    低成本高可用:利用开源软件(LVS+Keepalived)替代硬件负载均衡设备。

    不适用场景

    高性能数据库集群:LVS的DR模式不适合频繁写入的数据库负载均衡。

    跨地域部署:NFS对网络延迟敏感,异地场景建议改用CDN或分布式存储(如MinIO)。

    相关文章:

    《基于Keepalived+LVS+Web+NFS的高可用集群搭建》

    目 录 1 项目概述 1.1 项目背景 1.2 项目功能 2 项目的部署 2.1 部署环境介绍 2.2 项目的拓扑结构 2.3 项目环境调试 2.4 项目的部署 2.5 项目功能的验证 2.6 项目对应服务使用的日志 3 项目的注意事项 3.1 常见问题与解决方案 3.2 项目适用背…...

    RabbitMQ搭建集群

    要在 Windows 或 Linux&#xff08;CentOS 7.9&#xff09; 上搭建 RabbitMQ 集群&#xff0c;基本思路是&#xff1a; &#x1f5c2;️ 架构说明 主机角色IP节点名称A主节点10.152.132.1rabbitnode1B备节点10.152.132.2rabbitnode2 集群目标&#xff1a;两台 RabbitMQ 节点加…...

    时间序列预测算法中的预测概率化笔记

    文章目录 1 预测概率化的前情提要2 预测概率化的代码示例3 预测概率化在实际商业应用场景探索3.1 智能库存与供应链优化 1 预测概率化的前情提要 笔者看到【行业SOTA&#xff0c;京东首个自研十亿级时序大模型揭秘】提到&#xff1a; 预测概率化组件&#xff1a;由于大部分纯时…...

    2025-05-28 Python深度学习8——优化器

    文章目录 1 工作原理2 常见优化器2.1 SGD2.2 Adam 3 优化器参数4 学习率5 使用最佳实践 本文环境&#xff1a; Pycharm 2025.1Python 3.12.9Pytorch 2.6.0cu124 ​ 优化器 (Optimizer) 是深度学习中的核心组件&#xff0c;负责根据损失函数的梯度来更新模型的参数&#xff0c;使…...

    篇章二 数据结构——前置知识(二)

    目录 1. 包装类 1.1 包装类的概念 1.2 基本数据类型和对应的包装类 1.3 装箱和拆箱 1.4 自动装箱和自动拆箱 1.5 练习 —— 面试题 2. 泛型 2.1 如果没有泛型——会出现什么情况&#xff1f; 2.2 语法 2.3 裸类型 1.没有写<> 但是没有报错为什么&#xff1f; …...

    如果是在服务器的tty2终端怎么查看登陆服务器的IP呢

    1. 如果是在服务器的tty2终端怎么查看登陆服务器的IP呢 在服务器的 tty2 或其他终端会话中&#xff0c;要查看与该服务器的连接相关的 IP 地址&#xff0c;可以使用几种命令来获取这些信息&#xff1a; 1.1 使用 who 命令&#xff1a; who 命令可以显示当前登录到服务器上的…...

    Java求职面试:从核心技术到AI与大数据的全面考核

    Java求职面试&#xff1a;从核心技术到AI与大数据的全面考核 第一轮&#xff1a;基础框架与核心技术 面试官&#xff1a;谢飞机&#xff0c;咱们先从简单的开始。请你说说Spring Boot的启动过程。 谢飞机&#xff1a;嗯&#xff0c;Spring Boot启动的时候会自动扫描组件&…...

    ubuntu24.04与ubuntu22.04比,有什么新特性?

    Ubuntu 24.04 LTS (Noble Numbat) 相较于 Ubuntu 22.04 LTS (Jammy Jellyfish) 带来了许多重要的新特性和改进。以下是一些关键的亮点&#xff1a; Linux Kernel: Ubuntu 24.04 LTS: 搭载了更新的 Linux Kernel 6.8&#xff08;发布时&#xff09;。 Ubuntu 22.04 LTS: 发布时…...

    Flutter Container组件、Text组件详解

    目录 1. Container容器组件 1.1 Container使用 1.2 Container alignment使用 1.3 Container border边框使用 1.4 Container borderRadius圆角的使用 1.5 Container boxShadow阴影的使用 1.6 Container gradient背景颜色渐变 1.7 Container gradient RadialGradient 背景颜色渐…...

    Telegram平台分发其聊天机器人Grok

    每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

    STM32 定时器输出比较深度解析:从原理到电机控制应用 (详解)

    文章目录 定时器输出比较定时器通道结构输出比较通道(高级) PWM 信号原理输出比较 8 种工作模式互补输出概念极性选择内容 PWM硬件部分舵机直流电机及驱动简介 定时器输出比较 定时器通道结构 通道组成&#xff1a;定时器有四个通道&#xff0c;以通道一为例&#xff0c;中间是…...

    用 NGINX 还原真实客户端 IP ngx_mail_realip_module

    一、模块作用与使用前提 作用&#xff1a;解析 TCP 会话第一行的 PROXY 协议头&#xff0c;将客户端 IP/端口写回 NGINX 的内部变量&#xff0c;使后续 ngx_mail_proxy_module、认证模块、日志模块都能获取真实来源。 前提&#xff1a;监听指令中必须启用 proxy_protocol&…...

    Mysql中索引B+树、最左前缀匹配

    这里需要对索引的相关结构有一个基础的认识&#xff0c;比如线性索引&#xff0c;树形索引&#xff08;二叉树&#xff0c;平衡二叉树&#xff0c;红黑树等&#xff09;&#xff0c;这个up主我觉得讲的还是比较清楚的&#xff0c;可以看下。 终于把B树搞明白了(一)_B树的引入…...

    Python训练营打卡 Day38

    Dataset和Dataloader类 知识点回顾&#xff1a; Dataset类的__getitem__和__len__方法&#xff08;本质是python的特殊方法&#xff09;Dataloader类minist手写数据集的了解 作业&#xff1a;了解下cifar数据集&#xff0c;尝试获取其中一张图片 Dataset和Dataloader类 1. Data…...

    【机器学习基础】机器学习入门核心算法:K均值(K-Means)

    机器学习入门核心算法&#xff1a;K均值&#xff08;K-Means&#xff09; 1. 算法逻辑2. 算法原理与数学推导2.1 目标函数2.2 数学推导2.3 时间复杂度 3. 模型评估内部评估指标外部评估指标&#xff08;需真实标签&#xff09; 4. 应用案例4.1 客户细分4.2 图像压缩4.3 文档聚类…...

    Python Day37

    Task&#xff1a; 1.过拟合的判断&#xff1a;测试集和训练集同步打印指标 2.模型的保存和加载 a.仅保存权重 b.保存权重和模型 c.保存全部信息checkpoint&#xff0c;还包含训练状态 3.早停策略 1. 过拟合的判断&#xff1a;测试集和训练集同步打印指标 过拟合是指模型在训…...

    RabbitMQ集群与负载均衡实战指南

    文章目录 集群架构概述仲裁队列的使用1. 使用Spring框架代码创建2. 使用amqp-client创建3. 使用管理平台创建 负载均衡引入HAProxy 负载均衡&#xff1a;使用方法1. 修改配置文件2. 声明队列 test_cluster3. 发送消息 集群架构 概述 RabbitMQ支持部署多个结点&#xff0c;每个…...

    怎么开机自动启动vscode项目

    每次开机都得用 vscode 打开多个工程&#xff0c;然后用 vscode 里的终端启动&#xff0c;怎么设置成开机自动启动&#xff0c;省事点。 创建 bat 文件&#xff0c;用 cmd 启动&#xff0c;然后将 bat 文件放到 windows 启动文件夹中 yqp1.bat echo on cls d: cd D:\yqp\add…...

    Unity 中 Update、FixedUpdate 和 LateUpdate 的区别及使用场景

    在Unity开发中,Update、FixedUpdate 和 LateUpdate 是生命周期函数中最常见也最容易混淆的一组。 一、调用时机 方法名调用频率调用时机说明Update()每帧调用一次跟随帧率(帧率高则调用频率高)FixedUpdate()固定时间间隔调用默认每 0.02 秒执行一次LateUpdate()每帧调用一次…...

    linux安装ffmpeg7.0.2全过程

    ​编辑 白眉大叔 发布于 2025年4月16日 评论关闭 阅读(341) centos 编译安装 ffmpeg 7.0.2 &#xff1a;连接https://www.baimeidashu.com/19668.html 下载 FFmpeg 源代码 在文章最后 一、在CentOS上编译安装FFmpeg 以常见的CentOS为例&#xff0c;FFmpeg的编译说明页面为h…...

    Java中的设计模式实战:单例、工厂、策略模式的最佳实践

    Java中的设计模式实战&#xff1a;单例、工厂、策略模式的最佳实践 在Java开发中&#xff0c;设计模式是构建高效、可维护、可扩展应用程序的关键。本文将深入探讨三种常见且实用的设计模式&#xff1a;单例模式、工厂模式和策略模式&#xff0c;并通过详细代码实例&#xff0…...

    DexGarmentLab 论文翻译

    单个 专家 演示 装扮 15 任务 场景 2500+ 服装 手套 棒球帽 裤子 围巾 碗 帽子 上衣 外套 服装-手部交互 捕捉 摇篮 夹紧 平滑 任务 ...... 投掷 悬挂 折叠 ... 多样化位置 ... 多样化 变形 ... 多样化服装形状 类别级 一般化 类别级(有或没有变形) 服装具有相同结构 变形 生…...

    Elasticsearch性能优化全解析

    Elasticsearch作为一款分布式搜索和分析引擎,其性能优化是实际生产环境中必须深入研究的课题。本文基于Elastic官方文档,系统性地总结了从硬件配置、索引设计到查询优化的全链路优化策略,帮助用户构建高性能、高稳定性的集群。 Elasticsearch的优化需结合业务场景综合决策:…...

    2025.05.28【Parallel】Parallel绘图:拟时序分析专用图

    Improve general appearance Add title, use a theme, change color palette, control variable orders and more Highlight a group Highlight a group of interest to help people understand your story 文章目录 Improve general appearanceHighlight a group探索Paralle…...

    tc3975开发板上有ft2232这块的电路,我想知道这个开发板有哪些升级方式,重点关注是怎样通过ft2232实现的烧录升级的

    关于TC3975开发板上FT2232芯片支持的升级方式&#xff0c;特别是如何通过FT2232实现烧录升级的问题。首先&#xff0c;我得回忆一下FT2232的基本功能和常见应用场景。 FT2232是FTDI公司的一款双通道USB转UART/FIFO芯片&#xff0c;常用于嵌入式系统的调试和编程。它支持多种协议…...

    自动驾驶与智能交通:构建未来出行的智能引擎

    随着人工智能、物联网、5G和大数据等前沿技术的发展&#xff0c;自动驾驶汽车和智能交通系统正以前所未有的速度改变人类的出行方式。这一变革不仅是技术的融合创新&#xff0c;更是推动城市可持续发展的关键支撑。 一、自动驾驶与智能交通的定义 1. 自动驾驶&#xff08;Auto…...

    Kotlin Multiplatform与Flutter深度对比:跨平台开发方案的实战选择

    简介 在当今多平台应用开发的浪潮中,Kotlin Multiplatform与Flutter代表了两种截然不同的技术路线。KMP以"共享代码、保留原生"为核心理念,允许开发者在业务逻辑层实现高达80%的跨平台代码共享,而Flutter则采用统一渲染引擎,在UI层提供100%的代码共享率。这两种…...

    ELectron 中 BrowserView 如何进行实时定位和尺寸调整

    背景 BrowserView 是继 Webview 后推出来的高性能多视图管理工具&#xff0c;与 Webview 最大的区别是&#xff0c;Webview 是一个 DOM 节点&#xff0c;依附于主渲染进程的附属进程&#xff0c;Webview 节点的崩溃会导致主渲染进程的连锁反应&#xff0c;会引起软件的崩溃。 …...

    深兰科技董事长陈海波率队考察南京,加速AI大模型区域落地应用

    近日&#xff0c;深兰科技创始人、董事长陈海波受邀率队赴南京市&#xff0c;先后考察了南京高新技术产业开发区与鼓楼区&#xff0c;就推进深兰AI医诊大模型在南京的落地应用&#xff0c;与当地政府及相关部门进行了深入交流与合作探讨。 此次考察聚焦于深兰科技自主研发的AI医…...

    《深度关系-从建立关系到彼此信任》

    陈海贤老师推荐的书&#xff0c;花了几个小时&#xff0c;感觉现在的人与人之间特别缺乏这种深度的关系&#xff0c;但是与一个人建立深度的关系并没有那么简单&#xff0c;反正至今为止&#xff0c;自己好像没有与任何一个人建立了这种深度的关系&#xff0c;那种双方高度同频…...