Apache RocketMQ5(1)

vim /etc/hosts

nameserver

123.45.67.891 nameserver1 # 6789
198.76.54.321 nameserver2 # 6789

broker

123.45.67.891 broker-master1 # 12911
123.45.67.891 broker-slave2 # 13021
198.76.54.321 broker-master2 # 12921
198.76.54.321 broker-slave1 # 13011

配置完成后,重启网卡

systemctl restart network

Centos 8 重启网卡

nmcli c reload


#### 2.2.**安全组配置**


为了安全只开放特定的端口号:6789(NameServer1 和 NameServer2)、12911(Master1)、12921(Master2)、13011(Slave1)、13021(Slave2)、9081(proxy1)、9082(proxy2)


#### 2.3.**创建消息存储路径**



> 
> **1号服务器:123.45.67.891**
> 
> 
> 



mkdir -p /data/service/rocketmq/store/broker-a/commitlog

mkdir -p /data/service/rocketmq/store/broker-a/consumequeue

mkdir -p /data/service/rocketmq/store/broker-a/index

mkdir -p /data/service/rocketmq/store/broker-b-s/commitlog

mkdir -p /data/service/rocketmq/store/broker-b-s/consumequeue

mkdir -p /data/service/rocketmq/store/broker-b-s/index



> 
> **2号服务器 :198.76.54.321**
> 
> 
> 



mkdir -p /data/service/rocketmq/store/broker-b/commitlog

mkdir -p /data/service/rocketmq/store/broker-b/consumequeue

mkdir -p /data/service/rocketmq/store/broker-b/index

mkdir -p /data/service/rocketmq/store/broker-a-s/commitlog

mkdir -p /data/service/rocketmq/store/broker-a-s/consumequeue

mkdir -p /data/service/rocketmq/store/broker-a-s/index


#### **2.4. broker配置文件**


**分别在2台服务器上执行以下命令,编辑 broker.conf 文件,改成对应服务器的外网IP**



两台服务器同时执行

服务器 123.45.67.891

vim /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/conf/broker.conf

namesrvAddr=198.76.54.321:9876
brokerIP=198.76.54.321

服务器 198.76.54.321

vim /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/conf/broker.conf

namesrvAddr=198.76.54.321:9876
brokerIP=198.76.54.321


##### 2.4.1. master1(服务器一)


服务器一:123.45.67.891、192.168.0.162


###### broker-a.properties



修改同步复制配置文件

vim /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/conf/2m-2s-sync/broker-a.properties

#Broker服务地址
brokerIP1=123.45.67.891
brokerIP2=123.45.67.891
#所属集群名字
brokerClusterName=test-dh-rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=123.45.67.891:6789;198.76.54.321:6789
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=false
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=false
#Broker 对外服务的监听端口
listenPort=12911
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/data/service/rocketmq/store/broker-a
#commitLog 存储路径
storePathCommitLog=/data/service/rocketmq/store/broker-a/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/data/service/rocketmq/store/broker-a/consumequeue
#消息索引存储路径
storePathIndex=/data/service/rocketmq/store/broker-a/index
#checkpoint 文件存储路径
storeCheckpoint=/data/service/rocketmq/store/broker-a/checkpoint
#abort 文件存储路径
abortFile=/data/service/rocketmq/store/broker-a/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128


###### rmq-proxy-a.json



创建代理配置文件

vim /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/conf/2m-2s-sync/rmq-proxy-a.json
{
// 集群名称 与broker一致
“rocketMQClusterName”: “test-dh-rocketmq-cluster”,
// 代理监听端口
“remotingListenPort”: 9080,
// gRPC服务器端口
“grpcServerPort”: 9081,
// 对应namesr的ip
“namesrvAddr”:“123.45.67.891:6789;198.76.54.321:6789”
}


##### 2.4.2. **slave2(服务器一)**


服务器一:123.45.67.891、192.168.0.162


###### broker-b-s.properties



修改同步复制配置文件

vim /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/conf/2m-2s-sync/broker-b-s.properties

#Broker服务地址
brokerIP1=123.45.67.891
#所属集群名字
brokerClusterName=test-dh-rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=123.45.67.891:6789;198.76.54.321:6789
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=false
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=false
#Broker 对外服务的监听端口
listenPort=13021
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/data/service/rocketmq/store/broker-b-s
#commitLog 存储路径
storePathCommitLog=/data/service/rocketmq/store/broker-b-s/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/data/service/rocketmq/store/broker-b-s/consumequeue
#消息索引存储路径
storePathIndex=/data/service/rocketmq/store/broker-b-s/index
#checkpoint 文件存储路径
storeCheckpoint=/data/service/rocketmq/store/broker-b-s/checkpoint
#abort 文件存储路径
abortFile=/data/service/rocketmq/store/broker-b-s/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128


###### rmq-proxy-b-s.json



创建代理配置文件

vim /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/conf/2m-2s-sync/rmq-proxy-b-s.json
{
// 集群名称 与broker一致
“rocketMQClusterName”: “test-dh-rocketmq-cluster”,
// 代理监听端口
“remotingListenPort”: 9083,
// gRPC服务器端口
“grpcServerPort”: 9082,
// 对应namesr的ip
“namesrvAddr”:“123.45.67.891:6789;198.76.54.321:6789”
}


##### 2.4.3. **master2**(服务器二)


服务器一:198.76.54.321、192.168.0.128


###### broker-b.properties



修改同步复制配置文件

vim /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/conf/2m-2s-sync/broker-b.properties

#Broker服务地址,设置broker节点所在服务器的ip地址(这个非常重要,主从模式下,从节点会根据主节点的brokerIP2来同步数据,#如果不配置,主从无法同步,brokerIP1设置为自己外网能访问的ip,服务器双网卡情况下必须配置,比如阿里云这$种,#主节点需要配置ip1和ip2,从节点只需要配置ip1即可)
brokerIP1=198.76.54.321
brokerIP2=198.76.54.321
#所属集群名字
brokerClusterName=test-dh-rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=123.45.67.891:6789;198.76.54.321:6789
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=false
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=false
#Broker 对外服务的监听端口
listenPort=12921
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/data/service/rocketmq/store/broker-b
#commitLog 存储路径
storePathCommitLog=/data/service/rocketmq/store/broker-b/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/data/service/rocketmq/store/broker-b/consumequeue
#消息索引存储路径
storePathIndex=/data/service/rocketmq/store/broker-b/index
#checkpoint 文件存储路径
storeCheckpoint=/data/service/rocketmq/store/broker-b/checkpoint
#abort 文件存储路径
abortFile=/data/service/rocketmq/store/broker-b/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128


###### rmq-proxy-b.json



创建代理配置文件

vim /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/conf/2m-2s-sync/rmq-proxy-b.json
{
// 集群名称 与broker一致
“rocketMQClusterName”: “test-dh-rocketmq-cluster”,
// 代理监听端口
“remotingListenPort”: 9080,
// gRPC服务器端口
“grpcServerPort”: 9081,
// 对应namesr的ip
“namesrvAddr”:“123.45.67.891:6789;198.76.54.321:6789”
}


##### 2.4.4. **slave1**(服务器二)


服务器一:198.76.54.321、192.168.0.128


###### broker-a-s.properties



修改同步复制配置文件

vim /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/conf/2m-2s-sync/broker-a-s.properties

#所属集群名字
brokerClusterName=test-dh-rocketmq-cluster
#broker 名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer 地址,分号分割
namesrvAddr=123.45.67.891:6789;198.76.54.321:6789
#安装可视化界面使用,需要是IP,不能是host
#设置broker节点所在服务器的ip地址(**这个非常重要,主从模式下,从节点会根据主节点的brokerIP2来同步数据,#如果不配置,主从无法同步,brokerIP1设置为自己外网能访问的ip,服务器双网卡情况下必须配置,比如阿里云这$种,#主节点需要配置ip1和ip2,从节点只需要配置ip1即可)
brokerIP1=198.76.54.321
#在发送消息时,自动创建服务器不存在的 topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭
#进行发消息时,必须要指定topic,对于topic的设置有一个开关autoCreateTopicEnable,一#般在开发测试环境中会使用默认设置autoCreateTopicEnable = true,但是这样就会导致#topic的设置不容易规范管理,没有统一的审核。所以在正式环境中会在Broker启动时#设置参数autoCreateTopicEnable = false。这样当需要增加topic时就需要在web管理界面上#添加即可。
autoCreateTopicEnable=false
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=false
#Broker 对外服务的监听端口,如果从节点是单独服务器,则可以使用默认端口19011
listenPort=13011
#删除文件时间点,默认凌晨 4 点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog 每个文件的大小默认 1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/data/service/rocketmq/store/broker-a-s
#commitLog 存储路径
storePathCommitLog=/data/service/rocketmq/store/broker-a-s/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/data/service/rocketmq/store/broker-a-s/consumequeue
#消息索引存储路径
storePathIndex=/data/service/rocketmq/store/broker-a-s/index
#checkpoint 文件存储路径
storeCheckpoint=/data/service/rocketmq/store/broker-a-s/checkpoint
#abort 文件存储路径
abortFile=/data/service/rocketmq/store/broker-a-s/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制 Master
#- SYNC_MASTER 同步双写 Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128


###### rmq-proxy-a-s.json



创建代理配置文件

vim /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/conf/2m-2s-sync/rmq-proxy-a-s.json
{
// 集群名称 与broker一致
“rocketMQClusterName”: “test-dh-rocketmq-cluster”,
// 代理监听端口
“remotingListenPort”: 9083,
// gRPC服务器端口
“grpcServerPort”: 9082,
// 对应namesr的ip
“namesrvAddr”:“123.45.67.891:6789;198.76.54.321:6789”
}


#### 2.5.服务启动


##### 2.5.1.启动**NameServer集群**


分别在服务器一和服务器二启动NameServer1 和 NameServer2



两个服务器都需要操作

#在rocketmq的conf目录下添加namesrv.properties文件,文件中添加端口配置
listenPort=6789

到安装目录下

[admin@test-webapp-svr20 rocketmq] cd /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/bin

启动namesrv

[admin@test-webapp-svr20 bin] nohup sh mqnamesrv -c …/conf/namesrv.properties &

验证namesrv是否启动成功

[admin@test-webapp-svr20 bin] tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success…


##### 2.5.2.**启动Broker集群**


启动顺序


**注意:如果不使用代理proxy模式,启动命令不需要带 --enable-proxy 和-pc**



> 
> **1、在123.45.67.891 启动 master1**
> 
> 
> 



到安装目录下

[admin@test-webapp-svr20 rocketmq] cd /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/bin

先启动broker

[admin@test-webapp-svr20 bin] nohup sh mqbroker -c /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/conf/2m-2s-sync/broker-a.properties -pc /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/conf/2m-2s-sync/rmq-proxy-a.json --enable-proxy &

验证broker是否启动成功, 比如, broker的ip是192.168.1.2 然后名字是broker-a

[admin@test-webapp-svr20 bin] tail -1000f ~/logs/rocketmqlogs/proxy.log
The broker[broker-a,192.169.1.2:10911] boot success…



> 
> **2、在198.76.54.321 启动 master2**
> 
> 
> 



到安装目录下

[admin@test-webapp-svr20 rocketmq] cd /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/bin

先启动broker

[admin@test-webapp-svr20 bin] nohup sh mqbroker -c /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/conf/2m-2s-sync/broker-b.properties -pc /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/conf/2m-2s-sync/rmq-proxy-b.json --enable-proxy &

验证broker是否启动成功, 比如, broker的ip是192.168.1.2 然后名字是broker-a

[admin@test-webapp-svr20 bin] tail -1000f ~/logs/rocketmqlogs/proxy.log
The broker[broker-a,192.169.1.2:10911] boot success…



> 
> **3、在198.76.54.321 启动 slave1**
> 
> 
> 



到安装目录下

[admin@test-webapp-svr20 rocketmq] cd /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/bin

先启动broker 第二步使用的是默认的proxy配置文件,第三步使用指定配置文件,对应的proxy的端口不一致

[admin@test-webapp-svr20 bin] nohup sh mqbroker -c /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/conf/2m-2s-sync/broker-a-s.properties -pc /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/conf/2m-2s-sync/rmq-proxy-a-s.json --enable-proxy &

验证broker是否启动成功, 比如, broker的ip是192.168.1.2 然后名字是broker-a

[admin@test-webapp-svr20 bin] tail -1000f ~/logs/rocketmqlogs/proxy.log
The broker[broker-a,192.169.1.2:10911] boot success…



> 
> **4、在123.45.67.891 启动 slave2**
> 
> 
> 



到安装目录下

[admin@test-webapp-svr20 rocketmq] cd /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/bin

先启动broker

[admin@test-webapp-svr20 bin] nohup sh mqbroker -c /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/conf/2m-2s-sync/broker-b-s.properties -pc /data/service/rocketmq/rocketmq-all-5.1.4-bin-release/conf/2m-2s-sync/rmq-proxy-b-s.json --enable-proxy &

验证broker是否启动成功, 比如, broker的ip是192.168.1.2 然后名字是broker-a

[admin@test-webapp-svr20 bin] tail -1000f ~/logs/rocketmqlogs/proxy.log
The broker[broker-a,192.169.1.2:10911] boot success…


##### 2.5.3.**查看状态**



分别在两个服务器执行命令

jps
启动完成,分别在2台服务器查看集群信息:

sh mqadmin clusterlist -n 123.45.67.891:6789

sh mqadmin clusterlist -n 198.76.54.321:6789

或者执行以下命令:
sh mqadmin clusterlist -n localhost:6789


##### 2.5.3.开通防火墙端口(防火墙关闭除外)


**端口规则说明**:



> 
> namesrv默认端口:9876  
## 最后

**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**

![img](https://img-blog.csdnimg.cn/img_convert/d5fc4ca9dd1ec80da3489497a8cde698.png)

![img](https://img-blog.csdnimg.cn/img_convert/e094c25db8bd9f7804aca4d2bb081703.png)

![img](https://img-blog.csdnimg.cn/img_convert/2fbe5a476c5bfb90db8336deb9a82780.png)

![img](https://img-blog.csdnimg.cn/img_convert/5a6a4a6cdc457d0a2df7cd6ee057bde7.png)

![img](https://img-blog.csdnimg.cn/img_convert/e5abc6c5b1fac61c496ed6b5abbf3858.png)

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618653875)

**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

# 最后

**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**

[外链图片转存中...(img-q0RYdHhv-1715455521094)]

[外链图片转存中...(img-TUOMtxzg-1715455521095)]

[外链图片转存中...(img-sKrVm2HF-1715455521095)]

[外链图片转存中...(img-Bse9aH34-1715455521095)]

[外链图片转存中...(img-oa3ruCv6-1715455521095)]

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618653875)

**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值