小阿轩yx-LVS+Keepalived群集

news2024/10/5 19:19:09

小阿轩yx-LVS+Keepalived群集

Keepalived 双机热备份基础知识

  • 起初是专门针对 LVS 设计的一款强大的辅助工具
  • 主要用来提供故障切换(Failover)和健康检査(HealthChecking)功能—判断LVS 负载调度器、节点服务器的可用性
  • 当 master 主机出现故障及时切换到backup 节点保证业务正常
  • 当master 故障主机恢复后将其重新加入群集并且业务重新切换回 master 节点

Keepalived 概述及安装

官方网站 http://www.keepalived.org/

  • 非 LVS 群集环境中使用时,Keepalived 也可以作为热备软件使用
Keepalived 的热备方式
  • 采用 VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)热备份协议,以软件的方式实现Linux服务器的多机热备功能。
  • VRRP是针对路由器的一种备份解决方案—由多台路由器组成一个热备组,通过共用的虚拟 IP地址对外提供服务;
  • 每个热备组内同一时刻只有一台主路由器提供服务,其他路由器处于冗余状态。
  • 若当前在线的路由器失效,则其他路由器会自动接替(优先级决定接替顺序)虚拟IP地址,以继续提供服务
  • 热备组内的每台路由器都可能成为主路由器,虚拟路由器的IP地址(VIP)可以在热备组内的路由器之间进行转移,别称:漂移 IP地址
  • 使用 Keepalived 时,漂移地址的实现不需要手动建立虚接口配置文件(如 ens33:0),而是由Keepalived 根据配置文件自动管理。

Keepalived 的安装与服务控制

安装 Keepalived

首先关闭防火墙、内核机制,还要再关闭网络软件包

[root@localhost ~]# systemctl stop NetworkManager
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld

安装 Keepalived ipvsadm 所需软件包 

[root@localhost ~]# yum -y install keepalived ipvsadm

安装之后设置开机启动

[root@localhost ~]# systemctl enable keepalived

使用 Keepalived 实现双机热备

  • 基于 VRRP的热备方式,Keepalived可以用作服务器的故障切换
  • 每个热备组可以有多台服务器—最常用的就是双机热备
  • 双机热备方案中,故障切换主要针对虚拟 IP地址的漂移来实现,因此能够适用于各种应用服务器(不管是 Web、FTP、Mail,还是 SSH、DNS……)。
  • 主、备服务器中都需要安装Keepalived,使用 YUM 方式安装 httpd 提供 Web 服务。

主服务器的配置
  • Keepalived 服务的配置目录位于/etc/keepalived/。
  • keepalived.conf 是主配置文件。
  • 另外包括一个子目录 samples/
  • 在 Keepalived 的配置文件中,使用“global defs {…}”区段指定全局参数,使用vrrp_instance 实例名称{…}”区段指定 VRRP 热备参数,注释文字以“!”符号开头。

关闭防火墙

[root@localhost ~]# systemctl stop firewalld

进入keepalived文件 

[root@localhost ~]# cd /etc/keepalived/

复制keepalived文件 

[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak

  全局定义又包括两个子配置

[root@localhost keepalived]# vim keepalived.conf
//全局定义
global_defs {
     //本路由器(服务器)的名称
     router_id HA_TEST_R1
     notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_01
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

//定义 VRRP 热备实例
vrrp_instance VI_1 {
    //热备状态,MASTER 表示主服务器
    state MASTER
    //承载 VIP 地址的物理接口
    interface ens33
    //虚拟路由器的ID号,每个热备组保持一致
    virtual_router_id 1
    //优先级,数值越大优先级越高
    priority 100
    //通告间隔秒数(心跳频率)
    advert_int 1
    //认证信息,每个热备组保持一致
    authentication {
        //认证类型
        auth_type PASS
        //密码字串
        auth_pass 1111
    }
    //指定漂移地址(VIP),可以有多个
    virtual_ipaddress {
        192.168.10.172
    }
}

vrrp_strict #严格执行VRRP协议规范,此模式不支持节点单播,如果配置了此参数,vip可以漂移到这台服务器,但是ping vip不通,因此需要将此参数去掉

notification_email: 表示keepalived在发生诸如切换操作时需要发送email通知以及email发送给哪些邮件地址邮件地址可以多个每行一个

notification_email_from admin@example.com: 表示发送通知邮件时邮件源地址是谁

smtp_server 127.0.0.1: 表示发送email时使用的smtp服务器地址这里可以用本地的sendmail来实现

smtp_connect_timeout 30: 连接smtp连接超时时间

router_id node1: 机器标识,fa

启动 Keepalived 服务

[root@localhost keepalived]# systemctl start keepalived

用 ip 命令查看自动添加 VIP 地址

[root@localhost keepalived]# ip a
2: ns33: <BROADCAST,MULTICAST,UP, LOWER UP>mtu 1500 qdisc pfifo fast state UP qlen1000
    link/ether 00:0c:29:93 :80:fb brd ff:ff:ff:ff:ff:ff
    inet 172.16.16.173/24 brd 172.16.16.255 scope global ens33
        valid lft forever preferred lft forever
    //自动设置的 VIP 地址
    inet 172.16.16.172/32 scope global ens33
        valid lft forever preferred lft forever
    inet6 fe80::56be:f27:2b9b:823e/64 scope link
        valid lft forever preferred lft forever
备用服务器的配置 

同一个 Keepalived 热备组中,所有服务器 Keepalived 配置文件基本相同,包括虚拟路由器

  • ID 号
  • 认证信息
  • 漂移地址
  • 心跳频率

不同之处主要在于

  • 路由器名称
  • 热备状态
  • 优先级

路由器名称

  • 建议为每个参与热备的服务器指定不同的名称

热备状态

  • 至少应有一台主服务器,将状态设为MASTER;可以有多台备用的服务器,将状态设为 BACKUP

优先级

  • 数值越大则取得 VIP 控制权的优先级越高,因此主服务器的优先级应设为最高;其他备用服务器的优先级可依次递减,但不要相同,以免在争夺 VIP 控制权时发生冲突

配置备用服务器(可以有多台)时,可以参考主服务器的keepalived.conf 配置文件内容

只需修改

  • 路由器名称
  • 热备状态
  • 优先级

关闭防火墙、内核机制,还要再关闭网络软件包

[root@localhost ~]# systemctl stop NetworkManager
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld

进入 keepalived

[root@localhost ~]# cd /etc/keepalived/

 复制 keepalived 文件

[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak

修改 keepalived 文件

[root@localhost keepalived]# vi keepalived.conf
global_defs {
     //本路由器(服务器)的名称
     router_id HA_TEST_R2
}
     notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   #vrrp_strict
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_02
}

vrrp_instance VI_1 {
    //热备状态,BACKUP表示备用服务器
    state BACKUP
    interface ens33
    virtual_router_id 1
    //优先级,数值应低于主服务器
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.10.172
    }
}

启动 Keepalived 服务

[root@localhost ~]# systemctl start keepalived

使用 ip 命令查看地址

[root@localhost keepalived]# ip a
2: ns33: <BROADCAST,MULTICAST,UP, LOWER UP>mtu 1500 qdisc pfifo fast state UP qlen1000
    link/ether 00:0c:29:93 :80:fb brd ff:ff:ff:ff:ff:ff
    inet 172.16.16.174/24 brd 172.16.16.255 scope global ens33
        valid lft forever preferred lft forever
    inet6 fe80::56be:f27:2b9b:823e/64 scope link
        valid lft forever preferred lft forever

使用 curl 命令测试虚拟  ip 连通性

[root@localhost ~]# curl 192.168.10.172
测试双机热备功能

Keepalived 的日志消息保存在/var/log/messages 文件中,在测试主、备故障自动切换功能时,可以跟踪此日志文件来观察热备状态的变化。以针对连通性和 Web 服务的测试为例

连通性测试

  • 在客户机中执行“ping-t 172.16.16.172”命令,能够正常、持续 ping通,根据以下操作继续观察测试结果。
  • 停止启用主服务器的 Keepalived 服务,发现 ping 测试只中断了1或2个包即恢复正常,说明己有其他服务器接替 VIP地址,并及时响应客户机请求。
  • 重新启用主服务器的 Keepalived 服务,发现 ping 测试再次中断1或2个包即恢复正常,说明主服务器已恢复正常,并夺回 VIP 地址的控制权。

web访问测试

  • 客户机中访问 http://172.16.16.172/,将看到由主服务器 172.16.16.173 提供的网页文档
  • 停止启用主服务器的Keepalived 服务,再次访问上述 Web 服务,将看到由备用服务器 172.16.16.174 提供的网页文档,说明 VIP 地址已切换至备用服务器
  • 重新启用主服务器的 Keepalived 服务,再次访问上述 Web 服务,将看到重新由主服务器 172.16.16.173 提供的网页文档,说明主服务器已重新夺取 VIP 地址

查看日志记录

  • 在执行主、备服务器故障切换的过程中,分别观察各自的/var/log/messages 日志文件,可以看到 MASTER、SLAVE 状态的迁移记录。
  • 主服务器中,Keepalived 服务状态先变为“stop”,移除 VIP 地址,恢复后重新变为 MASTER
  • 备用服务器中,状态先切换为 MASTER,待主服务器恢复后再交回控制权

LVS+Keepalived 高可用群集

  • Keepalived 的设计目标是构建高可用的 LVS 负载均衡群集
  • 可以调用 ipvsadm 工具来创建虚拟服务器、管理服务器池,而不仅仅用作双机热备。
  • 使用Keepalived 构建 LVS 群集更加简便易用

主要优势体现

  • 对LVS负载调度器实现热备切换,提高可用性;
  • 对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入。

  • 使用 Keepalived 构建 LVS 群集时,也需要用到 ipvsadm 管理工具
  • 但大部分工作会由 Keepalived 自动完成

配置主调度器

全局配置、热备配置

关闭防火墙、内核机制,还要关闭网络软件包

[root@localhost ~]# systemctl stop NetworkManager
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld

安装 Keepalived ipvsadm 软件包

[root@localhost ~]# yum -y install keepalived ipvsadm

启动 Keepalived 服务

[root@localhost ~]# systemctl start keepalived

 进入 Keepalived 目录并复制 Keepalived 文件

[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak

主服务器 Keepalived 配置

[root@localhost keepalived]# vim keepalived.conf
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   //注释掉
   #vrrp_strict
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   //主调度器的名称
   router_id LVS_01
}

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 {
        //指定群集 VIP 地址
        192.168.10.172
    }
}

virtual_server 192.168.10.172 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
!    persistence_timeout 50
    protocol TCP

    real_server 192.168.10.103 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.10.104 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

persistence_timeout 50:这个参数的意义是保持客户端的请求在这个时间段内全部发到同一个真实服务器

主服务器内核参数配置

[root@localhost ~]# vim /etc/sysctl.conf
//在末尾添加
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

重启 Keepalived 服务

[root@localhost keepalived]# systemctl restart keepalived
[root@localhost keepalived]# ip add show dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:ae:7f:64 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.101/24 brd 172.16.16.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.10.172/32 scope global ens33
       valid_lft forever preferred_lft forever

配置从调度器

与主调度器基本相同,也包括

  • 全局配置
  • 热备配置
  • 服务器池配置

只需调整下面参数

  • router_id
  • state
  • priority

关闭防火墙、内核机制,还要关闭 NetworkManager

[root@localhost ~]# systemctl stop NetworkManager
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld

安装 Keepalived 服务

[root@localhost ~]# yum -y install keepalived ipvsadm

启动服务

[[root@localhost ~]# systemctl start keepalived

进入 Keepalived 目录

[root@localhost ~]# cd /etc/keepalived/

复制 Keepalived 文件 

[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak

修改 Keepalived 文件

[root@localhost keepalived]# vim keepalived.conf
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   #vrrp_strict
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   //从调度器名称
   router_id LVS_02
}

vrrp_instance VI_1 {
    //从调度器热备状态
    state BACKUP
    interface ens33
    virtual_router_id 51
    //从调度器优先级
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.10.172
    }
}

virtual_server 192.168.10.172 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
!    persistence_timeout 50
    protocol TCP

    real_server 192.168.10.101 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.10.102 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

从调度器内核参数的配置

[root@localhost ~]# vim /etc/sysctl.conf
//在末尾添加
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

重启 Keepalived 服务

[root@localhost keepalived]# systemctl restart keepalived
服务器池配置

web01 服务器配置

关闭防火墙

[root@localhost ~]# systemctl stop firewalld

安装 httpd 服务

[root@localhost ~]# yum -y install httpd

进入网络目录

[root@localhost ~]# cd /etc/sysconfig/network-scripts/

复制 lo 文件

[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0

修改 lo:0 文件

[root@localhost network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.10.172
NETMASK=255.255.255.255
ONBOOT=yes

添加配置文件 

[root@localhost network-scripts]# vim /etc/rc.local
/sbin/route add -host 192.168.10.172 dev lo:0

添加路由

[root@localhost network-scripts]# route add -host 192.168.10.172 dev lo:0

 内核参数设置 

[root@localhost ~]# 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 = 2

添加测试页面 

[root@localhost ~]# vim /var/www/html/index.html
test web01

重启网络服务

[root@localhost network-scripts]# systemctl restrt network

web02 服务配置

关闭防火墙

[root@localhost ~]# systemctl stop firewalld

安装 httpd 服务 

[root@localhost ~]# yum -y install httpd

进入 network 目录

[root@localhost ~]# cd /etc/sysconfig/network-scripts/

复制 lo 文件

[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0

修改 lo:0 文件

[root@localhost network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.10.172
NETMASK=255.255.255.255
ONBOOT=yes

添加配置文件

[root@localhost network-scripts]# vim /etc/rc.local
/sbin/route add -host 192.168.10.172 dev lo:0

内核参数设置 

[root@localhost ~]# 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 = 2

添加测试页面 

[root@localhost ~]# vim /var/www/html/index.html
test web02

 添加路由

[root@localhost network-scripts]# route add -host 192.168.10.172 dev lo:0

重启服务 

[root@localhost network-scripts]# systemctl restrt network
测试LVS+Keepalived高可用性

客户端访问网站

[root@localhost ~]# curl 192.168.10.172

刷新页面并观察网页的变化

客户端使用脚本测试

[root@localhost ~]# for i in $(seq 10);do curl http://192.168.10.172;done

生产环境中可以使用NFS服务器保证网站代码的一致性,在测试环境中为了观察效果,web服务器池中的网站代码可以不一样,更加便于观察实验效果。

测试计算机不要使用master调度器,在master调度器上访问VIP时,调度器不会将访问的请求调度到web服务器,而是自己尝试解析;在web服务器上测试时只能访问到自己的网页,无法实现调度。所以客户端一定要使用独立的测试计算机,或者使用处于BACKUP状态的调度器。

小阿轩yx-LVS+Keepalived群集

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

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

相关文章

ORB-SLAM3源码分析(案例分析)

一、ORB-SLAM3简介 ORB-SLAM3 (Oriented FAST and Rotated BRIEF SLAM 3) 是一种视觉SLAM&#xff08;Simultaneous Localization and Mapping&#xff0c;同时定位与地图构建&#xff09;系统&#xff0c;用于机器人和计算机视觉领域。它是ORB-SLAM系列的第三个版本&#xff…

吴恩达深度学习笔记:机器学习策略(2)(ML Strategy (2)) 2.7-2.8

目录 第三门课 结构化机器学习项目&#xff08;Structuring Machine Learning Projects&#xff09;第二周&#xff1a;机器学习策略&#xff08;2&#xff09;(ML Strategy (2))2.7 迁移学习&#xff08;Transfer learning&#xff09; 第三门课 结构化机器学习项目&#xff0…

鸿蒙开发设备管理:【@ohos.vibrator (振动)】

振动 说明&#xff1a; 开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 imp…

Day05-组织架构-角色管理

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.组织架构-编辑部门-弹出层获取数据2.组织架构-编辑部门-编辑表单校验3.组织架构-编辑部门-确认取消4.组织架构-删除部门5.角色管理-搭建页面结构6.角色管理-获取数…

蓝蜂网关接入天津粉尘涉爆企业风险监测预警系统指导案例

一、应用背景 按天津市应急管理部要求&#xff0c;参照《粉尘涉爆企业安全生产风险监测预警数据接入规范》。天津市已有的粉尘涉爆企业需接入物联网感知汇聚平台&#xff0c;实现数据监测。在市平台系统上实现统一的数据查询分析。通过蓝蜂MQTT网关LF220来实现与物联网感知汇聚…

磁钢生产领域上下料解决方案

随着智能制造技术的不断革新&#xff0c;磁钢生产领域正逐步引入自动化生产线。然而&#xff0c;传统的人工上下料方式存在诸多问题&#xff0c;难以满足现代生产需求。富唯智能提出了一款复合机器人磁钢上下料解决方案&#xff0c;通过先进的自动化技术&#xff0c;提高生产效…

vue3 + 百度地图 实现多坐标生成轨迹的两种种方式

本次依然是关于百度地图中常见的一个问题&#xff0c;此次共使用了两种方式并做了一些分析及处理&#xff0c;希望有所帮助。如有问题可以评论或私信。 一、便捷方式 优点&#xff1a;便捷&#xff0c;所用的api方法是根据坐标进行计算后绘制路线&#xff0c;所以路线相对准确…

【UML用户指南】-29-对体系结构建模-协作

目录 1、概念 1.1、名称 1.2、结构 1.3、行为 1.4、组织协作 2、常用建模技术 2.1、对角色建模 2.2、对用例的实现建模 2.3、对操作的实现建模 2.4、对机制建模 在UML中&#xff0c;用协作来对机制建模。协作为系统中的交互构造块指定一个名称&#xff0c;其中既包含…

Aigtek电压放大器参数有哪些

电压放大器是广泛应用于电子电路中的一种重要电路元件&#xff0c;它主要用于将输入信号的电压放大到所需的输出电压水平。在设计和使用电压放大器时&#xff0c;我们需要了解并考虑一系列的参数和特性。本文将详细介绍电压放大器的主要参数&#xff0c;包括放大倍数、带宽、输…

JAVA 对象存储OSS工具类(腾讯云)

对象存储OSS工具类 import com.qcloud.cos.COSClient; import com.qcloud.cos.ClientConfig; import com.qcloud.cos.auth.BasicCOSCredentials; import com.qcloud.cos.auth.COSCredentials; import com.qcloud.cos.model.ObjectMetadata; import com.qcloud.cos.model.PutObj…

机器学习之模型训练

前言 模型训练一般分为四个步骤&#xff1a; 构建数据集。定义神经网络模型。定义超参、损失函数及优化器。输入数据集进行训练与评估。 有了数据集和模型后&#xff0c;可以进行模型的训练与评估。 构建数据集 定义神经网络模型 class Network(nn.Cell):def __init__(sel…

第一篇——导论:数学通识课的体系和学习攻略

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 数学的认知大厦&#xff1b;之前听的时候就觉得很重要&#xff0c;本次又…

性能压测 -优化 Nginx的动静分离

两件事情 1.以后将所有的项目的静态资源都应该放在nginx里面 2.nginx 规则&#xff1a;/static/***所有请求都有nginx直接返回 nginx 配置一下配置文件&#xff0c;然后把html 的静态资源&#xff0c;绑定好是Nginx优先级高的静态资源路径&#xff0c;就去交给nginx静态资源…

h5 video 标签播放经过 java 使用 ws.schild( jave、ffmpeg ) 压缩后的 mp4 视频只有声音无画面的问题排查记录

1. 引入 ws.schild MAVEN 依赖&#xff1a; <dependency><groupId>ws.schild</groupId><artifactId>jave-all-deps</artifactId><version>3.5.0</version></dependency><dependency><groupId>ws.schild</grou…

基于Spring Boot框架的EAM系统设计与实现

摘 要&#xff1a;文章设计并实现一个基于Spring Boot框架的EAM系统&#xff0c;以应对传统人工管理模式存在的低效与信息管理难题。系统利用Java语言、JSP技术、MySQL数据库等技术栈&#xff0c;构建了一个B/S架构的高效管理平台&#xff0c;提升了资产管理的信息化水平。该系…

分班查询系统怎么制作?

新学年的临近&#xff0c;教师们的工作清单再次膨胀&#xff0c;充满各种任务。开学前的准备总是让人忙碌不已&#xff0c;从课程规划到教室布置&#xff0c;再到与家长的沟通&#xff0c;每一个环节都至关重要。尤其是分班结果的公布&#xff0c;这项工作虽然看起来简单&#…

Qwen1.5-1.8b部署

仿照ChatGLM3部署&#xff0c;参考了Qwen模型的文档&#xff0c;模型地址https://modelscope.cn/models/qwen/Qwen1.5-1.8B-Chat/summary http接口 服务端代码api.py from fastapi import FastAPI, Request from transformers import AutoTokenizer, AutoModelForCausalLM, …

强化学习后的数学原理:随机近似与梯度下降

概述 这节课的作用&#xff1a; 本节课大纲如下&#xff1a; Motivating examples 先回顾一下 mean estimation &#xff1a; 为什么总数反复提到这个 mean estimation&#xff0c;就是因为 RL 当中有非常多的 expectation&#xff0c;后面就会知道除了 state value 这些定义…

PySide6 实现资源的加载:深入解析与实战案例

目录 1. 引言 2. 加载内置资源 3. 使用自定义资源文件&#xff08;.qrc&#xff09; 创建.qrc文件 编译.qrc文件 加载资源 4. 动态加载UI文件 使用Qt Designer设计UI 加载UI文件 5. 注意事项与最佳实践 6. 结论 在开发基于PySide6的桌面应用程序时&…

博途通讯笔记1:1200与1200之间S7通讯

目录 一、添加子网连接二、创建PUT GET三、各个参数的意义 一、添加子网连接 二、创建PUT GET 三、各个参数的意义