培训第二十七天(lvs_nat模式与lvs_dr模式配置)
上午
核心:内核中的ipvs,ipvsadm1、安装ipvsadm[root@nat ~]# yum -y install ipvsadm2、配置规则查看所有的规则,如果已经配置好规则,重启之后也就没有了[root@nat ~]# ipvsadm -L -n
1、配置vip网卡
(1)在编辑虚拟网络中创建桥接模式的网卡,并且桥接到有网的适配器上。
查看自己本机WLAN所属网卡

在VM创建桥接模式网卡,将外部连接设置为WLAN所属网卡

2、添加新的网卡,自定义为刚才创建的桥接模式网卡。
在本虚拟机中重新添加一块网络适配器,并设置网络连接为刚设置的桥接模式的网卡

3、此时在虚拟主机中使用ifconfig无法找到新的网卡,ip a能够查看到新的ens36网卡。
查看所有网络[root@nat ~]# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:f5:ea:0a brd ff:ff:ff:ff:ff:ffinet 10.0.0.10/24 brd 10.0.0.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::3598:4e0:b43d:ccc8/64 scope link noprefixroute valid_lft forever preferred_lft forever3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:f5:ea:14 brd ff:ff:ff:ff:ff:ffinet 192.168.11.83/23 brd 192.168.11.255 scope global noprefixroute dynamic ens36valid_lft 7147sec preferred_lft 7147secinet6 fe80::8de7:6bd9:74a1:8f60/64 scope link noprefixroute valid_lft forever preferred_lft forever4、编辑网卡配置[root@nat ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36[root@nat ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens36TYPE=EthernetBOOTPROTO=noneIPADDR=192.168.10.101NAME=ens36UUID=d4cfa5ab-7c2a-4fab-b329-396b9b38b1bfDEVICE=ens36ONBOOT=yes5、重启网络服务[root@nat ~]# systemctl restart network6、本机cmd测试192.168.10.101ip是否可以正常使用

2、添加规则
配置ipvs规则[root@nat ~]# ipvsadm -A -t 192.168.10.101:80 -s rr # -A 选项表示添加一个新的服务。# -t 192.168.10.101:80 指明了要处理的服务是目标地址为 192.168.10.101 ,端口为 80 的 TCP 服务。# -s rr 表示使用轮询(Round Robin)的调度算法。[root@nat ~]# ipvsadm -LnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.10.101:80 rr添加rs web01 web02 添加规则[root@nat ~]# ipvsadm -a -t 192.168.10.101:80 -r 10.0.0.11:80 -m# -a 选项用于添加一个真实服务器(Real Server)到指定的服务中。# -t 192.168.10.101:80 表示要添加真实服务器的服务是目标地址为 192.168.10.101 ,端口为 80 的 TCP 服务。# -r 10.0.0.11:80 指明了要添加的真实服务器的地址为 10.0.0.11 ,端口为 80 。# -m 表示使用 NAT(Network Address Translation,网络地址转换)模式。[root@nat ~]# ipvsadm -a -t 192.168.10.101:80 -r 10.0.0.12:80 -m[root@nat ~]# ipvsadm -Ln # -L 选项表示列出(List)规则。# -n 选项表示以数字形式显示地址和端口,而不进行 DNS 解析,这样可以提高显示速度和准确性。IP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.10.101:80 rr-> 10.0.0.11:80 Masq 1 0 0 -> 10.0.0.12:80 Masq 1 0 0 # “TCP 192.168.10.101:80 rr” 表示这是一个 TCP 协议的服务,地址为 192.168.10.101,端口为 80,使用的调度算法是轮询(rr)# “-> 10.0.0.11:80 Masq 1 0 0” 表示后端的一个真实服务器地址为 10.0.0.11,端口为 80,采用网络地址转换(Masq)模式,权重为 1,当前活跃连接数为 0,非活跃连接数为 0。# “-> 10.0.0.12:80 Masq 1 0 0” 则是另一个后端真实服务器的配置信息,地址为 10.0.0.12,端口为 80,同样是网络地址转换模式,权重为 1,活跃和非活跃连接数均为 0。此时访问vip还无法访问到web01和web02

3、ip转发
[root@nat ~]# vim /etc/sysctl.conf net.ipv4.ip_forward=1# net.ipv4.ip_forward=1 这个配置的作用是启用系统的 IP 转发功能。# 当设置为 1 时,表示允许系统在不同的网络接口之间转发 IP 数据包。[root@nat ~]# sysctl -pnet.ipv4.ip_forward = 1# 使在 /etc/sysctl.conf 中所做的更改立即生效,而无需重新启动系统。此时访问vip还无法访问到web01和web02

4、修改网关
临时修改web01和web02的网关,网关必须指向dip(调度服务器的对内的ip)
要求rs的ip和dip要在同一个网段,因为dip是作为rs网关存在的[root@web01 ~]# ip route del default # 删除系统中的默认路由[root@web01 ~]# ip route add 10.0.0.0/24 via 10.0.0.10# 添加一条新的路由规则# 对于目标网络为 10.0.0.0/24 的数据包,将通过网关 10.0.0.10 进行转发[root@web02 ~]# ip route del default[root@web02 ~]# ip route add 10.0.0.0/24 via 10.0.0.10此时访问vip可以访问到web01和web02

lvs-nat模式的优点是配置简单,缺点是请求和响应都必须经过ds,容易性能瓶颈
现在,希望请求时使用input链进行负载均衡,响应时不经过ds,直接由rs响应给客户端
在nat模式时,请求vip,接收vip响应。
构想 :请求vip,接收rip响应,这是不允许 使用lvs-dr模式
5、NAT模式脚本
# ds脚本#!/bin/bash#配置网卡echo TYPE=Ethernet >> /etc/sysconfig/network-scripts/ifcfg-ens36 echo BOOTPROTO=none >> /etc/sysconfig/network-scripts/ifcfg-ens36 echo IPADDR=192.168.10.101 >> /etc/sysconfig/network-scripts/ifcfg-ens36read -p "router name:" router_nameecho NAME='"$router_name"' >> /etc/sysconfig/network-scripts/ifcfg-ens36 uuid=$( uuidgen )echo UUID='"$uuidgen"' >> /etc/sysconfig/network-scripts/ifcfg-ens36 echo DEVICE='"$router_name"' >> /etc/sysconfig/network-scripts/ifcfg-ens36 echo ONBOOT=yes >> /etc/sysconfig/network-scripts/ifcfg-ens36 #重启网络服务systemctl restart network#安装ipvsadmyum list installed|grep ipvsadmif [ $? —ne 0 ];thenyum -y install ipvsadmfi#配置规则read -p "vip:" vipread -p "port:" portread -p "rule:" ruleread -p "rip1:" rip1read -p "rip2:" rip2ipvsadm -A -t $vip:$port -s $ruleipvsadm -a -t $vip:$port -r $rip1:$port -mipvsadm -a -t $vip:$port -r $rip2:$port -m#ip转发echo "net.ipv4.ip_forward=1" > /etc/sysctl.confsysctl -p
#rs 脚本#!/bin/bash# 设置网关read -p "dip:" dipip route del defaultip route add default via $dip
6、DR模式
(1)性能更优,回路不再经过ds
(2)ds和rs为了保证用户响应,都要求配置统一的vip
(3)由于rs是直接响应client,网关一定不能设置为ds的dip
(4)对rs的vip进行抑制,让ds的vip接收请求,rs的vip不接受请求
7、设置dr主机
1、在ds的ens33上挂一个vip10.0.0.101[root@dr ~]# ifconfig ens33:0 10.0.0.101 broadcast 10.0.0.101 netmask 255.255.255.255 up# ifconfig 是用于配置网络接口的命令。# ens33:0 是创建的虚拟接口名称。# 10.0.0.101 是为该虚拟接口分配的 IP 地址。# broadcast 10.0.0.101 指明了广播地址为 10.0.0.101 。# netmask 255.255.255.255 表示子网掩码为 255.255.255.255 ,这实际上是一个单点广播地址,通常用于特定的网络配置场景。# up 表示启用该网络接口。[root@dr ~]# route add -host 10.0.0.101 dev ens33:0# 将目标主机地址为 10.0.0.101 的数据包通过网络接口 ens33:0 进行发送# 10.0.0.101 dip# 10.0.0.13 vip 在rs上的vip和这个vip相同2、设置规范# 安装ipvsadm[root@dr ~]# yum -y install ipvsadm.x86_64 # 设置规则ipvsadm -A -t 10.0.0.101:80 -s rripvsadm -a -t 10.0.0.101:80 -r 10.0.0.11 -g# -a 选项表示添加(Add)一个真实服务器到已存在的服务中。# -t 10.0.0.101:80 指明了要添加真实服务器的服务是目标地址为 10.0.0.101 ,端口为 80 的 TCP 服务。# -r 10.0.0.11 表示要添加的真实服务器地址为 10.0.0.11 。# -g 表示使用直接路由(Direct Routing)模式。ipvsadm -a -t 10.0.0.101:80 -r 10.0.0.12 -g[root@dr ~]# ipvsadm -LnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 10.0.0.101:80 rr-> 10.0.0.11:80 Route 1 0 0 -> 10.0.0.12:80 Route 1 0 0 # rs不再需要指定端口,dr不支持端口映射,vip上是80端口,最终就是80端口# -m nat -g gateway
下午
1、设置rs主机
(1)在lo接口上绑定vip
[root@web01 ~]# ifconfig lo:0 10.0.0.101 broadcast 10.0.0.101 netmask 255.255.255.255 up# ifconfig 是用于配置网络接口的命令。# lo:0 是创建的虚拟接口名称。# 10.0.0.101 是为该虚拟接口分配的 IP 地址。# broadcast 10.0.0.101 指明了广播地址为 10.0.0.101 。# netmask 255.255.255.255 表示子网掩码为 255.255.255.255 ,这实际上是一个单点广播地址,通常用于特定的网络配置场景。# up 表示启用该网络接口。
(2)设置主机路由
[root@web01 ~]# route add -host 10.0.0.101 dev lo:0[root@web01 ~]# ifconfig
(3)抑制rs的vip接受请求
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/lo/arp_announceecho 1 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announce# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore :将本地回环接口(lo)的 arp_ignore 参数设置为 1。当收到 ARP 请求时,如果目标 IP 不是本地接口的地址,则不回应。# echo 2 > /proc/ssys/net/ipv4/conf/lo/arp_announce :将本地回环接口的 arp_announce 参数设置为 2。在发送 ARP 报文时,尽可能使用能被其他主机路由到达的本地接口的 IP 地址。# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore :将所有网络接口的 arp_ignore 参数设置为 1。# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce :将所有网络接口的 arp_announce 参数设置为 2。# 限制某些情况下的 ARP 响应# 1.不理睬非本机ip请求,2优先其他主机路由也就是如果其他主机路由可以到达本地,让他们走远路过来本地
(4)生成脚本,对web02使用
[root@web01 ~]# vim arp.sh ifconfig lo:0 10.0.0.101 broadcast 10.0.0.101 netmask 255.255.225.255 uproute add -host 10.0.0.101 dev lo:0echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/lo/arp_announceecho 1 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announce
2、测试
访问vip地址

[root@dr ~]# ipvsadm -LnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 10.0.0.101:80 rr-> 10.0.0.11:80 Route 1 1 0 -> 10.0.0.12:80 Route 1 2 0 [root@dr ~]# ipvsadm -Ln --statsIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes-> RemoteAddress:PortTCP 10.0.0.101:80 3 14 0 2661 0-> 10.0.0.11:80 1 10 0 2477 0-> 10.0.0.12:80 2 4 0 184 0
3、dr模式脚本
(1)dr脚本
#!/bin/bash# 在ens33上挂载一个ip地址read -p "vip:" vipread -p "mac:" macread -p "num:" numifconfig $mac:$num $vip broadcast $vip netmask 255.255.255.255# 主机路由route add -host $vip dev $mac:$num# 安装ipvsadmyum list installed|grep ipvsadmmif [ $? —ne 0 ];thenyum -y install ipvsadmfi# 配置规则(不需要设置ip_forword)ipvsadm -Cread -p "rule:" ruleread -p "port:" portipvsadm -A -t $vip:$port -s $ruleread -p "rip1:" rip1ipvsadm -a -t $vip:$port -r $rip1 -gread -p "rip2:" rip2ipvsadm -a -t $vip:$port -r $rip2 -g
(2)rs脚本
#!/bin/bash# 在ens33上挂载一个ip地址read -p "vip:" vipread -p "mac:" macread -p "num:" numifconfig $mac:$num $vip broadcast $vip netmask 255.255.255.255# 主机路由route add -host $vip dev $mac:$num# 抑制echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/lo/arp_announceecho 1 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announce
练习:对mysql的3306服务进行负载均衡
1、配置mysql主机 x.x.x.21,命名为master_mysql.xxx.xxx,激活并且添加数据库test
2、在test中添加表student id int 主键,自增,name 字符串类型 非空,grade 字符串 非空,domi varchar 非空
3、添加三行数据
| 编号 | 姓名 | 班级 | 宿舍 |
|---|---|---|---|
| 1001 | 孙颖莎 | 云计算1班 | 1002 |
| 1002 | 大头 | 云计算2班 | 1003 |
| 1003 | 小胖 | 云计算2班 | 1004 |
3、配置mysql从服务,备份mysqlx.x.x.22的mysql服务,使用gtids同步事务
4、lvs对两台mysql主机进行rr负载均衡
5、使用python写一个脚本通过lvs ds主机读取mysql中的数据
6、自动化程度越高越好
相关文章:
培训第二十七天(lvs_nat模式与lvs_dr模式配置)
上午 核心:内核中的ipvs,ipvsadm1、安装ipvsadm[rootnat ~]# yum -y install ipvsadm2、配置规则查看所有的规则,如果已经配置好规则,重启之后也就没有了[rootnat ~]# ipvsadm -L -n 1、配置vip网卡 (1)在…...
JAVA中DateFormat详解
在Java中,DateFormat 是一个抽象类,它用于格式化和解析日期。DateFormat 允许进行日期-文本之间的转换,以及日期-时间之间的解析和格式化。Java 提供了多个 DateFormat 的具体子类,其中最常用的是 SimpleDateFormat,它…...
uniapp——列表选择样式
案例 代码 <view class"list"><block v-for"(item,index) in 8" :key"index"><view class"item" click"choosePackage(item)" :class"{active:item current}"><view class"i_money&q…...
解决客户访问超时1s问题
访问公网地址返回状态码499-CSDN博客 需求描述 客户访问公司公网服务,期望在1s内完成。他们在客户端设置了超时1s的配置,如果超过1s公司服务就会报错499,这是正常的请求返回。 这里是业务简易的连路图: 分析问题 目前这个服务通过公网的alb负载均衡到ecs,通过ecs再转发…...
Linux命令(基础面试可用,都是自己觉得平时使用多的)
1.cat 参数:-n:显示行号-s:压缩连续的空行,只显示一个空行2.chattr 改变文件属性 语法:chattr [-RV] [/-/<属性>][文件或目录] 属性:a:让文件或目录仅供附加用途i:不得任意更…...
opencv-python图像增强一:传统图像去噪方法整理
一、简介: 在数字图像处理领域,噪声一直是影响图像质量的重要因素。无论是拍摄过程中的环境干扰,还是传输过程中的信号失真,噪声都可能导致图像模糊、细节丢失,甚至影响后续的图像分析和应用。为了提高图像的视觉效果…...
Canal单机部署
目录 一、前期准备 1、配置binlog日志 2、配置MQ服务 二、搭建canal 1、下载安装包 2、部署canal-admin的UI管理界面 2-1、创建&解压admin 2-2、配置UI管理界面 2-3、初始化元数据库 2-4、启动Canal Admin 3、部署canal-server服务 3-1、创建&解压deployer…...
java,每日练习02
题目 选自牛客网 1.下列关于Java中类的构造方法的描述,正确的是() A.构造方法的返回类型为void B.可以定义一个类而在代码中不写构造方法。 C.在同一个类中定义的重载构造方法不可以相互调用。 D.子类不允许调用父类的构造方法。 正确答案…...
C# TreeView
添加 TreeView 控件:定义节点:添加节点:设置节点属性:处理节点事件:自定义节点绘制:数据绑定:节点选择:节点展开和折叠:搜索和过滤:示例代码总结 C# 中的 Tre…...
通过xshell使用密钥连接阿里云服务器
目录 步骤1:创建密钥对 步骤2:连接服务器 步骤3:连接服务器 连接阿里云服务器有几种方式,例如有密码进行连接,但是密码连接安全风险较大,所以我们选择密钥方式进行连接。操作简单且安全性高 步骤1&…...
<数据集>路面坑洼识别数据集<目标检测>
数据集格式:VOCYOLO格式 图片数量:681张 标注数量(xml文件个数):681 标注数量(txt文件个数):681 标注类别数:1 标注类别名称:[pothole] 使用标注工具:labelImg 标注规则:对类…...
几个常用脚本
系统初始化 #!/bin/bash # 定义颜色常量 RED\033[0;31m GREEN\033[0;32m NC\033[0m # No Color #功能菜单 menu() {clearecho "请选择要执行的操作:"echo "1. 检查网络"echo "2. 关闭防火墙和SELinux"echo "3. 替换YUM源"echo "…...
gtest中TEST和TEST_F和TEST_P的区别是什么
gtest(Google Test)是Google开发的一个开源的C测试框架,它提供了多种宏来支持不同类型的测试。其中,TEST、TEST_F和TEST_P是三个常用的宏,它们各自有不同的用途和特性。以下是它们之间的主要区别: TEST 用…...
VS2022如何调出输出窗口,并在输出窗口打印日志
在输出窗口打印 System.Diagnostics.Debug.WriteLine("这是一行自定义的输出。Debug.WriteLine");System.Diagnostics.Debug.Write("这是第二行自定义的输出,Debug.Write");System.Diagnostics.Debug.WriteLine("换行");System.Diagn…...
【全国大学生电子设计竞赛】2021年I题
🥰🥰全国大学生电子设计大赛学习资料专栏已开启,限时免费,速速收藏~...
【项目】基于Vue2+Router+Vant 前端面经项目
环境配置 Vue脚手架的创建 在终端中打开输入 vue create 项目包名 -m npm注意⚠️:项目名称不再允许包含大写字母。 选择第三项 3.选择要安装的模块 从上到下的功能模块: Babel - ES:降级处理Router-Vue:路由插件CSS预处理器E…...
【论文阅读】YOLOv10: Real-Time End-to-End Object Detection
题目:YOLOv10: Real-Time End-to-End Object Detection 作者:Ao Wang Hui Chen∗ Lihao Liu Kai Chen Zijia Lin Jungong Han Guiguang Ding∗ 清华大学的 motivation: 作者觉得YOLO系列的NMS和某些结构非常的耗时,提出NMS-free和一些列高效…...
计算资源消耗
计算资源消耗 计算资源的消耗分成: 模型参数本身的存储。模型参数的梯度以及梯度momentum的存储。token的传播过程 例如以llama3-7b为例: 模型参数存储: 模型参数量 * fp32 例如llama3-70b为例,7 * 10^9 * 4 模型参数的梯度以…...
企业微信推送消息的Java实现教程
在这篇教程中,我们将介绍如何使用Java实现企业微信的消息推送功能,特别是在完成任务后,将结果信息通过企业微信推送给指定的用户。我们将基于您提供的代码进行说明。 1. 环境准备 1.1 依赖库 在开始编写代码之前,确保您的项目中…...
强化学习之Actor-Critic算法(基于值函数和策略的结合)——以CartPole环境为例
0.简介 DQN算法作为基于值函数的方法代表,基于值函数的方法只学习一个价值函数。REINFORCE算法作为基于策略的方法代表,基于策略的方法只学习一个策略函数。Actor-Critic算法则结合了两种学习方法,其本质是基于策略的方法,因为其目…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...
【Linux】自动化构建-Make/Makefile
前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...
