RocketMQ双主双从同步集群部署

🎈 作者:互联网-小啊宇

🎈 简介: CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护等领域。
🎈 博客首页:CSDN【互联网-小阿宇】 、阿里云【互联网-小阿宇】
🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬

在这里插入图片描述

RocketMQ双主双从同步集群部署

  • 服务器环境:
  • 双主双从同步集群部署:
  • 一、安装JDK环境
    • 1.1 上传安装包
    • 1.2 解压安装包
    • 1.3 编写环境变量文件
    • 1.4 验证JDK版本
  • 二、安装RocketMQ
    • 1.1 解压安装包
    • 1.2 【192.168.8.16】修改配置文件
    • 1.3 【192.168.8.18】修改配置文件
    • 1.4 关键配置详解:
    • 1.5 启动两台服务器的nameServer
    • 1.6 分别启动两台服务器的broker的节点
      • 1.6.1 【192.168.8.16】启动a主节点、b从节点
      • 1.6.2 【192.168.8.18】启动b主节点、a从节点
    • 1.7 启动效果
    • 1.8 常用启停命令:
  • 三、rocketmq-dashboard 控制台部署
    • 1.1 下载安装包到电脑主机编写application.yml配置文件
    • 1.2 将rocketmq-dashboard-master打包
      • 1.2.1 如果主机有java环境、maven环境的直接进行打包就行
      • 1.2.2 linux安装maven进行打包
    • 1.3 启动rocketmq-dashboard 控制台
    • 1.4 开启鉴权登录

服务器环境:

服务器IP操作系统备注
192.168.8.16Centos7.5JDK(1.8+)、RocketMQ(5.1.2)
192.168.8.18Centos7.5JDK(1.8+)、RocketMQ(5.1.2)

RocketMQ下载地址:https://rocketmq.apache.org/download/

双主双从同步集群部署:

服务器IPbroker名称备注
192.168.8.16broker-aa主节点
192.168.8.16broker-b-sb从节点
192.168.8.18broker-bb主节点
192.168.8.18broker-a-sa从节点

创建安装目录并存放安装包目录

mkdir /domain

关闭防火墙、沙盒

systemctl stop firewalld  && systemctl disable firewalldvim /etc/selinux/config
#修改
ELINUX=disabled#重启
reboot

一、安装JDK环境


1.1 上传安装包

在这里插入图片描述

1.2 解压安装包

[root@localhost ~]# tar -zxf  /domain/jdk-8u171-linux-x64.tar.gz -C /usr/local/
[root@localhost ~]# mv /usr/local/jdk1.8.0_171  /usr/local/java

1.3 编写环境变量文件

[root@localhost ~]# vim /etc/profile
#尾部添加
export JAVA_HOME=/usr/local/java
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
[root@localhost ~]# source /etc/profile

1.4 验证JDK版本

[root@localhost ~]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

二、安装RocketMQ


1.1 解压安装包

 unzip /domain/rocketmq-all-5.1.2-bin-release.zip -d /domain/

1.2 【192.168.8.16】修改配置文件

  • 修改运行内存可编辑runserver.sh与runbroker.sh(需要的修改,不需要跳过
1、bin/runserver.shJAVA_OPT="${JAVA_OPT} -server -Xms520m -Xmx1g -Xmn128m -XX:metaspaceSize=120m -XX:MaxMetaspaceSize=320m"
2、bin/runnbroker.shJAVA_OPT="${JAVA_OPT} -server -Xms520m -Xmx1G -Xmn128m"
  • 创建rocketMQ存储目录
mkdir /domain/rocketMQ
  • 修改conf目录中2m-2s-sync目录中的配置文件
vim /domain/rocketmq-all-5.1.2-bin-release/conf/2m-2s-sync/broker-a.properties
# 所属集群名字
brokerClusterName=test
# broker名字,注意此处不同的配置文件填写的不一样(按配置文件文件名来匹配)
brokerName=broker-a
# 0 表示Master, > 0 表示slave
brokerId=0
# 注册中心,可使用集群模式
namesrvAddr=192.168.8.16:9876;192.168.8.18:9876
# 在发送消息时,自动创建服务器不存在的Topic,默认创建的队列数
defaultTopicQueueNums=4
# 是否允许Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
# 是否允许Broker自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
# Broker 对外服务的监听端口
listenPort=10933
# 删除文件时间点,默认是凌晨4点
deleteWhen=04
# 文件保留时间,默认48小时
fileReservedTime=120
# commitLog每个文件的大小默认1G
# 附加:消息实际存储位置,和ConsumeQueue是mq的核心存储概念,之前搭建2m环境的时候创建在store下面,用于数据存储,consumequeue是一个逻辑的概念,消息过来之后,consumequeue并不是把消息所有保存起来,而是记录一个数据的位置,记录好之后再把消息存到commitlog文件里
mapedFileSizeCommitLog=1073741824
# ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
destroyMapedFileIntervalForcibly=120000
redeleteHangedFileInterval=120000
# 检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
# 存储路径
storePathRootDir=/domain/rocketMQ/store
# commitLog存储路径
storePathCommitLog=/domain/rocketMQ/commitlog
# 消费队列存储路径
storePathConsumeQueue=/domain/rocketMQ/consumequeue
# 消息索引存储路径
storePathIndex=/domain/rocketMQ/index
# checkpoint 文件存储路径
storeCheckpoint=/domain/rocketMQ/checkpoint
# abort 文件存储路径
abortFile=/domain/rocketMQ/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
# 发消息线程池数量
sendMessageTreadPoolNums=128
# 拉消息线程池数量
pullMessageTreadPoolNums=128
  • slave配置
cat /domain/rocketmq-all-5.1.2-bin-release/conf/2m-2s-sync/broker-b-s.properties
# 所属集群名字
brokerClusterName=test
# broker名字,注意此处不同的配置文件填写的不一样(按配置文件文件名来匹配)
brokerName=broker-b-s
# 0 表示Master, > 0 表示slave
brokerId=1
# 注册中心,可使用集群模式
namesrvAddr=192.168.8.16:9876;192.168.8.18:9876
# 在发送消息时,自动创建服务器不存在的Topic,默认创建的队列数
defaultTopicQueueNums=4
# 是否允许Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
# 是否允许Broker自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
# Broker 对外服务的监听端口
listenPort=10900
# 删除文件时间点,默认是凌晨4点
deleteWhen=04
# 文件保留时间,默认48小时
fileReservedTime=120
# commitLog每个文件的大小默认1G
# 附加:消息实际存储位置,和ConsumeQueue是mq的核心存储概念,之前搭建2m环境的时候创建在store下面,用于数据存储,consumequeue是一个逻辑的概念,消息过来之后,consumequeue并不是把消息所有保存起来,而是记录一个数据的位置,记录好之后再把消息存到commitlog文件里
mapedFileSizeCommitLog=1073741824
# ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
destroyMapedFileIntervalForcibly=120000
redeleteHangedFileInterval=120000
# 检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
# 存储路径
storePathRootDir=/domain/rocketMQ/slave/store
# commitLog存储路径
storePathCommitLog=/domain/rocketMQ/slave/commitlog
# 消费队列存储路径
storePathConsumeQueue=/domain/rocketMQ/slave/consumequeue
# 消息索引存储路径
storePathIndex=/domain/rocketMQ/slave/index
# checkpoint 文件存储路径
storeCheckpoint=/domain/rocketMQ/slave/checkpoint
# abort 文件存储路径
abortFile=/domain/rocketMQ/slave/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
# 发消息线程池数量
sendMessageTreadPoolNums=128
# 拉消息线程池数量
pullMessageTreadPoolNums=128

1.3 【192.168.8.18】修改配置文件

与192.168.8.16的区别在于修改的文件名不同,我把详细配置一样放在下面

  • 修改运行内存可编辑runserver.sh与runbroker.sh(需要的修改,不需要跳过
1、bin/runserver.shJAVA_OPT="${JAVA_OPT} -server -Xms520m -Xmx1g -Xmn128m -XX:metaspaceSize=120m -XX:MaxMetaspaceSize=320m"
2、bin/runnbroker.shJAVA_OPT="${JAVA_OPT} -server -Xms520m -Xmx1G -Xmn128m"
  • 创建rocketMQ存储目录
mkdir /domain/rocketMQ
  • 修改conf目录中2m-2s-sync目录中的配置文件
vim /domain/rocketmq-all-5.1.2-bin-release/conf/2m-2s-sync/broker-b.properties
# 所属集群名字
brokerClusterName=test
# broker名字,注意此处不同的配置文件填写的不一样(按配置文件文件名来匹配)
brokerName=broker-b
# 0 表示Master, > 0 表示slave
brokerId=0
# 注册中心,可使用集群模式
namesrvAddr=192.168.8.16:9876;192.168.8.18:9876
# 在发送消息时,自动创建服务器不存在的Topic,默认创建的队列数
defaultTopicQueueNums=4
# 是否允许Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
# 是否允许Broker自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
# Broker 对外服务的监听端口
listenPort=10933
# 删除文件时间点,默认是凌晨4点
deleteWhen=04
# 文件保留时间,默认48小时
fileReservedTime=120
# commitLog每个文件的大小默认1G
# 附加:消息实际存储位置,和ConsumeQueue是mq的核心存储概念,之前搭建2m环境的时候创建在store下面,用于数据存储,consumequeue是一个逻辑的概念,消息过来之后,consumequeue并不是把消息所有保存起来,而是记录一个数据的位置,记录好之后再把消息存到commitlog文件里
mapedFileSizeCommitLog=1073741824
# ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
destroyMapedFileIntervalForcibly=120000
redeleteHangedFileInterval=120000
# 检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
# 存储路径
storePathRootDir=/domain/rocketMQ/store
# commitLog存储路径
storePathCommitLog=/domain/rocketMQ/commitlog
# 消费队列存储路径
storePathConsumeQueue=/domain/rocketMQ/consumequeue
# 消息索引存储路径
storePathIndex=/domain/rocketMQ/index
# checkpoint 文件存储路径
storeCheckpoint=/domain/rocketMQ/checkpoint
# abort 文件存储路径
abortFile=/domain/rocketMQ/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
# 发消息线程池数量
sendMessageTreadPoolNums=128
# 拉消息线程池数量
pullMessageTreadPoolNums=128
  • slave配置
cat /domain/rocketmq-all-5.1.2-bin-release/conf/2m-2s-sync/broker-a-s.properties
# 所属集群名字
brokerClusterName=test
# broker名字,注意此处不同的配置文件填写的不一样(按配置文件文件名来匹配)
brokerName=broker-a-s
# 0 表示Master, > 0 表示slave
brokerId=1
# 注册中心,可使用集群模式
namesrvAddr=192.168.8.16:9876;192.168.8.18:9876
# 在发送消息时,自动创建服务器不存在的Topic,默认创建的队列数
defaultTopicQueueNums=4
# 是否允许Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
# 是否允许Broker自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
# Broker 对外服务的监听端口
listenPort=10900
# 删除文件时间点,默认是凌晨4点
deleteWhen=04
# 文件保留时间,默认48小时
fileReservedTime=120
# commitLog每个文件的大小默认1G
# 附加:消息实际存储位置,和ConsumeQueue是mq的核心存储概念,之前搭建2m环境的时候创建在store下面,用于数据存储,consumequeue是一个逻辑的概念,消息过来之后,consumequeue并不是把消息所有保存起来,而是记录一个数据的位置,记录好之后再把消息存到commitlog文件里
mapedFileSizeCommitLog=1073741824
# ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
destroyMapedFileIntervalForcibly=120000
redeleteHangedFileInterval=120000
# 检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
# 存储路径
storePathRootDir=/domain/rocketMQ/slave/store
# commitLog存储路径
storePathCommitLog=/domain/rocketMQ/slave/commitlog
# 消费队列存储路径
storePathConsumeQueue=/domain/rocketMQ/slave/consumequeue
# 消息索引存储路径
storePathIndex=/domain/rocketMQ/slave/index
# checkpoint 文件存储路径
storeCheckpoint=/domain/rocketMQ/slave/checkpoint
# abort 文件存储路径
abortFile=/domain/rocketMQ/slave/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
# 发消息线程池数量
sendMessageTreadPoolNums=128
# 拉消息线程池数量
pullMessageTreadPoolNums=128

1.4 关键配置详解:

brokerClusterName:只要是同一个集群里面的节点,都必须是这一个名称,可以自定义
brokerName:broker的名称,同一个broker的主从节点名称保持一致。
brokerId:broker的id标识。0:主节点,大于0都是从节点
namesrvAddr:nameSrv的注册中心地址,可以是集群模式,多个ip之间使用英文的;分隔
listenPort:监听端口,同一个ip地址下,端口不能保持一致,需修改
brokerRole:broker的角色,ASYNC_MASTER 异步复制Master,SYNC_MASTER 同步双写Master,SLAVE从节点专用。
flushDiskType:数据刷盘方式。ASYNC_FLUSH 异步刷盘,SYNC_FLUSH 同步刷盘
storePathRootDir=/usr/local/rocketMQ/store 存储路径
storePathCommitLog=/usr/local/rocketMQ/commitlog commitLog存储路径
storePathConsumeQueue=/usr/local/rocketMQ/consumequeue 消费队列存储路径
storePathIndex=/usr/local/rocketMQ/index消息索引存储路径
storeCheckpoint=/usr/local/rocketMQ/checkpoint checkpoint 文件存储路径
abortFile=/usr/local/rocketMQ/abort abort 文件存储路径

1.5 启动两台服务器的nameServer

cd /domain/rocketmq-all-5.1.2-bin-release/bin
nohup sh mqnamesrv -> namesrc.log  2>&1 &

1.6 分别启动两台服务器的broker的节点

1.6.1 【192.168.8.16】启动a主节点、b从节点

#a主节点
cd /domain/rocketmq-all-5.1.2-bin-release/bin
nohup sh mqbroker -c /domain/rocketmq-all-5.1.2-bin-release/conf/2m-2s-sync/broker-a.properties -> broker-a.log  2>&1 &
#b从节点
cd /domain/rocketmq-all-5.1.2-bin-release/bin
nohup sh mqbroker -c /domain/rocketmq-all-5.1.2-bin-release/conf/2m-2s-sync/broker-b-s.properties -> broker-b-s.log  2>&1 &

1.6.2 【192.168.8.18】启动b主节点、a从节点

#b主节点
cd /domain/rocketmq-all-5.1.2-bin-release/bin
nohup sh mqbroker -c /domain/rocketmq-all-5.1.2-bin-release/conf/2m-2s-sync/broker-b.properties -> broker-b.log  2>&1 &
#a从节点
cd /domain/rocketmq-all-5.1.2-bin-release/bin
nohup sh mqbroker -c /domain/rocketmq-all-5.1.2-bin-release/conf/2m-2s-sync/broker-a-s.properties -> broker-a-s.log  2>&1 &

1.7 启动效果

两台都一样
在这里插入图片描述

1.8 常用启停命令:

sh mqshutdown broker  停止brokersh mqshutdown namesrv 停止namesrv

三、rocketmq-dashboard 控制台部署


在这里插入图片描述

下载地址:
https://github.com/apache/rocketmq-dashboard

1.1 下载安装包到电脑主机编写application.yml配置文件

文件位置:rocketmq-dashboard-master\src\main\resources\application.yml

右键使用记事本打开
在这里插入图片描述
修改以下内容为节点IP

    namesrvAddrs:- 192.168.8.16:9876- 192.168.8.18:9876

在这里插入图片描述
编辑完成后保存退出!

1.2 将rocketmq-dashboard-master打包

1.2.1 如果主机有java环境、maven环境的直接进行打包就行

在pom.xml同级目录操作命令

mvn clean package -Dmaven.test.skip=true

如果报错,根据报错原因进行解决:

  • 有可能是maven的版本过低,进行升级即可
  • 有可能用的自己的maven配置,部分依赖无法下载,通过指定项目本身pom.xml
mvn clean package -Dmaven.test.skip=true -f C:\Desktop\rocketmq-dashboard-master\rocketmq-dashboard-master\pom.xml

打包成功后将jar包上传到服务器

1.2.2 linux安装maven进行打包

Maven工具安装:http://t.csdn.cn/IIZVH
将修改过application.yml配置的目录上传到服务器

[root@localhost rocketmq-dashboard-master]# pwd
/root/rocketmq-dashboard-master/rocketmq-dashboard-master
[root@localhost rocketmq-dashboard-master]# ls
docs  frontend  LICENSE  NOTICE  package-lock.json  pom.xml  README.md  src  style  target

maven打包

mvn clean package -Dmaven.test.skip=true -f pom.xml

成功界面:
在这里插入图片描述
如果有报错可能是因为maven版本太低,通过yum -y install maven安装版本为Apache Maven 3.0.5,版本太低导致报错,进行升级即可

1.3 启动rocketmq-dashboard 控制台

cd /root/rocketmq-dashboard-master/rocketmq-dashboard-master/target
nohup java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar -> dashboard.log  2>&1 &

查看日志成功启动:
在这里插入图片描述
关闭防火墙

方式一:建议测试环境
1、关闭防火墙。
systemctl stop firewalld
方式二:生产环境使用
1、开放指定的端口号:firewall-cmd --zone=public --add-port=8080/tcp --permanent
2、重启防火墙:firewall-cmd --reload
注意:使用方式二,就需要将nameServer 与 broker 的端口也需要开放出来。使用了那个端口就必须开放出来,否则会被防火墙给阻挡。

访问rocketmq-dashboard 控制台
访问http://ip:8080
在这里插入图片描述
在这里插入图片描述

1.4 开启鉴权登录

对resource下的application.yml文件进行编辑
在这里插入图片描述
对resource下的user.properties修改

用户名=密码,角色:1、管理员 2、普通用户
在这里插入图片描述

重新打包

cd <pom.xml同级目录>
mvn clean package -Dmaven.test.skip=true -f pom.xml

在这里插入图片描述
运行rocketmq-dashboard 控制台

cd /root/rocketmq-dashboard-master/rocketmq-dashboard-master/target

访问rocketmq-dashboard 控制台
访问http://ip:8080
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rocketMq启动broker报错找不到或无法加载主类 Files\Java\jdk1.8.0_171\lib\dt.jar;C:\Program]

假如弹出提示框提示‘错误: 找不到或无法加载主类 xxxxxx’。 1.打开runbroker.cmd 将"%CLASSPATH%"加上英文双引号&#xff0c;切勿别加中文双引号 2.打开runserver.cmd 同理 将"%CLASSPATH%"加上英文双引号&#xff0c;切勿别加中文双引号 3.正常执行即…

音视频学习-音视频基础

文章目录 一、 音视频录制原理二、音视频播放原理三、图像基础概念1.像素2.分辨率3.位深4.帧率5.码率6.Stride跨距 四、RGB、YUV1.RGB2.YUV1. 4:4:4格式2. 4:2:2格式3. 4:2:0格式4. 4:2:0数据格式对比 3.RGB和YUV的转换4.YUV Stride对齐问题 五、视频的主要概念1.基本概念2.I P…

数据结构:栈和队列(超详细)

目录 ​编辑 栈&#xff1a; 栈的概念及结构&#xff1a; 栈的实现&#xff1a; 队列&#xff1a; 队列的概念及结构&#xff1a; 队列的实现&#xff1a; 扩展知识&#xff1a; 以上就是个人学习线性表的个人见解和学习的解析&#xff0c;欢迎各位大佬在评论区探讨&#…

零售行业供应链管理核心KPI指标(三)

完美订单满足率和退货率 完美订单满足率有三个方面的因素影响&#xff1a;订单按时、足量、无损交货。通常情况下零售企业追求线上订单履行周期慢慢达到行业平均水平&#xff0c;就是交付的速度变快了&#xff0c;这个肯定是一件好事情&#xff0c;趋势越来越好。 同时&#…

星际争霸之小霸王之小蜜蜂(一)

目录 前言 一、安装pygame库 1、pygame库简介 2、在windows系统安装pygame库 二 、搭建游戏框架 1、创建游戏窗口 2、改变窗口颜色 总结 前言 大家应该都看过或者都听说过python神书“大蟒蛇”&#xff0c;上面有一个案例是《外星人入侵》&#xff0c;游戏介绍让我想起了上…

2022年电赛C题——小车跟随行驶系统——做题记录以及经验分享

前言 自己打算将做过的电赛真题&#xff0c;主要包含控制组的&#xff0c;近几年出现的小车控制题目&#xff0c;自己做过的真题以及在准备电赛期间刷真题出现的问题以及经验分享给大家 这次带来的是22年电赛C题——小车跟随行驶系统&#xff0c;这道题目指定使用的是TI的单片…

Python web实战之Django 的跨站点请求伪造(CSRF)保护详解

关键词&#xff1a;Python、Web、Django、跨站请求伪造、CSRF 大家好&#xff0c;今天我将分享web关于安全的话题&#xff1a;Django 的跨站点请求伪造&#xff08;CSRF&#xff09;保护&#xff0c;介绍 CSRF 的概念、原理和保护方法. 1. CSRF 是什么&#xff1f; CSRF&#…

自动化安装系统(二)

利用PXE实现自动化安装 PXE简介 PXE&#xff1a;Preboot Excution Environment&#xff0c;预启动执行环境&#xff0c;是由Intel公司研发&#xff0c;基于Client/Server的网络模式&#xff0c;支持远程主机通过网络从远端服务器下载映像&#xff0c;并由此支持通过网络启动操…

web连接桌面打开gptmap

一&#xff1a;环境配置 需要的材料&#xff1a; python-3.10.4 我使用的是这个版本的&#xff0c;3.8.10 该版本和以下版本组件组合&#xff0c;验证过能正常运行&#xff08;python 3.6.8测试异常&#xff09; websockify 该项目有python版本和node js版本 noVNC 形式的app…

深入解析 Axios Blob 的使用方法及技巧

在 Web 开发中&#xff0c;处理文件传输是一个常见的需求。Blob&#xff08;二进制对象&#xff09;是一种表示二进制数据的方式&#xff0c;常用于处理文件和多媒体数据。本文将介绍如何使用 Axios 和 Blob 来处理文件传输。 Axios Blob 概念 在开始之前&#xff0c;让我们先…

Android之版本号、版本别名、API等级对应关系(全)(一百六十二)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

爬虫逆向实战(十八)--某得科技登录

一、数据接口分析 主页地址&#xff1a;某得科技 1、抓包 通过抓包可以发现数据接口是AjaxLogin 2、判断是否有加密参数 请求参数是否加密&#xff1f; 查看“载荷”模块可以发现有一个password加密参数和一个__RequestVerificationToken 请求头是否加密&#xff1f; 无…