【小小的脑袋,大大的疑问?】如何在Zookeeper中配置集群?
在Zookeeper中配置集群涉及多个步骤,以确保集群的稳定性和高效运行。以下是一个详细的配置流程:
一、环境准备
-
选择服务器:
- 选择合适数量的服务器,通常为奇数(如3台、5台等),以避免脑裂问题。
- 确保服务器之间网络连接稳定,延迟低。
-
安装JDK:
- Zookeeper依赖于Java环境,因此需要在每台服务器上安装JDK,并确保
java -version命令能够成功执行。
- Zookeeper依赖于Java环境,因此需要在每台服务器上安装JDK,并确保
-
下载Zookeeper安装包:
- 从Apache Zookeeper官网下载最新版本的Zookeeper安装包。
二、服务器配置
这里以Linux环境为例,展示如何使用tar命令来解压,并简要说明如何配置环境变量(假设你已经有了Zookeeper的压缩包文件,比如zookeeper-3.7.0.tar.gz)。
(1)解压Zookeeper安装包
-
首先,使用
cd命令进入到你想要解压Zookeeper的目录。比如,你可能想要将Zookeeper解压到/opt目录下:cd /opt -
然后,使用
tar命令来解压Zookeeper的压缩包。确保你拥有足够的权限来解压到该目录(你可能需要使用sudo)。例如:sudo tar -xzf /path/to/zookeeper-3.7.0.tar.gz这里
/path/to/zookeeper-3.7.0.tar.gz是你的Zookeeper压缩包文件的实际路径。解压后,你会在/opt目录下看到一个名为zookeeper-3.7.0(或你下载的Zookeeper版本的相应名称)的目录。
(2)配置环境变量(可选)
配置环境变量可以让你在任何目录下都能方便地访问Zookeeper的启动脚本和客户端工具。这通常通过修改用户的shell配置文件(如.bashrc、.bash_profile、.zshrc等,取决于你使用的shell)来实现。
以下是如何在.bashrc文件中为Zookeeper配置环境变量的示例(假设你已经将Zookeeper解压到了/opt/zookeeper-3.7.0):
- 打开你的
.bashrc文件进行编辑。你可以使用任何文本编辑器,比如nano或vi:nano ~/.bashrc - 在文件的末尾添加以下行(确保将
/opt/zookeeper-3.7.0替换为你的Zookeeper实际安装路径):
这里,export ZK_HOME=/opt/zookeeper-3.7.0 export PATH=$PATH:$ZK_HOME/binZK_HOME是一个自定义的环境变量,用于存储Zookeeper的安装目录。然后,我们将$ZK_HOME/bin目录添加到PATH环境变量中,这样你就可以在任何地方通过命令行访问Zookeeper的脚本了。 - 保存并关闭
.bashrc文件。 - 要使更改生效,你需要重新加载
.bashrc文件。可以通过运行以下命令来完成:
或者,你可以简单地关闭并重新打开你的终端。source ~/.bashrc
现在,你应该能够在任何目录下通过运行zkServer.sh或zkCli.sh等命令来启动Zookeeper服务或连接到Zookeeper客户端了。
- 配置防火墙:
- 确保服务器之间的防火墙设置允许Zookeeper集群通信端口(默认为2888和3888)的通信。
以下是一些常见的Linux防火墙管理工具及其相应的命令来允许这些端口:
- 确保服务器之间的防火墙设置允许Zookeeper集群通信端口(默认为2888和3888)的通信。
1. 使用iptables(适用于大多数Linux发行版)
如果你使用的是iptables作为防火墙管理工具,你可以通过添加规则来允许特定的端口。以下命令展示了如何允许2888和3888端口的TCP流量:
sudo iptables -A INPUT -p tcp --dport 2888 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 3888 -j ACCEPT
注意:这些命令是临时的,重启后不会保留。要永久保存这些规则,你需要根据你的Linux发行版使用相应的服务管理工具(如iptables-persistent、netfilter-persistent或save/restore命令)来保存规则。
2. 使用firewalld(Fedora、CentOS 7及更高版本、RHEL 7及更高版本等)
如果你的系统使用firewalld作为防火墙管理工具,你可以通过以下命令来允许端口:
sudo firewall-cmd --permanent --zone=public --add-port=2888/tcp
sudo firewall-cmd --permanent --zone=public --add-port=3888/tcp
sudo firewall-cmd --reload
这里,--zone=public指定了防火墙区域(根据你的配置,这个区域名称可能不同)。--permanent选项表示这些更改是永久的。最后,--reload选项重新加载防火墙规则以应用更改。
3. 使用ufw(Ubuntu的Uncomplicated Firewall)
对于使用ufw的Ubuntu系统,你可以使用以下命令来允许端口:
sudo ufw allow 2888/tcp
sudo ufw allow 3888/tcp
这些命令会立即应用更改,并且(在Ubuntu上)这些更改是持久的,因为ufw会自动保存其配置。
排查
要排查防火墙设置是否允许了这些端口,你可以使用telnet(如果已安装)或nc(netcat)工具来测试端口是否开放。例如,从集群中的一个节点到另一个节点,你可以运行:
telnet <other-node-ip> 2888
或者
nc -zv <other-node-ip> 2888
如果端口是开放的,这些命令应该会显示连接成功或类似的消息。如果端口被阻塞,它们将显示连接失败或超时。
请注意,如果telnet或nc没有安装在你的系统上,你可能需要先安装它们。在Ubuntu上,你可以使用sudo apt-get install telnet或sudo apt-get install netcat来安装。在其他Linux发行版上,相应的包管理器命令可能会有所不同。
三、Zookeeper集群配置
-
编辑zoo.cfg文件:
- 在Zookeeper的
conf目录下,找到zoo_sample.cfg文件,将其复制并重命名为zoo.cfg。 - 编辑
zoo.cfg文件,设置以下关键配置项:dataDir:指定Zookeeper数据存储的目录。clientPort:指定客户端连接的端口号。tickTime:Zookeeper中基本的时间单位,用于心跳和超时等。initLimit:Leader服务器等待Follower服务器启动并完成数据同步的时间限制。syncLimit:Leader服务器与Follower服务器之间同步数据的时间限制。- 在文件末尾添加集群成员信息,格式为
server.N=YYY:A:B,其中N是服务器编号,YYY是服务器IP地址,A是服务器之间通信的端口,B是Leader选举的端口。
- 在Zookeeper的
-
创建myid文件:
- 在每台服务器的
dataDir目录下创建myid文件,文件内容为该服务器的编号(与zoo.cfg中配置的server.N相对应)。
- 在每台服务器的
四、启动Zookeeper集群
-
启动Zookeeper服务:
- 在每台服务器上启动Zookeeper服务。可以使用
zkServer.sh start命令(Linux环境)或相应的命令(Windows环境)。 - 注意,在启动过程中,Zookeeper会自动进行Leader选举,确保集群中有一个Leader和多个Follower(或Observer)。
- 在每台服务器上启动Zookeeper服务。可以使用
-
验证集群状态:
- 使用
zkServer.sh status命令(Linux环境)检查每台服务器的角色和状态。 - 也可以使用Zookeeper客户端工具(如
zkCli.sh)连接到集群,并验证集群的状态和数据一致性。
- 使用
五、维护与监控
-
数据备份:
- 定期备份Zookeeper的数据,以防止数据丢失。
- 可以使用Zookeeper自带的PurgeTxnLog工具或编写脚本定期清理旧的事务日志和快照文件。
-
健康监控:
- 使用监控工具(如Prometheus、Grafana等)监控Zookeeper集群的健康状况和性能指标。
- 定期检查集群的日志文件和性能指标,及时发现并处理潜在问题。
-
安全配置:
- 根据需要配置适当的安全功能(如SSL/TLS加密、Kerberos认证等)以保护集群免受未授权访问和数据泄露的风险。
通过以上步骤,您可以在Zookeeper中成功配置集群,并确保其稳定运行。请注意,具体的配置参数和步骤可能会因Zookeeper的版本和部署环境的不同而有所差异,请根据实际情况进行调整。
六、如何修改Zookeeper中配置集群的配置文件
在Zookeeper中配置集群的配置文件(通常是zoo.cfg),需要遵循一定的步骤和规则来确保集群的正确配置和稳定运行。以下是一个详细的配置过程:
(1)、获取Zookeeper安装包并解压
首先,从Apache Zookeeper官网或其他可信源下载Zookeeper的安装包,并将其解压到服务器的指定目录。例如,解压到/opt/zookeeper目录。
(2)、复制并编辑zoo.cfg文件
-
复制配置文件:
在Zookeeper的conf目录下,通常会有一个名为zoo_sample.cfg的示例配置文件。将该文件复制一份,并重命名为zoo.cfg,以便进行编辑。cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg -
编辑zoo.cfg文件:
使用文本编辑器(如vi、nano等)打开zoo.cfg文件,并进行必要的配置。
(3)、配置关键参数
在zoo.cfg文件中,需要配置以下关键参数:
-
dataDir:
指定Zookeeper存储数据的目录。这个目录在集群的所有节点上都应该存在,并且Zookeeper进程有权限读写。dataDir=/opt/zookeeper/data -
clientPort:
指定客户端连接Zookeeper服务器的端口。这是Zookeeper服务监听的端口,用于接收客户端的请求。clientPort=2181 -
tickTime:
Zookeeper中基本的时间单位,用于心跳和超时等。可以根据实际需要调整该值。tickTime=2000 -
initLimit 和 syncLimit:
这两个参数用于配置Zookeeper集群中Follower与Leader之间的同步和超时限制。initLimit=10 syncLimit=5 -
集群成员配置:
在zoo.cfg文件的末尾,添加集群成员的配置信息。格式为server.N=YYY:A:B,其中N是服务器编号(从1开始),YYY是服务器的IP地址或主机名(确保在/etc/hosts文件中进行了正确的IP地址与主机名的映射),A是服务器之间通信的端口,B是Leader选举的端口。server.1=node1:2888:3888 server.2=node2:2888:3888 server.3=node3:2888:3888注意:每个集群成员的A端口通常可以设置为相同的值,但B端口(选举端口)在集群中应该是唯一的,以避免端口冲突。
(4)、创建myid文件
在集群的每个节点上,都需要在dataDir指定的目录下创建一个名为myid的文件,并将文件内容设置为该节点的编号(与zoo.cfg文件中配置的server.N相对应)。例如,在节点1上,myid文件的内容应为1。
echo "1" > /opt/zookeeper/data/myid
(5)、启动Zookeeper服务
配置完成后,就可以启动Zookeeper服务了。在集群的每个节点上执行启动命令(如zkServer.sh start),并检查服务状态(如使用zkServer.sh status命令)以确保集群正常运行。
(6)、验证集群配置
最后,可以通过Zookeeper客户端工具(如zkCli.sh)连接到集群中的任意节点,并执行一些基本操作来验证集群配置是否成功。例如,可以在一个节点上创建一个节点,并在另一个节点上验证该节点是否存在。
通过以上步骤,就可以在Zookeeper中成功配置集群的配置文件了。请注意,具体的配置参数和步骤可能会因Zookeeper的版本和部署环境的不同而有所差异,请根据实际情况进行调整。
七、如何添加规则来允许TCP流量通过防火墙端口2888和3888
- TCP流量是指通过传输控制协议(Transmission Control
Protocol,简称TCP)传输的数据量。TCP是一种面向连接的、可靠的、基于字节流的运输层通信协议,它广泛应用于互联网中,为各种应用提供数据传输服务。
TCP流量的特点
- 面向连接:TCP在传输数据之前,需要先建立连接,即进行三次握手过程,确保双方通信的可靠性。
- 可靠性传输:TCP通过序列号、确认应答、超时重传等机制,确保数据能够准确无误地传输到对方。
- 流量控制:TCP通过滑动窗口等机制,控制发送方发送数据的速率,避免接收方因处理不过来而导致数据丢失。
- 拥塞控制:TCP还具备拥塞控制功能,能够监测网络状况,动态调整发送速率,避免网络拥塞。
TCP流量的计算
TCP流量通常是以字节(Byte)为单位进行计算的。在实际应用中,可以通过各种网络监测工具或软件来查看TCP流量的实时数据和统计信息,以便对网络性能进行评估和优化。
TCP流量的应用场景
TCP流量广泛应用于各种需要可靠数据传输的场合,如网页浏览、文件传输、远程登录、电子邮件等。在这些应用中,TCP通过其可靠的传输机制和流量控制、拥塞控制等功能,确保数据能够高效、准确地传输到对方。
在Windows系统中,添加规则以允许TCP流量通过防火墙端口2888和3888,你可以通过Windows防火墙的高级安全设置来完成。以下是详细的步骤:
(1)、打开Windows防火墙高级安全设置
- 使用管理员权限登录:确保你以管理员身份登录Windows系统。
- 打开控制面板:点击“开始”菜单,选择“控制面板”。
- 选择Windows Defender防火墙:在控制面板中,找到并点击“系统和安全”,然后选择“Windows Defender 防火墙”。
- 进入高级设置:在Windows Defender 防火墙页面,点击左侧的“高级设置”链接。
(2)、创建入站规则
- 选择入站规则:在Windows防火墙高级安全设置窗口中,左侧导航栏中选择“入站规则”。
- 新建规则:点击右侧的“新建规则”按钮,开始创建新的入站规则。
(3)、设置规则属性
- 选择规则类型:在“新建入站规则向导”中,选择“端口”作为规则类型,然后点击“下一步”。
- 配置TCP端口:
- 选择“TCP”作为协议。
- 选择“特定本地端口”,并在文本框中输入“2888,3888”(注意用逗号分隔多个端口)。
- 点击“下一步”。
- 定义操作:选择“允许连接”,然后点击“下一步”。
- 选择配置文件:根据需要选择适用的网络配置文件(域、专用、公用),通常建议全部选择。然后点击“下一步”。
- 命名规则:为规则指定一个名称和描述,例如“Allow Zookeeper Communication”,然后点击“完成”。
(4)、启用规则
- 找到新规则:在“入站规则”列表中,找到你刚刚创建的规则。
- 启用规则:右键点击规则,选择“启用规则”以确保其生效。
(5)、验证规则
为了验证规则是否已正确设置并生效,你可以使用命令行工具来检查端口是否已开放。打开命令提示符(以管理员身份),然后输入以下命令之一来检查端口2888或3888的TCP连接:
netstat -an | findstr 2888
netstat -an | findstr 3888
注意:这些命令将显示所有监听在指定端口上的TCP连接,但它们不会直接显示防火墙规则是否允许这些端口。要验证防火墙规则,你通常需要检查防火墙的设置或使用网络扫描工具来从外部测试端口的可达性。
另外,如果你使用的是Windows Server系统,并且已经熟悉PowerShell,你也可以使用netsh advfirewall命令来直接创建和配置防火墙规则,这可能会提供更高效和灵活的方式来管理防火墙设置。
相关文章:
【小小的脑袋,大大的疑问?】如何在Zookeeper中配置集群?
在Zookeeper中配置集群涉及多个步骤,以确保集群的稳定性和高效运行。以下是一个详细的配置流程: 一、环境准备 选择服务器: 选择合适数量的服务器,通常为奇数(如3台、5台等),以避免脑裂问题。确…...
Metasploit渗透测试之服务端漏洞利用
简介 在之前的文章中,我们学习了目标的IP地址,端口,服务,操作系统等信息的收集。信息收集过程中最大的收获是服务器或系统的操作系统信息。这些信息对后续的渗透目标机器非常有用,因为我们可以快速查找系统上运行的服…...
什么是原生IP?
代理IP的各个类型称呼有很多,且它们在网络使用和隐私保护方面扮演着不同的角色。今天将探讨什么是原生IP以及原生IP和住宅IP之间的区别,帮助大家更好地理解这两者的概念和实际应用,并选择适合自己的IP类型。 一、什么是原生IP? 原…...
【C++】unordered_map(set)
前言 C中的unordered容器(例如std::unordered_set、std::unordered_map等)底层是基于**哈希表(Hash Table)**实现的。哈希表是一种通过哈希函数将元素映射到特定“桶(bucket)”的容器,提供快速的…...
HTML 盒模型
盒模型(box model) 简介:盒模型(Box Model)是CSS中一个非常重要的概念,它定义了元素在网页上的布局和尺寸。 组成:内容(Content)、内边距(Paddingÿ…...
node.js npm 安装和安装create-next-app -windowsserver12
1、官网下载windows版本NODE.JS https://nodejs.org/dist/v20.17.0/node-v20.17.0-x64.msi 2、安装后增加两个文件夹目录node_global、node_cache npm config set prefix "C:\Program Files\nodejs\node_global" npm config set prefix "C:\Program Files\nod…...
Android13 展锐平台拨号中视频彩铃界面方向未与设备方向一致
背景:拨号中视频彩铃界面方向未与设备方向一致,要求视频彩铃界面方向与设备方向一致,修改视频彩铃显示的地方; 如图所示: 修改: packages/services/Telecomm/src/com/android/server/telecom/VideoProvid…...
为什么IP首部的源IP地址和目的IP地址不变而MAC层的源MAC地址和目的MAC地址变
IP首部的源IP地址和目的IP地址不变,而MAC层的源MAC地址和目的MAC地址变化的原因主要涉及到计算机网络中的分层结构和数据包传输过程。在OSI(开放系统互联)模型中,计算机网络被分为不同的层,每层都有其特定的功能。IP…...
Django 数据库配置以及字段设置详解
配置PostGre 要在 Django 中配置连接 PostgreSQL 数据库,并创建一个包含“使用人”和“车牌号”等字段的 Car 表 1. 配置 PostgreSQL 数据库连接 首先,在 Django 项目的 settings.py 中配置 PostgreSQL 连接。 修改 settings.py 文件: …...
C++ 左值右值引用梳理
C 左值右值引用梳理 左值与右值的区别 在参考资料上看到这样一句话 https://www.internalpointers.com/post/understanding-meaning-lvalues-and-rvalues-c In C an lvalue is something that points to a specific memory location. On the other hand, a rvalue is somethi…...
向量化技术在机器学习领域的深度实践与探索
向量化技术的魅力初现 在机器学习的广袤天地中,数据是驱动模型学习与进化的核心燃料。然而,面对海量、高维的数据,如何高效地进行处理与利用,成为了研究者们必须面对的问题。向量化技术应运而生,通过将文本、图像、音…...
RuoYi若依框架学习:多环境配置
在开发过程中,项目往往需要在不同的环境(如开发、测试和生产)中运行。RuoYi框架支持通过配置文件轻松实现多环境管理。以下是如何配置和使用多环境的技术分析。 1. 环境配置文件 RuoYi框架使用application-{profile}.yml文件来管理不同环境…...
Linux-RedHat7.4-服务器搭建FTP
Linux FTP 1、安装vsftpd和lftp: yum -y install vsftpd lftp ftp 2、创建用户: vsftpd提供了三种认证方式:本地用户、虚拟用户、匿名用户,本文介绍本地用户的认证方式。 注:本文创建的本地用户为只能访问ftp&…...
遍历递归数结构,修改里的disabled值
返回参数中新增字段 disabled,后端给的值为1和2, disabled1时,代表该节点需要置灰,不可选中 现在需要将disabled的值,改为布尔类型; 后端给的数结构是对象类型,tree接收数组类型; 先将对象类型的数据,遍历递归,修改里面的disabled值,最后再加[ ],改为…...
怎么通过AI大模型开发一个网站?
目录 一、提示词与AI输出 二、网站效果 以前不会代码开发,写网站是不可能的事情,现在有了AI,一切都有了可能。以下是我通过通义千问大模型开发的简单网站。 一、提示词与AI输出 提示词1 你是python程序员,我有一个大的需求&am…...
【Kubernetes】常见面试题汇总(四十)
目录 93. Kubelet 与 kubeproxy 作用。Kubeproxy 的三种代理模式和各自的原理以及它们的区别。 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 题目 69-113 属…...
数据仓库-数据命名标准规范
一:主题域 1.1 业务主题域1.2 分析主题域1.3 数据域二: 词根 2.2 业务词根三:对象数据规范 3.1 表规范 3.1.1 数据装载周期3.1.2 数据装载方式3.1.3 表命名规范3.2.1 分区字段3.2.2 其他通用字段3.3 指标规范 3.3.1 时间修饰词3.3.2 常用度量3.3.2 指标命名3.4 ETL命名规范...
OCR识别系统 YOLOv8 +Paddle 方案落地
YOLOv8 PaddleOCR 技术方案落地 Yolov8相关文档Step 1 证件模型的训练Step 2 Yolov8进行图片推理Step 3 PaddleOCR进行识别Step 4 整合Yolov8 PaddleOCR 进行OCR Yolov8相关文档 《yolov8 官方网站》 《Yolov8 保姆级别安装》 Ultralytics YOLOv8 是一款尖端的、最先进的 (S…...
828华为云征文|部署去中心化网络的 AI 照片管理应用 PhotoPrism
828华为云征文|部署去中心化网络的 AI 照片管理应用 PhotoPrism 一、Flexus云服务器X实例介绍二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置2.4 Docker 环境搭建 三、Flexus云服务器X实例部署 PhotoPrism3.1 PhotoPrism 介绍3.2 PhotoPrism…...
【PAM】Linux登录认证限制
PAM(Pluggable Authentication Modules,可插拔认证模块)是一种灵活的认证框架,用于在 Linux 和其他类 Unix 系统上管理用户的身份验证。PAM 允许系统管理员通过配置不同的认证模块来定制应用程序和服务的认证方式,而不…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
