【运维高级内容--KEEPALIVED高可用集群】

news2024/9/22 13:43:23

目录

1.简介

2.实现master/slave的 Keepalived 单主架构

3.vip通行 (ping通:

4.启用日志功能

5.实现独立子配置文件

6.非抢占式模式

7.抢占延迟模式

8.单播配置

9.keepalived状态切换的通知脚本

10.双主结构:两个虚拟路由(多主模式,不同的VIP

11.keepalived+lvs

12.利用脚本实现主从角色切换

13.keepalived+haproxy


1.简介

集群类型

LB:Load Balance 负载均衡

LVS/HAProxy/nginx(http/upstream, stream/upstream)

HA:High Availability 高可用集群

数据库、Redis

SPoF: Single Point of Failure,解决单点故障

HPC:High Performance Computing 高性能集群

实现高可用

提升系统高用性解决方案:降低MTTR- Mean Time To Repair(平均故障时间) 解决方案:建立冗余机制

2.实现master/slave的 Keepalived 单主架构

创建四台主机ka1、ka2、realserver1、realserver2

#ka1--172.25.254.10:

yum install keepalived -y

systemctl stop firewalld

rpm -ql keepalived #查看文件

/etc/keepalived/keepalived.conf #主配置文件

vim /etc/keepalived/keepalived.conf

global_defs {
    notification_email {
        2241317915@qq.com
    }
    notification_email_from keepalived@yellmiky.org
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id ka1.yellmiky.org
    vrrp_skip_check_adv_addr
    vrrp_strict
    vrrp_garp_interval 0
    vrrp_gna_interval 0
    vrrp_mcast_group4 224.0.0.18
}
​
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 100
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100/24 dev eth0 label eth0:1
    }
}
 

systemctl restart keepalived

抓包测试:

tcpdump -i eth0 -nn host 224.0.0.18                                 #只显示主的(172.25.254.10

#ka2--172.25.254.20:

yum install keepalived -y

systemctl stop firewalld

vim /etc/keepalived/keepalived.conf

global_defs {
    notification_email {
        2241317915@qq.com
    }
    notification_email_from keepalived@yellmiky.org
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id ka1.yellmiky.org
    vrrp_skip_check_adv_addr
    vrrp_strict
    vrrp_garp_interval 0
    vrrp_gna_interval 0
    vrrp_mcast_group4 224.0.0.18
}
​
vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 100                       ##相同id管理同一个虚拟路由
    priority 80                                 #低优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100/24 dev eth0 label eth0:1
    }
}

systemctl restart keepalived

#realserver1--172.25.254.110:

yum install httpd -y

systemctl stop firewalld

sentenforce 0

echo 172.25.254.110 > /var/www/html/index.html

systemctl restart httpd

vim /etc/keepalived/keepalived.conf

#realserver2--172.25.254.120:

yum install httpd -y

systemctl stop firewalld

sentenforce 0

echo 172.25.254.120 > /var/www/html/index.html

systemctl restart httpd

3.vip通行 (ping通:

vrrp_strict

vrrp_iptables

在ka1,ka2的keepalived配置文件里这两行均显示或均注释,在ka1 :iptables -nL 查看效果

4.启用日志功能

rsys 指定采集方法

vim /etc/rsyslog.conf

local6.* /var/log/keepalived.log

vim /etc/sysconfig/keepalived

KEEPALIVED_OPTIONS="-D -S 6"

systemctl restart keepalived

systemctl restart rsyslog.service

ll /var/log/keepalived.log

tail -f /var/log/keepalived.log

5.实现独立子配置文件

当生产环境复杂时, /etc/keepalived/keepalived.conf 文件中内容过多,不易管理 将不同集群的配置,比如:不同集群的VIP配置放在独立的子配置文件中利用include 指令可以实现包含子配置文件。

mkdir -p /etc/keepalived/conf.d

#将后面的vrrp_instance VI_1 全注释

vim /etc/keepalived/keepalived.conf

global_defs {
    notification_email {
        2241317915@qq.com
    }
    notification_email_from keepalived@yellmiky.org
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id ka1.yellmiky.org
    vrrp_skip_check_adv_addr
    vrrp_strict
    vrrp_garp_interval 0
    vrrp_gna_interval 0
    vrrp_mcast_group4 224.0.0.18
}
include /etc/keepalived/conf.d/*.conf                 #相关子配置文件

#子配置文件

vim /etc/keepalived/conf.d/172.25.254.100.conf

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 100
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100/24 dev eth0 label eth0:1
    }
}

systemctl restart keepalived

6.非抢占式模式

#ka1 :

vim /etc/keepalived/keepalived.conf


global_defs {
    notification_email {
        2241317915@qq.com
    }
    notification_email_from keepalived@yellmiky.org
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id ka1.yellmiky.org
    vrrp_skip_check_adv_addr
    vrrp_strict
    vrrp_garp_interval 0
    vrrp_gna_interval 0
    vrrp_mcast_group4 224.0.0.18
}
​
vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 100                       ##相同id管理同一个虚拟路由
    priority 80                                 #低优先级
    advert_int 1
    nopreempt                                   #加非抢占式的参数
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100/24 dev eth0 label eth0:1
    }
}

systemctl restart keepalived

#ka2:

vim /etc/keepalived/keepalived.conf

global_defs {
    notification_email {
        2241317915@qq.com
    }
    notification_email_from keepalived@yellmiky.org
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id ka1.yellmiky.org
    vrrp_skip_check_adv_addr
    vrrp_strict
    vrrp_garp_interval 0
    vrrp_gna_interval 0
    vrrp_mcast_group4 224.0.0.18
}
​
vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 100                       ##相同id管理同一个虚拟路由
    priority 80                                 #低优先级
    advert_int 1
    nopreempt
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100/24 dev eth0 label eth0:1
    }
}

systemctl restart keepalived

测试:

在ka1、ka2查看ifconfig ,看eth0:1 在哪个机子(优先级高的),然后把那个机子的keepalived服务关了(杀了),然后去另一台机子查看是否有eth0:1。

7.抢占延迟模式

防止来回抢占,企业一般是五到十分钟

#ka2:

vim /etc/keepalived/keepalived.conf

global_defs {
    notification_email {
        2241317915@qq.com
    }
    notification_email_from keepalived@yellmiky.org
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id ka1.yellmiky.org
    vrrp_skip_check_adv_addr
    vrrp_strict
    vrrp_garp_interval 0
    vrrp_gna_interval 0
    vrrp_mcast_group4 224.0.0.18
}
​
vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 100                       ##相同id管理同一个虚拟路由
    priority 80                                 #低优先级
    advert_int 1
    preempt_deplay 5s                           #加延迟抢占式的参数
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100/24 dev eth0 label eth0:1
    }
}

systemctl restart keepalived

五秒后测试:ifconfig

(服务关的时候eth0:1没有,重启服务五秒后查看eth0:1出现)

8.单播配置

单播不支持vrrp_strict,需要注释掉 : #vrrp_strict

#ka1 :

vim /etc/keepalived/keepalived.conf

global_defs {
    notification_email {
        2241317915@qq.com
    }
    notification_email_from keepalived@yellmiky.org
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id ka1.yellmiky.org
    vrrp_skip_check_adv_addr
    #vrrp_strict
    vrrp_garp_interval 0
    vrrp_gna_interval 0
    vrrp_mcast_group4 224.0.0.18
}
​
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 100                       ##相同id管理同一个虚拟路由
    priority 80                                 #低优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100/24 dev eth0 label eth0:1
    }
    unicast_ip_src 172.25.254.10               #本地IP
    unicast_peer {
       172.25.254.20                           #对端IP
    }
}

systemctl restart keepalived

#ka2 :

vim /etc/keepalived/keepalived.conf

global_defs {
    notification_email {
        2241317915@qq.com
    }
    notification_email_from keepalived@yellmiky.org
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id ka1.yellmiky.org
    vrrp_skip_check_adv_addr
    #vrrp_strict
    vrrp_garp_interval 0
    vrrp_gna_interval 0
    vrrp_mcast_group4 224.0.0.18
}
​
vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 100                       #相同id管理同一个虚拟路由
    priority 80                                 #低优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100/24 dev eth0 label eth0:1
    }
    unicast_ip_src 172.25.254.20               #本地IP
    unicast_peer {
       172.25.254.10                           #对端IP
    }
}

systemctl restart keepalived

测试:

9.keepalived状态切换的通知脚本

邮箱授权码获取方法:

【进入QQ邮箱并登录】——>点击邮箱首页右上角的【账号与安全】——>点击【安全设置】——>【授权码】

#ka1 + ka2:

yum install mailx -y

systemctl stop firewalld

setenforce 0

date +%F

date +%F\ %T

vim /etc/keepalived/mail.sh

#!/bin/bash
mail_dst="2xxxxxxxxx@qq.com"
send_message()
{
 mail_sub="$HOSTNAME to be $1 vip move"
 mail_msg="'date +%F\ %T':vrrp move $HOSTNAME change $1"
 echo $mail_msg | mail -s "$mail_sub" $mail_dst
}
​
case $1 in
        master)
        send_message master
        ;;
        backup)
        send_message backup
        ;;
        fault)
        send_message fault
        ;;
        *)
        ;;
esac
chmod +x /etc/keepalived/mail.sh

vim /etc/keepalived/keepalived.conf

global_defs {
    notification_email {
        2xxxxxxxxx@qq.com
    }
    notification_email_from keepalived@yellmiky.org
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id ka1.yellmiky.org
    vrrp_skip_check_adv_addr
    #vrrp_strict
    vrrp_garp_interval 0
    vrrp_gna_interval 0
    vrrp_mcast_group4 224.0.0.18
}
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 100
    priority 100
    advert_int 1
    #nopreempt
    #preempt_delay 5s
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100/24 dev eth0 label eth0:1
    }
    unicats_src_ip 172.25.254.10
    unicast_peer {
        172.25.254.20
    }
    notify_master "/etc/keepalived/mail.sh master"
    notify_backup "/etc/keepalived/mail.sh backup"
    notify_fault "/etc/keepalived/mail.sh fault"
}

vim /etc/mail.rc

#######mail set##########
set from=2xxxxxxx@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=2xxxxxxx@qq.com
set smtp-auth-password=xxxxxxxxxxxxx           #邮箱授权码
set smtp-auth=login
set ssl-verify=ignore

systemctl restart keepalived

echo test message |mail -s test  你的QQ号@qq.com            #测试是否能成功发送

/etc/keepalived/mail.sh master                                               #脚本测试

systemctl restart keepalived                                                   #重启服务就会发送

测试结果总结:两台主机的服务都开启时,发送的是主结构的服务信息,主结构的服务关后发送的则是从结构的服务信息内容。


10.双主结构:两个虚拟路由(多主模式,不同的VIP

#ka1:

vim /etc/keepalived/keepalived.conf

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 100
    priority 100
    advert_int 1
    #nopreempt
    #preempt_delay 5s
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100/24 dev eth0 label eth0:1
    }
}
vrrp_instance VI_2 {
    state BACKUP
    interface eth0
    virtual_router_id 200
    priority 80
    advert_int 1
    #nopreempt
    #preempt_delay 5s
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.200/24 dev eth0 label eth0:2
    }
}

systemctl restart keepalived

#ka2:

vim /etc/keepalived/keepalived.conf

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 100
    priority 80
    advert_int 1
    #nopreempt
    #preempt_delay 5s
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100/24 dev eth0 label eth0:1
    }
}
vrrp_instance VI_2 {
    state MASTER
    interface eth0
    virtual_router_id 200
    priority 100
    advert_int 1
    #nopreempt
    #preempt_delay 5s
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.200/24 dev eth0 label eth0:2
    }
}

systemctl restart keepalived

11.keepalived+lvs

#ka1+ka2:

vim /etc/keepalived/keepalived.conf

virtual_server 172.25.254.100 80 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    #persistence_timeout 50
    protocol TCP
​
    real_server 172.25.254.110 80 {
        weight 1
        HTTP_GET {
            url {
              path /
              status_code 200
            }
           # url {
           #   path /mrtg/
           #   digest 9b3a0c85a887a256d6939da88aabd8cd
           # }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 2
        }
    }
     real_server 172.25.254.120 80 {
        weight 1
        HTTP_GET {
            url {
              path /
              status_code 200
            }
            connect_timeout 3
            nb_get_retry 2
            delay_before_retry 2
        }
    }
​
}

systemctl restart keepalived.service

yum install ipvsadm -y

ipvsadm -Ln systemctl stop firewalld.service setenforce 0

#realserver1

vim /etc/sysctl.d/arp.conf

net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2

sysctl --system systemctl restart rsyslog.service

ip a a 172.25.254.100/32 dev lo

yum install httpd -y

echo 172.25.254.110 > /var/www/html/index.html

systemctl restart httpd systemctl status firewalld systemctl stop firewalld setenforce 0

#realserver2

vim /etc/sysctl.d/arp.conf

net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2

sysctl --system systemctl restart rsyslog.service

ip a a 172.25.254.100/32 dev lo

yum install httpd -y

echo 172.25.254.120 > /var/www/html/index.html

systemctl restart httpd systemctl status firewalld systemctl stop firewalld setenforce 0

测试:

12.利用脚本实现主从角色切换

#ka1 :

vim /etc/keepalived/miky.sh


#!/bin/bash
[ ! -f /mnt/miky ]
​
sh /etc/keepalived/miky.sh

echo $? touch /mnt/miky

sh /etc/keepalived/miky.sh

echo $? chmod +x /etc/keepalived/miky.sh

vim /etc/keepalived/keepalived.conf

#全局变量后加
vrrp_script check_file{
        script "/etc/keepalived/miky.sh"
        interval 1
        weight -30
        fall 2
        rise 2
        timeout 2
}
​
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 100
    priority 100
    advert_int 1
    #nopreempt
    #preempt_delay 5s
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100/24 dev eth0 label eth0:1
    }
    unicats_src_ip 172.25.254.10
    unicast_peer {
        172.25.254.20
    }
    track_script {
        check_haproxy
    }
}
vrrp_instance VI_2 {
    state BACKUP
    interface eth0
    virtual_router_id 200
    priority 80
    advert_int 1
    #nopreempt
    #preempt_delay 5s
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.200/24 dev eth0 label eth0:2
    }
    unicats_src_ip 172.25.254.10
    unicast_peer {
        172.25.254.20
    }
}

systemctl restart keepalived

touch /mnt/miky

tail -f /var/log/messages

13.keepalived+haproxy

#ka1、ka2 :

vim /etc/selinux/config

SELINUX=disabled

reboot #重启

systemctl stop firewalld

vim /etc/keepalived/keepalived.conf

#全局变量后加
vrrp_script check_haproxy {
        script "/etc/keepalived/test.sh"
        interval 1
        weight -30
        fall 2
        rise 2
        timeout 2
}
​
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 100
    priority 100
    advert_int 1
    #nopreempt
    #preempt_delay 5s
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100/24 dev eth0 label eth0:1
    }
    unicats_src_ip 172.25.254.10
    unicast_peer {
        172.25.254.20
    }
    track_script {
        check_haproxy
    }
}
vrrp_instance VI_2 {
    state BACKUP
    interface eth0
    virtual_router_id 200
    priority 80
    advert_int 1
    #nopreempt
    #preempt_delay 5s
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.200/24 dev eth0 label eth0:2
    }
    unicats_src_ip 172.25.254.10
    unicast_peer {
        172.25.254.20
    }
}

systemctl restart keepalived

#在两个ka1和ka2两个节点启用内核参数

vim /etc/sysctl.conf

net.ipv4.ip_nonlocal_bind = 1

sysctl --system

yum install haproxy -y

vim /etc/haproxy/haproxy.cfg

#在最后加
listen webserver
        bind *:80
        mode http
        balance roundrobin
        server web1 172.25.254.110:80 check inter 2 fall 2 rise 5
        server web2 172.25.254.120:80 check inter 2 fall 2 rise 5

systemctl restart haproxy

#在ka1中编写检测脚本

vim /etc/keepalived/test.sh

#!/bin/bash
killall -0 haproxy

#realserver1、realserver2 :

vim /etc/selinux/config

SELINUX=disabled

reboot                                                                                    #重启

systemctl stop firewalld

yum install httpd -t

echo 172.25.254.110 >/var/www/html/index.html                                                                   #realserver2 : echo 172.25.254.110 >/var/www/html/index.html

systemctl restart httpd

vim /etc/sysctl.d/arp.conf                                                         #将值全设为0

net.ipv4.conf.all.arp_ignore=0
net.ipv4.conf.all.arp_announce=0
net.ipv4.conf.lo.arp_ignore=0
net.ipv4.conf.lo.arp_announce=0

systemctl restart rsyslog.service

nmcli connection show

nmcli connection delete ens33

systemctl restart network

ip a d 172.25.254.100/32 dev lo #将环回删了

vim /etc/sysconfig/network-scripts/ifcfg-lo #检查环回配置

测试:

服务全开启状态下:

将ka1上的haproxy关掉:systemctl stop haproxy

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

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

相关文章

精武杯的部分复现

标红的为答案 计算机手机部分 1、请综合分析计算机和⼿机检材,计算机最近⼀次登录的账户名是?admin 2.请综合分析计算机和⼿机检材,计算机最近⼀次插⼊的USB存储设备串号是?S3JKNX0JA05097Y 3.请综合分析计算机和⼿机检材,谢弘…

Xilinx FPGA:vivado关于以太网的零碎知识点

一、OSI七层模型 为了实现网络通信的标准化,普及网络应用,国际标准化组织(ISO)将整个以太网通信结构制定了OSI模型,即开放式系统互联。 OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、…

web前端之html弹窗面板的popover新属性

MENU 前言效果图htmlstyle 前言 1、代码段的功能是在网页上实现一个弹出框。当用户点击"Open Popup"按钮时,会显示一个中央定位的弹出框,弹出框里有"This is a popup"文本,以及两个按钮(“Close"和"confirm”)…

XXX【3】模板方法

一.GOF-23 模式分类 从目的来看: 创建型模式:解决对象创建的工作。结构型模式:解决需求变化为对象结构带来的冲击。行为型模式:解决多个类交互之间责任的划分问题。 从范围来看: 类模式处理类与子类的静态关系&…

timing derate失效,cppr为0原因分析

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 timing derate失效,crpr结果为0,可能是错误的timing derate设置引起的,以下图为例: setup violation path的cppr为0,…

汇编语言指令 jmp: jmp word ptr、jmp dword ptr、jmp 寄存器

1. 转移地址在内存中的jmp指令有2种形式 1.1 jmp word ptr 内存单元地址 jmp word ptr 内存单元地址是段内转移指令,也就是说该指令只修改IP值,其功能是控制CPU下一条执行的指令是一个字(2个字节)内存中存放的偏移地址所指向的指…

集合的知识点

一、集合的简介 1.1 什么是集合 集合(Collection),也是一个数据容器,类似于数组,但是和数组是不一样的。集合是一个可变的容器,可以随时向集合集合中添加元素,也可以随时从集合中删除元素。另外,集合还提…

在线图片编辑网站推荐(图片压缩)

🔥发现神器!「可乐改图」——一站式在线图片编辑平台,让工作更高效!🚀 大家好!今天我要给大家安利一个我最近发现的宝藏工具——「可乐改图」,一个集多功能于一身的在线图片编辑平台&#xff0…

前端(Vue)动态换肤的通用解决方案及原理分析(2)

文章目录 动态换肤的主题解决方案总结处理 第三方( element-plus )主题变更原理与步骤分析**实现原理**实现步骤处理 element-plus 主题变更补充 > 步骤 2:获取当前 element-plus 的默认样式表,并且把需要进行替换的色值打上标记补充>步骤 3&#…

Android 手机恢复出厂设置后,还能恢复其中数据吗?

天津鸿萌科贸发展有限公司从事数据安全服务二十余年,致力于为各领域客户提供专业的数据恢复、数据备份、网络及终端数据安全等解决方案与服务。 同时,鸿萌是众多国际主流数据恢复软件的授权代理商,为专业用户提供正版的数据恢复软件。 对于 A…

网络版计算器(理解协议与序列化与反序列化)

一、理解协议 在网络层面,协议(Protocol)是一组规则、标准或约定,它们定义了在网络环境中,计算机、服务器、路由器、交换机等网络设备之间如何相互通信和交换信息。这些规则涵盖了数据格式、数据交换的顺序、速度、以及…

调研-音视频

音视频 基础概念主要内容音频基础概念音频量化过程音频压缩技术视频基础概念视频bug视频编码H264视频像素格式YUVRGB参考文献基础概念 ● 实时音视频应用环节 ○ 采集、编码、前后处理、传输、解码、缓冲、渲染等很多环节。 主要内容 音频 基础概念 三要素:音调(音频)、…

阿里云注册、认证、短信资质、签名、模板申请过程

一、帐号注册 输入“帐号密码注册”中的相关信息即可。 手机号是必须的,先确定好手机号。 正常的可以直接注册成功的。 二、实名认证 注册成功之后,就可以点击上述的“快速实名认证”。 这次选择的是“企业认证”。 有几种方式,如下&#x…

学习嵌入式第二十八天

有名管道 在C语言中,有名管道(Named Pipe)是一种特殊的文件类型,它允许进程间通信。有名管道与匿名管道(Anonymous Pipe)不同,它在文件系统中有一个路径名,因此可以被多个进程访问。…

项目实战-Linux部署-安装jdk以及shell脚本检查jdk

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 往期热门专栏回顾 专栏…

STM32之MPU6050实战

MPU6050 MPU6050是一个6轴姿态传感器,可以测量芯片自身X、Y、Z轴的加速度、角速度参数,通过数据融合,可进一步得到姿态角,常应用于平衡车、飞行器等需要检测自身姿态的场景 3轴加速度计(Accelerometer)&a…

Python从0到100(五十二):逻辑回归及鸢尾花数据集预测

逻辑回归是⼀种⽤于解决⼆分类问题的监督学习算法,其基本原理是使⽤ 逻辑函数(也称为Sigmoid函数) 来建模 因变量(输出)与⾃变量(输⼊)之间的概率关系。逻辑回归的⽬标是估计某个事件发⽣的概率…

YOLOV8网络结构|搞懂Backbone-SPPF

SPPF SPP衍生而来。 因为速度快,所以是SPPF-Fast CONV 3个Maxpool串联 Concat 最后又Conv

QT 控件使用案例

常用控件 表单 按钮 Push Button 命令按钮。Tool Button:工具按钮。Radio Button:单选按钮。Check Box:复选框按钮。Command Link Button:命令链接按钮。Dialog Button Box:按钮盒。 容器组控件(Containers) Group Box…

JavaEE 的相关知识点(一)

一、过滤器 过滤器(Filter)是一个用于对请求和响应进行预处理的组件。过滤器可以在 Java Servlet 规范中使用,通常用于执行一些通用的任务 1、过滤器的作用 过滤器是一种javaEE规范中定义的一种技术,可以让请求达到目标servlet之…