高可用集群keepalived详解(基础部署与企业应用示例)

news2024/11/24 17:37:07

目录

一、高可用集群简介

1.1 集群的类型

 1.2系统的可用性

1.3 如何实现高可用

1.4 VRRP(虚拟路由冗余协议)---解决静态网关单点风险

1.4.1 VRRP相关术语

 1.4.2 VRRP相关技术

二、Keepalived 部署

 2.1 keepalived 架构

2.2 环境准备 

三、keepalived基本配置

3.1 全局配置以及虚拟路由器

3.1.1 在ka1上面的配置

3.1.2 在ka2上面的配置 

3.1.2 抓包测试

3.2  使得ka1,ka2能够ping vip

 3.2.1 加上vrrp_iptables

 3.2.2 注释vrrp_iptables和vrrp_strict

3.3  实现日志独立功能

3.4 实现独立子配置文件

四、应用示例配置

4.1 抢占模式和非抢占模式

 4.2 抢占延迟模式 preempt_delay

4.3 VIP单播配置

4.3.1 ka1上面

 4.3.2 ka2上面

 4.3.3 抓包测试

4.4 邮件配置并实现脚本调用

 4.4.1 编辑邮件文件 

4.4.2 编写脚本

 4.4.3编写主配置文件----添加

 4.4.4 重启服务测试


前言:前面我们学到了通过lvs实现四层负载均衡,haproxy实现七层负载均衡,但是有一个不足的地方就是,当haproxy或者lvs的中心调度器出现故障了,该服务就失效了。于是我们就可以通过备份这个调度器来解决问题。这个就是高可用集群,其可以让负载均衡实现高性能。本章主要讲解高可用集群keepalived来解决该功能。

一、高可用集群简介

1.1 集群的类型

  • LBLoad Balance 负载均衡: LVS/HAProxy/nginxhttp/upstream, stream/upstream
  • HAHigh Availability 高可用集群 数据库、Redis
  • SPoF: Single Point of Failure,解决单点故障:HPCHigh Performance Computing 高性能集群

 1.2系统的可用性

SLA Service-Level Agreement 服务等级协议(提供服务的企业与客户之间就服务的品质、水准、性能等方面所达成的双方共同认可的协议或契约)
简单来说就是:A = MTBF / (MTBF+MTTR
99.95%:(60*24*30)*(1-0.9995)=21.6 分钟 # 一般按一个月停机时间统计
指标 : 99.9%, 99.99%, 99.999%,99.9999%

1.3 如何实现高可用

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

就是使用冗余机制:有以下几种形式

  • active/passive /
  • active/active 双主
  • active --> HEARTBEAT(心跳线) --> passive
  • active <--> HEARTBEAT <--> active

keepalived的原理就是使用vrrp协议来做,来实现主备,双主。

1.4 VRRP(虚拟路由冗余协议)---解决静态网关单点风险

物理层:路由器、三层交换机实现

软件层:keepalived实现

主要原理就是为了让外部人员访问内部网络。

1.4.1 VRRP相关术语

  •  虚拟路由器:Virtual Router
  • 虚拟路由器标识:VRID(0-255),唯一标识虚拟路由器
  • VIPVirtual IP
  • VMAC Virutal MAC (00-00-5e-00-01-VRID)
  • 物理路由器:

    • master:主设备
    • backup:备用设备
    • priority:优先级---------主要是优先级起作用来起到主备切换。

 1.4.2 VRRP相关技术

通告:心跳,优先级等;周期性

工作方式:抢占式,非抢占式

安全认证:

  • 无认证
  • 简单字符认证:预共享密钥
  • MD5

工作模式:

  • /备:单虚拟路由器
  • /主:主/备(虚拟路由器1),备/主(虚拟路由器2

二、Keepalived 部署

 keepalived的功能作用:

  • 基于vrrp协议完成地址流动
  • vip地址所在的节点生成ipvs规则(在配置文件中预先定义)
  • ipvs集群的各RS做健康状态检测
  • 基于脚本调用接口完成脚本中定义的功能,进而影响集群事务,以此支持nginxhaproxy等服务

 2.1 keepalived 架构

  • 用户空间核心组件:
  •         vrrp stack:VIP消息通告
  •         checkers:监测real server
  •         system call:实现 vrrp 协议状态转换时调用脚本的功能
  •         SMTP:邮件组件
  •         IPVS wrapper:生成IPVS规则
  •         Netlink Reflector:网络接口
  •         WatchDog:监控进程
  • 控制组件:提供keepalived.conf 的解析器,完成Keepalived配置
  • IO复用器:针对网络目的而优化的自己的线程抽象
  • 内存管理组件:为某些通用的内存管理功能(例如分配,重新分配,发布等)提供访问权限

2.2 环境准备 

 

 准备四台虚拟机其IP,主机名配置如下

主机名IP虚拟IP(VIP)功能
ka1

172.25.254.10

172.25.254.100keepalived服务
ka2

172.25.254.20

172.25.254.100keepalived服务
rs1

172.25.254.110

web服务
rs2

172.25.254.120

web服务

注意一定要关闭selinux,和防火墙,不然在后面配置vrrp时不起作用。

在rs1,rs2 上面配置web服务:

[root@rs1 ~]# yum install httpd -y
[root@rs1 ~]# setenforce 0
[root@rs1 ~]# systemctl stop firewalld.service 
[root@rs1 ~]# echo 172.25.254.110 > /var/www/html/index.html
[root@rs1 ~]# systemctl enable --now httpd


[root@rs2 ~]# yum install httpd -y
[root@rs2 ~]# setenforce 0
[root@rs2 ~]# systemctl stop firewalld.service 
[root@rs2 ~]# echo 172.25.254.110 > /var/www/html/index.html
[root@rs2 ~]# systemctl enable --now httpd

#在ka上面能够访问
[root@ka1 ~]# curl 172.25.254.110
172.25.254.110
[root@ka1 ~]# curl 172.25.254.120
172.25.254.120

[root@ka2 ~]# curl 172.25.254.110
172.25.254.110
[root@ka2 ~]# curl 172.25.254.120
172.25.254.120

在ka1,ka2上面配置keepalived:

[root@ka1 ~]# setenforce 0
[root@ka1 ~]# systemctl stop firewalld.service 
[root@ka1 ~]# yum install keepalived -y
[root@ka1 ~]# systemctl enable --now keepalived

[root@ka2 ~]# setenforce 0
[root@ka2 ~]# systemctl stop firewalld.service 
[root@ka2 ~]# yum install keepalived -y
[root@ka2 ~]# systemctl enable --now keepalived

以上咋们的环境就搭建好了,现在就可做实验配置了。

三、keepalived基本配置

3.1 全局配置以及虚拟路由器

首先我们得keepalived的主配置文件为/etc/keepalived/keepalived.conf,我们主要是在这里面进行配置,也可以弄成子配置文件,这将会在后面进行讲解。

3.1.1 在ka1上面的配置

首先打开配置文件,找到global_defs(全局),vrrp_instance VI_1 (配置虚拟子接口)进行如下配置:

[root@ka1 ~]# vim /etc/keepalived/keepalived.conf 

其优先级为100,其作为主服务器。

然后我们要重启服务,进行测试,其就出现VIP来供我们使用。

[root@ka1 ~]# systemctl restart keepalived
[root@ka1 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.25.254.10  netmask 255.255.255.0  broadcast 172.25.254.255
        inet6 fe80::20c:29ff:fe3e:a08f  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:3e:a0:8f  txqueuelen 1000  (Ethernet)
        RX packets 42163  bytes 3462633 (3.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 41245  bytes 3390930 (3.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.25.254.100  netmask 255.255.255.0  broadcast 0.0.0.0
        ether 00:0c:29:3e:a0:8f  txqueuelen 1000  (Ethernet)

3.1.2 在ka2上面的配置 

ka2也是先修改配置文件。其相对于主服务器的修改变动内容如下标红地方,其他地方的配置都是一样的。

[root@ka2 ~]# vim /etc/keepalived/keepalived.conf 

优先级设为80 ,其就作为备份服务器使用,

 重启测试,然后就发现ka2上是没有VIP的。

3.1.2 抓包测试

[root@ka1 ~]# tcpdump -i ens33 -nn host 224.0.0.18
首先是10为主在发送数据。

然后关闭ka1的keepalived服务再查看该走向,其VIP就会到ka2上面

然后再重启ka1的服务,再查看,发现又出现了。

以上就是我们主备之间简单的配置。实现简单的主备服务。

3.2  使得ka1,ka2能够ping vip

 3.2.1 加上vrrp_iptables

在配置文件里面加上vrrp_iptables,就可以实现了。-----注意ka1,ka2都要设置,这样才能都实现。

测试界面如下:在ka1,ka2上面

 3.2.2 注释vrrp_iptables和vrrp_strict

在配置文件里面注释vrrp_iptables和vrrp_strict,就可以实现了。-----注意ka1,ka2都要设置,这样才能都实现。如下

测试界面如下:

3.3  实现日志独立功能

这个我就在ka1上做示例啦。

修改/etc/sysconfig/keepalived配置。如下:

[root@ka1 ~]# vim /etc/sysconfig/keepalived
[root@ka1 ~]# cat /etc/sysconfig/keepalived
# Options for keepalived. See `keepalived --help' output and keepalived(8) and
# keepalived.conf(5) man pages for a list of all options. Here are the most
# common ones :
#
# --vrrp               -P    Only run with VRRP subsystem.
# --check              -C    Only run with Health-checker subsystem.
# --dont-release-vrrp  -V    Dont remove VRRP VIPs & VROUTEs on daemon stop.
# --dont-release-ipvs  -I    Dont remove IPVS topology on daemon stop.
# --dump-conf          -d    Dump the configuration data.
# --log-detail         -D    Detailed log messages.
# --log-facility       -S    0-7 Set local syslog facility (default=LOG_DAEMON)
#

KEEPALIVED_OPTIONS="-D -S 6"

 然后再修改/etc/rsyslog.conf,添加内容如下。

最后重启测试查看。

[root@ka1 ~]# systemctl restart keepalived

[root@ka1 ~]# systemctl restart rsyslog.service

查看日志,就出现以下内容了

3.4 实现独立子配置文件

 主要是在主配置文件中用include来包含子配置文件。

这里我是把配置vip的配置写到子配置文件中的

然后我们需要在外面创建目录文件。

[root@ka1 ~]# mkdir -p /etc/keepalived/conf.d
[root@ka1 ~]# vim /etc/keepalived/conf.d/172.25.254.100.conf
vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 100
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100/24 dev ens33 label ens33:1
    }
}

 然后我们重启一下,发现服务还能启用,子配置文件就使用完成。

四、企业应用示例

4.1 抢占模式和非抢占模式

默认为抢占模式 preempt ,即当高优先级的主机恢复在线后,会抢占低先级的主机的 master 角色,
这样会使 vip KA 主机中来回漂移,造成网络抖动,
建议设置为非抢占模式 nopreempt ,即高优先级主机恢复后,并不会抢占低优先级主机的 master 角色
非抢占模块下 , 如果原主机 down , VIP 迁移至的新主机 , 后续也发生 down , 仍会将 VIP 迁移回原主机

注意:要关闭 VIP抢占,必须将各 keepalived 服务器state配置为BACKUP

ka1上主配置文件的配置:添加nopreempt,并修改BACKUP。

 ka2上面也要添加nopreempt。

然后我们可以通过在ka1,和ka2上面stop,restart    keepalived 服务来观察vip的走向。

 4.2 抢占延迟模式 preempt_delay

抢占延迟模式,即优先级高的主机恢复后,不会立即抢回 VIP ,而是延迟一段时间(默认 300s)再抢回 VIP
preempt_delay # # 指定抢占延迟时间为 #s ,默认延迟 300s
注意:需要各 keepalived 服务器 state BACKUP, 并且不要启用 vrrp_strict
ka1上面的配置。也是直接在主配置文件中修改

然后我们可以 通过stop再进行start 查看VIP,间隔时间为抢占延时时间。做完这个实验之后建议删掉此配置。

4.3 VIP单播配置

默认 keepalived 主机之间利用多播相互通告消息,会造成网络拥塞,可以替换成单播,减少网络流量。
注意:启用 vrrp_strict 时,不能启用单播
# 在所有节点 vrrp_instance 语句块中设置对方主机的 IP,建议设置为专用于对应心跳线网络的地址,而非使用业务网络
unicast_src_ip <IPADDR> # 指定发送单播的源 IP
unicast_peer {
<IPADDR> # 指定接收单播的对方目标主机 IP
......
}
# 启用 vrrp_strict 时,不能启用单播 , 否则服务无法启动 , 并在 messages 文件中记录下面信息
Jun 16 17:50:06 centos8 Keepalived_vrrp[23180]: (m44) Strict mode does not
support authentication. Ignoring.
Jun 16 17:50:06 centos8 Keepalived_vrrp[23180]: (m44) Unicast peers are not
supported in strict mode
Jun 16 17:50:06 centos8 Keepalived_vrrp[23180]: Stopped - used 0.000606 user
time, 0.000000 system time
Jun 16 17:50:06 centos8 Keepalived[23179]: Keepalived_vrrp exited with permanent
error CONFIG. Terminating
Jun 16 17:50:06 centos8 systemd[1]: keepalived.service: Succeeded.
Jun 16 17:50:06 centos8 Keepalived[23179]: Stopped Keepalived v2.0.10
(11/12,2018)

4.3.1 ka1上面

#ka1,添加如下内容
[root@ka1 ~]# vim /etc/keepalived/keepalived.conf 
vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 100
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100/24 dev ens33 label ens33:1
   }
    unicast_src_ip 172.25.254.10
    unicast_peer {
      172.25.254.20
    }
}

 4.3.2 ka2上面

#ka2,添加如下内容
[root@ka2 ~]# vim /etc/keepalived/keepalived.conf 
vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 100
    priority 80
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100/24 dev ens33 label ens33:1
    }
    unicast_src_ip 172.25.254.20
    unicast_peer {
      172.25.254.10
    }

}

 4.3.3 抓包测试

以上配置做完后要重启服务。

可以发现,此时VIP在ka1--10上面。然后我们通过src:10------dst:20来抓包测试查看。

上面可以看出此时就是单播 ,因为此时src:20------dst:10来抓包测试时是不能实现这个服务。

然后我们stop,ka1主机,此时vip就在2上面,然后就可以src:20------dst:10来抓包测试。

但是src:10------dst:20是不能实现这个服务。

以上实验现象就是我们单播的实验现象啦。

4.4 邮件配置并实现脚本调用

 mailx----这个就是我们发邮件的工具。可以通过yum install mailx -y 去下载。一般是有的。

然后我使用的邮箱是QQ邮箱,然后要在在Linux配置邮件服务器代理,需要在QQ邮箱,启动邮件授权码,把这个复制过来,会有用。就是下面这个界面

 4.4.1 编辑邮件文件 

/etc/mail.rc  -------注意两台上都要配置。

[root@ka1 ~]# vim /etc/mail.rc 
#添加
set bsdcompat
set bsdcompat
set from=2758655249@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=2758655249@qq.com
set smtp-auth-password=‘这就是我复制的授权码’
set smtp-auth=login
set ssl-verify=ignore


[root@ka2 ~]# vim /etc/mail.rc 
#添加
set bsdcompat
set bsdcompat
set from=2758655249@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=2758655249@qq.com
set smtp-auth-password=‘这就是我复制的授权码’
set smtp-auth=login
set ssl-verify=ignore

测试发送邮箱:

[root@ka1 ~]# echo hello world | mail -s test 2758655249@qq.com

然后我就会在QQ上收到邮件

4.4.2 编写脚本

我们通过脚本来实现监控我们vip的变化位置再将其发送到邮箱上面。

编写脚本:

ka1上面:

[root@ka1 ~]# vim /etc/keepalived/mail.sh
[root@ka1 ~]# cat /etc/keepalived/mail.sh
#!/bin/bash
mail_dest='2758655249@qq.com'
mail_send()
{
        mail_subj="$HOSTNAME to be $1 vip 转移"
        mail_mess="`date +%F\ %T`: vrrp 转移,$HOSTNAME 变为 $1"
        echo "$mail_mess" | mail -s "$mail_subj" $mail_dest
}
case $1 in
    master)
    mail_send master
        ;;
    backup)
    mail_send backup
        ;;
     fault)
    mail_send fault
        ;;
     *)
        exit 1
      ;;
esac

ka2上面:

[root@ka2 ~]# vim /etc/keepalived/mail.sh
[root@ka2 ~]# cat /etc/keepalived/mail.sh
#!/bin/bash
mail_dest='2758655249@qq.com'
mail_send()
{
        mail_subj="$HOSTNAME to be $1 vip 转移"
        mail_mess="`date +%F\ %T`: vrrp 转移,$HOSTNAME 变为 $1"
        echo "$mail_mess" | mail -s "$mail_subj" $mail_dest
}
case $1 in
    master)
    mail_send master
        ;;
    backup)
    mail_send backup
        ;;
     fault)
    mail_send fault
        ;;
     *)
        exit 1
      ;;
esac

然后给执行权限

[root@ka1 ~]# chmod +x /etc/keepalived/mail.sh

[root@ka2 ~]# chmod +x /etc/keepalived/mail.sh

 4.4.3编写主配置文件----添加

(两台都要添加)--vim  etc/keepalived/keepalived.conf  添加下面标红的地方注意脚本文件路径是我们自己写的脚本路径。然后后面的参数就是我们脚本中需要输入的$1。

 4.4.4 重启服务测试

然后我们在ka1,ka2上可以重启服务,停止服务,我们的邮箱就会收到邮件。

以下就是我重启和停止服务收到邮件的信息

关闭ka1上面的keepalived的服务,其VIP会转移到ka2上面 

以上就是本章的所有内容啦。 我会在下一章再补充讲解一些企业应用的示例。

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

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

相关文章

UE开发中的设计模式(三) —— 对象池模式

在FPS游戏中&#xff0c;射击会生成子弹&#xff0c;在命中敌人后子弹会被销毁&#xff0c;那么会导致子弹对象频繁地创建和销毁&#xff0c;会造成运行效率降低且会产生内存碎片问题&#xff0c;而对象池模式可以很好地解决这个问题。 文章目录 问题提出概述问题解决总结 问题…

【C语言】常用函数汇总表

目录 1. C语言常用函数汇总表&#xff08;概念功能&#xff09;1.1 输入/输出函数&#xff08;<stdio.h>&#xff09;1.2 字符串操作函数&#xff08;<string.h>&#xff09;1.3 内存管理函数&#xff08;<stdlib.h>&#xff09;1.4 数学函数&#xff08;<…

快排/堆排/归并/冒泡/

常见的内排序算法 插入排序 直接插入排序 原理&#xff1a;相当于扑克牌变成有序&#xff0c;先拿第一张&#xff0c;把他调节成有序&#xff0c;再拿第二张&#xff0c;与第一张相比找到第二张的位置&#xff0c;再继续拿第三张&#xff0c;以此类推。 void InsertSort(in…

Jupyter Notebook修改文件的默认保存路径

1&#xff0c;安装好后Jupyter Notebook的默认保存路径为用户文件夹&#xff0c; 在jupyter中新建的文件会保存在这里 2&#xff0c;新建一个自己想用来存放Jupyter文件的文件夹 3&#xff0c;找到jupyter的config文件&#xff0c;jupyter_notebook_config.py 4&#xff0c;…

俞敏洪,真窝囊?

文&#xff5c;琥珀食酒社 作者 | 璇子 大家都被俞敏洪骗了 当年《中国合伙人》一播出 俞敏洪竟抱怨黄晓明说&#xff1a; “你把我演得太窝囊&#xff01;” 那俞敏洪真的不窝囊吗&#xff1f; 他培养出董宇辉 让他赚了近6亿 结果人没留住、公司也送了人 还要被丈母娘…

NextJS 服务器端代码调试

NextJS 中如何调试服务器端代码&#xff0c;根据官方文档设置 Chrome 调试&#xff0c;这里有个坑&#xff0c;来看下面配置&#xff1a; {"scripts": {"dev": "NODE_OPTIONS--inspect next dev"} }启动成功&#xff0c;有两个端口 9229、9230&…

企业文件加密软件有哪些,2024常用十款文件加密软件推荐

在当今数字化办公环境中&#xff0c;企业文件加密软件是保护商业秘密和敏感数据的关键工具。随着网络攻击和数据泄露事件的增多&#xff0c;选择一款能够提供强有力保护的文件加密软件显得尤为重要。2024年&#xff0c;市场上出现了一系列新的文件加密解决方案&#xff0c;它们…

如何选择企业差旅管理平台?差旅降本指南

企业差旅管理的能力已成为企业运营成本管理的重要一环。如何选择一个高效且可以定制化的差旅管理平台,已成为众多企业降本增效的焦点。本文将结合当前差旅管理的最新理论和技术趋势,来探讨企业如何选择适合自己的差旅管理平台。 第一,选择差旅管理平台的关键因素 1. 差旅预订便…

二级域名分发系统

介绍&#xff1a; 一个不错的二级域名租用系统代码。 二级域名分发系统的用法&#xff1a;弄几个已经备案的域名分发一下赚点小钱&#xff0c;自己也用了&#xff0c;别人也用了&#xff0c;然后也回本了&#xff0c;搞得好还可以挣点小钱。 不懂的就不要下载了。 代码下载…

全网最最最详细的haproxy详解!!!

1 什么是负载均衡 负载均衡&#xff08;Load Balancing&#xff09;是一种将网络请求或工作负载分散到多个服务器或计算机资源上的技术&#xff0c;以实现优化资源使用、提高系统吞吐量、增强数据冗余和故障容错能力、以及减少响应时间的目的。在分布式系统、云计算环境、Web服…

day28-lsync服务+scp命令

假设nfs服务器挂了&#xff0c;就要走backup服务器也部署nfs 这种情况下&#xff0c;rsync和nfs要用到同一个文件夹&#xff0c; 所以他俩管理文件夹权限必须一样 1. lsyncrsyncnfs rsync服务 10.0.0.41 1.安装rsync [rootbackup:~]#yum -y install rsync 2.配置rsync[root…

在Notebook中使用backtrader绘图出现 Javascript Error: IPython is not defined

01背景说明 首先&#xff0c;说明一下背景。我的电脑在2024年6月时使用backtrader进行cerebro.plot()是没有问题的&#xff0c;图能够在Notebook中正常显示&#xff0c;没有错误提示。 2024年7月下旬&#xff0c;连续学习和试用了好几个AI工具后&#xff0c;我鬼使神差点了No…

【实现100个unity特效之20】用unity实现物品悬浮和发光像素粒子特效

最终效果 文章目录 最终效果新增飞升粒子效果光圈效果修改不同颜色完结 新增飞升粒子效果 效果 光圈效果 效果 修改不同颜色 完结 赠人玫瑰&#xff0c;手有余香&#xff01;如果文章内容对你有所帮助&#xff0c;请不要吝啬你的点赞评论和关注&#xff0c;你的每一次支持…

Linux硬件-raid(软件版)

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 RAID 在一般的品牌服务器里面基本上都有一个叫阵列卡的硬件&#xff0c;硬盘先连接到阵列卡上面&#xff0c;然后阵列卡再连…

【JavaEE初阶】文件操作和IO

目录 &#x1f334;认识文件 &#x1f6a9;树型结构组织和目录 &#x1f6a9;文件路径&#xff08;Path&#xff09; &#x1f6a9; 文件分类 &#x1f38d;Java 中操作文件 &#x1f6a9; File 概述&#xff1a; &#x1f4cc;属性 &#x1f4cc;构造方法 &#x1f4c…

【解压即玩】电脑端CoinOps整合222G,带遮罩和滤镜,复古拉满

这是另外一种风格的整合包&#xff0c;你可以认为是皮肤&#xff1a; 每选择一个游戏&#xff0c;游戏光碟的封面都会变大&#xff0c;非常的漂亮。 玩起来时游戏界面和另外一种是一样的&#xff1a; 解压即玩。 立即下载&#xff1a;【chumenx.com】【解压即玩】电脑端CoinO…

C的温故而知新:文件输入/输出(C Primer Plus第十三章)

第十三章&#xff1a;文件输入/输出 编写程序&#xff0c;对文件的操作是肯定会遇到的&#xff0c;无论是使用那种语言&#xff0c;都可能会遇到这样类似的需求&#xff0c;因为系统的目的是为人们日常生产生活提供便利&#xff0c;难免会遇到文件的使用。在这一章&#xff0c…

extern关键字及c++中(隐式类型转换时)的引用

int i 0; double db i;//隐式类型转换 const double& rd i; const float rf i;

Ubuntu视频工具

1. VLC VLC Media Player&#xff08;VLC多媒体播放器&#xff09;&#xff0c;最初命名为VideoLAN客户端&#xff0c;是VideoLAN品牌产品&#xff0c;是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式&#xff0c;并支持DVD影音光盘&#xff0c;VCD影音光…

【吊打面试官系列-Elasticsearch面试题】对于 GC 方面,在使用 Elasticsearch 时要注意什么?

大家好&#xff0c;我是锋哥。今天分享关于 【对于 GC 方面&#xff0c;在使用 Elasticsearch 时要注意什么&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 对于 GC 方面&#xff0c;在使用 Elasticsearch 时要注意什么&#xff1f; 1、SEE 2、倒排词典的索引需…