当前位置: 首页 > news >正文

RocketMQ双主双从环境搭建

环境要求

64位操作系统,推荐 Linux/Unix/macOS

64位 JDK 1.8+

服务器准备

准备4台服务器两台master两台slave,如果服务器紧凑,则至少需要两台服务器相互master-slave

IP

HOSTS

172.*******.120

rocketmq-nameserver1 rocketmq-master1 rocketmq-master-salve2

172.*******.142

rocketmq-nameserver2 rocketmq-master2 rocketmq-master-salve1

准备版本包

配置hosts,上传RocketMQ包并解压(https://rocketmq.apache.org/zh/download/#rocketmq)选择Binary 下载,上传至/data/public/rocketmq

修改配置文件

生产高可用双主双从采用 SYNC_MASTER 同步双写SYNC_FLUSH 同步刷盘进行

172.******.120机器

修改vim /data/public/rocketmq/conf/2m-2s-sync/broker-a.properties

#所属集群名字

brokerClusterName=test-rocketmq-cluster

#broker 名字,注意此处不同的配置文件填写的不一样

brokerName=broker-a

#0 表示 Master,>0 表示 Slave

brokerId=0

#nameServer 地址,分号分割

namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

#安装可视化界面使用,需要是IP,不能是host

#设置broker节点所在服务器的ip地址(**这个非常重要,主从模式下,从节点会根据主节点的brokerIP2来同步数据,#如果不配置,主从无法同步,brokerIP1设置为自己外网能访问的ip,服务器双网卡情况下必须配置,比如阿里云这$种,#主节点需要配置ip1和ip2,从节点只需要配置ip1即可)

brokerIP1=172.******.120

brokerIP2=172.******.120

#在发送消息时,自动创建服务器不存在的 topic,默认创建的队列数

defaultTopicQueueNums=4

#是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭

#进行发消息时,必须要指定topic,对于topic的设置有一个开关autoCreateTopicEnable,一#般在开发测试环境中会使用默认设置autoCreateTopicEnable = true,但是这样就会导致#topic的设置不容易规范管理,没有统一的审核等等,所以在正式环境中会在Broker启动时#设置参数autoCreateTopicEnable = false。这样当需要增加topic时就需要在web管理界面上#添加即可。

autoCreateTopicEnable=false

#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭

autoCreateSubscriptionGroup=fasle

#Broker 对外服务的监听端口

listenPort=10911

#删除文件时间点,默认凌晨 4 点

deleteWhen=04

#文件保留时间,默认 48 小时

fileReservedTime=120

#commitLog 每个文件的大小默认 1G

mapedFileSizeCommitLog=1073741824

#ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整

mapedFileSizeConsumeQueue=300000

#destroyMapedFileIntervalForcibly=120000

#redeleteHangedFileInterval=120000

#检测物理文件磁盘空间

diskMaxUsedSpaceRatio=88

#存储路径

storePathRootDir=/data/public/rocketmq/store

#commitLog 存储路径

storePathCommitLog=/data/public/rocketmq/store/commitlog

#消费队列存储路径存储路径

storePathConsumeQueue=/data/public/rocketmq/store/consumequeue

#消息索引存储路径

storePathIndex=/data/public/rocketmq/store/index

#checkpoint 文件存储路径

storeCheckpoint=/data/public/rocketmq/store/checkpoint

#abort 文件存储路径

abortFile=/data/public/rocketmq/store/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=SYNC_FLUSH

#checkTransactionMessageEnable=false

#发消息线程池数量

#sendMessageThreadPoolNums=128

#拉消息线程池数量

#pullMessageThreadPoolNums=128

修改vim /data/public/rocketmq/conf/2m-2s-sync/broker-b-s.properties

#所属集群名字

brokerClusterName=test-rocketmq-cluster

#broker 名字,注意此处不同的配置文件填写的不一样

brokerName=broker-b

#0 表示 Master,>0 表示 Slave

brokerId=1

#nameServer 地址,分号分割

namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

#安装可视化界面使用,需要是IP,不能是host

#设置broker节点所在服务器的ip地址(**这个非常重要,主从模式下,从节点会根据主节点的brokerIP2来同步数据,#如果不配置,主从无法同步,brokerIP1设置为自己外网能访问的ip,服务器双网卡情况下必须配置,比如阿里云这$种,#主节点需要配置ip1和ip2,从节点只需要配置ip1即可)

brokerIP1=172.******.120

#在发送消息时,自动创建服务器不存在的 topic,默认创建的队列数

defaultTopicQueueNums=4

#是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭

#进行发消息时,必须要指定topic,对于topic的设置有一个开关autoCreateTopicEnable,一#般在开发测试环境中会使用默认设置autoCreateTopicEnable = true,但是这样就会导致#topic的设置不容易规范管理,没有统一的审核等等,所以在正式环境中会在Broker启动时#设置参数autoCreateTopicEnable = false。这样当需要增加topic时就需要在web管理界面上#添加即可。

autoCreateTopicEnable=fasle

#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭

autoCreateSubscriptionGroup=fasle

#Broker 对外服务的监听端口,如果从节点是单独服务器,则可以使用默认端口19011

listenPort=10922

#删除文件时间点,默认凌晨 4 点

deleteWhen=04

#文件保留时间,默认 48 小时

fileReservedTime=120

#commitLog 每个文件的大小默认 1G

mapedFileSizeCommitLog=1073741824

#ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整

mapedFileSizeConsumeQueue=300000

#destroyMapedFileIntervalForcibly=120000

#redeleteHangedFileInterval=120000

#检测物理文件磁盘空间

diskMaxUsedSpaceRatio=88

#存储路径

storePathRootDir=/data/public/rocketmq/slave/store

#commitLog 存储路径

storePathCommitLog=/data/public/rocketmq/slave/store/commitlog

#消费队列存储路径存储路径

storePathConsumeQueue=/data/public/rocketmq/slave/store/consumequeue

#消息索引存储路径

storePathIndex=/data/public/rocketmq/slave/store/index

#checkpoint 文件存储路径

storeCheckpoint=/data/public/rocketmq/slave/store/checkpoint

#abort 文件存储路径

abortFile=/data/public/rocketmq/slave/store/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=SYNC_FLUSH

#checkTransactionMessageEnable=false

#发消息线程池数量

#sendMessageThreadPoolNums=128

#拉消息线程池数量

#pullMessageThreadPoolNums=128

 172.******.142机器

修改vim /data/public/rocketmq/conf/2m-2s-sync/broker-b.properties

#所属集群名字

brokerClusterName=test-rocketmq-cluster

#broker 名字,注意此处不同的配置文件填写的不一样

brokerName=broker-b

#0 表示 Master,>0 表示 Slave

brokerId=0

#nameServer 地址,分号分割

namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

#安装可视化界面使用,需要是IP,不能是host

#设置broker节点所在服务器的ip地址(**这个非常重要,主从模式下,从节点会根据主节点的brokerIP2来同步数据,#如果不配置,主从无法同步,brokerIP1设置为自己外网能访问的ip,服务器双网卡情况下必须配置,比如阿里云这$种,#主节点需要配置ip1和ip2,从节点只需要配置ip1即可)

brokerIP1=172.******.142

brokerIP2=172.******.142

#在发送消息时,自动创建服务器不存在的 topic,默认创建的队列数

defaultTopicQueueNums=4

#是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭

#进行发消息时,必须要指定topic,对于topic的设置有一个开关autoCreateTopicEnable,一#般在开发测试环境中会使用默认设置autoCreateTopicEnable = true,但是这样就会导致#topic的设置不容易规范管理,没有统一的审核等等,所以在正式环境中会在Broker启动时#设置参数autoCreateTopicEnable = false。这样当需要增加topic时就需要在web管理界面上#添加即可。

autoCreateTopicEnable=false

#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭

autoCreateSubscriptionGroup=false

#Broker 对外服务的监听端口

listenPort=10911

#删除文件时间点,默认凌晨 4 点

deleteWhen=04

#文件保留时间,默认 48 小时

fileReservedTime=120

#commitLog 每个文件的大小默认 1G

mapedFileSizeCommitLog=1073741824

#ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整

mapedFileSizeConsumeQueue=300000

#destroyMapedFileIntervalForcibly=120000

#redeleteHangedFileInterval=120000

#检测物理文件磁盘空间

diskMaxUsedSpaceRatio=88

#存储路径

storePathRootDir=/data/public/rocketmq/store

#commitLog 存储路径

storePathCommitLog=/data/public/rocketmq/store/commitlog

#消费队列存储路径存储路径

storePathConsumeQueue=/data/public/rocketmq/store/consumequeue

#消息索引存储路径

storePathIndex=/data/public/rocketmq/store/index

#checkpoint 文件存储路径

storeCheckpoint=/data/public/rocketmq/store/checkpoint

#abort 文件存储路径

abortFile=/data/public/rocketmq/store/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=SYNC_FLUSH

#checkTransactionMessageEnable=false

#发消息线程池数量

#sendMessageThreadPoolNums=128

#拉消息线程池数量

#pullMessageThreadPoolNums=128

修改vim /data/public/rocketmq/conf/2m-2s-sync/broker-a-s.properties

#所属集群名字

brokerClusterName=test-rocketmq-cluster

#broker 名字,注意此处不同的配置文件填写的不一样

brokerName=broker-a

#0 表示 Master,>0 表示 Slave

brokerId=1

#nameServer 地址,分号分割

namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

#安装可视化界面使用,需要是IP,不能是host

#设置broker节点所在服务器的ip地址(**这个非常重要,主从模式下,从节点会根据主节点的brokerIP2来同步数据,#如果不配置,主从无法同步,brokerIP1设置为自己外网能访问的ip,服务器双网卡情况下必须配置,比如阿里云这$种,#主节点需要配置ip1和ip2,从节点只需要配置ip1即可)

brokerIP1=172.******.142

#在发送消息时,自动创建服务器不存在的 topic,默认创建的队列数

defaultTopicQueueNums=4

#是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭

#进行发消息时,必须要指定topic,对于topic的设置有一个开关autoCreateTopicEnable,一#般在开发测试环境中会使用默认设置autoCreateTopicEnable = true,但是这样就会导致#topic的设置不容易规范管理,没有统一的审核。所以在正式环境中会在Broker启动时#设置参数autoCreateTopicEnable = false。这样当需要增加topic时就需要在web管理界面上#添加即可。

autoCreateTopicEnable=false

#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭

autoCreateSubscriptionGroup=false

#Broker 对外服务的监听端口,如果从节点是单独服务器,则可以使用默认端口19011

listenPort=10922

#删除文件时间点,默认凌晨 4 点

deleteWhen=04

#文件保留时间,默认 48 小时

fileReservedTime=120

#commitLog 每个文件的大小默认 1G

mapedFileSizeCommitLog=1073741824

#ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整

mapedFileSizeConsumeQueue=300000

#destroyMapedFileIntervalForcibly=120000

#redeleteHangedFileInterval=120000

#检测物理文件磁盘空间

diskMaxUsedSpaceRatio=88

#存储路径

storePathRootDir=/data/public/rocketmq/slave/store

#commitLog 存储路径

storePathCommitLog=/data/public/rocketmq/slave/store/commitlog

#消费队列存储路径存储路径

storePathConsumeQueue=/data/public/rocketmq/slave/store/consumequeue

#消息索引存储路径

storePathIndex=/data/public/rocketmq/slave/store/index

#checkpoint 文件存储路径

storeCheckpoint=/data/public/rocketmq/slave/store/checkpoint

#abort 文件存储路径

abortFile=/data/public/rocketmq/slave/store/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=SYNC_FLUSH

#checkTransactionMessageEnable=false

#发消息线程池数量

#sendMessageThreadPoolNums=128

#拉消息线程池数量

#pullMessageThreadPoolNums=128

创建目录(两台机器都要创建)

#创建主节点目录

mkdir /data/public/rocketmq/store:实际数据存储的位置

mkdir /data/public/rocketmq/store/commitlog:

mkdir /data/public/rocketmq/store/consumequeue:类似于数据库索引的文件结构,

mkdir /data/public/rocketmq/store/index:用于快速查询索引

#创建从节点目录

    mkdir /data/public/rocketmq/slave

mkdir /data/public/rocketmq/slave/store:实际数据存储的位置

mkdir /data/public/rocketmq/slave/store/commitlog:

mkdir /data/public/rocketmq/slave/store/consumequeue:类似于数据库索引的文件结构,

mkdir /data/public/rocketmq/slave/store/index:用于快速查询索引

修改启动参数脚本

组件建议内存至少8g,但是我们在开发环境就写成1g,小于1g可能起不来

vim /data/public/rocketmq/bin/runbroker.sh

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"

 

vim /data/public/rocketmq/bin/runserver.sh

JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:PermSize=128m -XX:MaxPermSize=320m"

 

启动

顺序是先启动nameserver,再启动broker。关闭则是先关闭broker在关闭nameserver。生产环境切勿删除store文件夹,生产环境禁止使用kill -9 命令删除broker进程,使用bin/下的mqshutdown命令;

172.******.120机器172.*******.142机器

启动nameserver

# 首先启动Name Server

nohup sh mqnamesrv &

### 验证Name Server 是否启动成功

tail -f /root/logs/rocketmqlogs/namesrv.log

The Name Server boot success. serializeType=JSON

##关闭 sh mqshutdown namesrv

 

启动broker

172.******.120主节点正常启动

备注:nohup sh mqbroker -n 172.31.241.120:9876 -c /data/public/rocketmq/conf/2m-2s-sync/broker-a.properties &

##启动broker

nohup sh mqbroker -c /data/public/rocketmq/conf/2m-2s-sync/broker-a.properties &

##查看启动是否成功

tail -5f /root/logs/rocketmqlogs/broker.log

##关闭sh mqshutdown broker

 

172.******.142的主节点启动

##启动broker

nohup sh mqbroker -c /data/public/rocketmq/conf/2m-2s-sync/broker-b.properties &

##查看启动是否成功

tail -5f /root/logs/rocketmqlogs/broker.log

##关闭sh mqshutdown broker

 

172.******.120从节点

##启动broker

nohup sh mqbroker -c /data/public/rocketmq/conf/2m-2s-sync/broker-b-s.properties &

##查看启动是否成功

tail -5f /root/logs/rocketmqlogs/broker.log

##关闭sh mqshutdown broker

 

172.******.142从节点

##启动broker

nohup sh mqbroker -c /data/public/rocketmq/conf/2m-2s-sync/broker-a-s.properties &

##查看启动是否成功

tail -5f /root/logs/rocketmqlogs/broker.log

##关闭sh mqshutdown broker

 

部署可视化界面

源码包下载地址:

下载完成后进行修改配置并打包部署即可:

仅需要修改这个配置即可

rocketmq.config.namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

注意users.properties中配置的是用户名密码(如果要启用可视化界面的登录,则需要打开application.properties文件中rocketmq.config.loginRequired=true即可)

规则:用户角色=用户名,密码

例如admin角色的用户名是admin,密码是1

则配置为admin=admin,1

访问界面:http://172.******.120:8080即可

注意:

如果发现依旧不是双主双从,则排查防火墙端口是否开放。一定要开启10911,10909,10912三个端口,其中10911为broker通信端口,10909是一个虚拟ip(vip)端口根据源码显示有一个源端口号-2的操作,10912为主从同步通信端口,单节点可以不开启。集群模式下不开启10912,从节点同步不了主节点数据。

#查看firewall服务状态

systemctl status firewalld

出现Active: active (running)切高亮显示则表示是启动状态。

 

出现 Active: inactive (dead)灰色表示停止,看单词也行。

 

#查看firewall的状态

firewall-cmd --state

#关闭防火墙

systemctl stop firewalld.service

#开启防火墙

systemctl start firewalld

#查询端口是否开放

firewall-cmd --query-port=10911/tcp

#开放指定端口

firewall-cmd --permanent --zone=public --add-port=9876/tcp

firewall-cmd --permanent --zone=public --add-port=10911/tcp

firewall-cmd --permanent --zone=public --add-port=10909/tcp

firewall-cmd --permanent --zone=public --add-port=10912/tcp

firewall-cmd --permanent --zone=public --add-port=10922/tcp

# 立即生效

firewall-cmd --reload

# 移除端口

firewall-cmd --permanent --remove-port=9876/tcp

firewall-cmd --permanent --remove-port=10911/tcp

firewall-cmd --permanent --remove-port=10909/tcp

firewall-cmd --permanent --remove-port=10912/tcp

firewall-cmd --permanent --remove-port=10922/tcp

相关文章:

RocketMQ双主双从环境搭建

环境要求 64位操作系统,推荐 Linux/Unix/macOS 64位 JDK 1.8 服务器准备 准备4台服务器两台master两台slave,如果服务器紧凑,则至少需要两台服务器相互master-slave IP HOSTS 172.*******.120 rocketmq-nameserver1 rocketmq-master1 …...

next.js博客搭建_初始化next项目(第一步)

文章目录 ⭐前言⭐next初始化TypeScript 开发项目安装react的ui框架(tDesign)设计布局 ⭐结束 ⭐前言 大家好,我是yma16,本期给大家分享next项目搭建博客的开始。 背景 因为我的博客网站https://yongma16.xyz是基于vue2搭建的&am…...

ACM - 其他算法 - 基础(前缀和 + 差分)

ACM- 其他算法 一、前缀和模板例题1、区间余数求K倍区间个数:AcWing 1230. K倍区间例题2、前缀和哈希求最长个数平分子串:Leetcode 面试题 17.05 字母与数字 二、差分1、一维差分2、二维差分 一、前缀和 模板 //一维前缀和 S[i] a[1] a[2] ... a[i] a[l] ... …...

No.056<软考>《(高项)备考大全》【冲刺10】《软考高项常见工具口语化解释》

《软考高项常见工具口语化解释》 序号工具名称口语化属于哪个过程1模板、表格和标准就是用之前的项目的模版、表格、标准,结合本项目进行了修改,在编制一些计划、方案的时候就可以采用这个工具和技术。可以拿来就用的,节约时间、提高质量的。…...

MySQL原理(九):表分区和分库分表

前言 上一篇介绍了 MySQL 的存储过程和触发器,这一篇将介绍表分区和分库分表相关的内容。 表分区 原本的表文件都是以完整的形式存储在磁盘中,而表分区则是指将一张表的数据拆分成多个磁盘文件,然后放到磁盘中存储。 做了表分区之后&…...

【Ehcache技术专题】「入门到精通」带你一起从零基础进行分析和开发Ehcache框架的实战指南(缓存查询-配置篇)

缓存查询 Ehcache中为我们提供了可以对Cache中缓存的元素进行查找的方式。其逻辑类似于SQL中的查找。通过给定各种限制条件,我们可以构造各种复杂的查询,然后返回结果集,也可以对查询进行分组和排序等。 使Cache可查询 Ehcache中的查询是针…...

MySQL基础(七)单行函数

1. 函数的理解 1.1 什么是函数 函数在计算机语言的使用中贯穿始终,函数的作用是什么呢?它可以把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既提高了代码效率,又提高了可维护性。在 SQL 中我们也可以使用函数对检…...

Cy5.5-PEG-FA结构式 荧光Cy5.5标记聚乙二醇叶酸;PEG分子量2000,叶酸(-FA)基团可应用于靶向传递

Cy5.5-PEG-FA,Cy5.5-聚乙二醇-叶酸 中文名称:Cy5.5-聚乙二醇-叶酸 英文名称:Cy5.5-PEG-FA 溶剂:溶于水、氯仿,DMSO等常规性有机溶剂 性状:固体或粉末,取决于分子量 分子量:1k、…...

【微服务笔记23】使用Spring Cloud微服务组件从0到1搭建一个微服务工程

这篇文章,主要介绍如何使用Spring Cloud微服务组件从0到1搭建一个微服务工程。 目录 一、从0到1搭建微服务工程 1.1、基础环境说明 (1)使用组件 (2)微服务依赖 1.2、搭建注册中心 (1)引入…...

舞台特效-第14届蓝桥杯省赛Scratch初级组真题第2题

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第131讲。 舞台特效,本题是2023年5月7日举行的第14届蓝桥杯省赛Scratch图形化编程初级组真题第2题&#xf…...

mysql 5.7.32安装及主从安装信息

最方便的 就是 直接使用docker容器 搭建一个比较方便 或者 直接使用yum源安装,说白了就是少踩坑。 或者 是直接使用 宝塔等工具帮忙,直接脚本跑 宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板 以下是内网两台机器安装的方法 1: 下…...

leecode111——二叉树最短路径

递归三部曲: 最小深度是从根节点到最近叶子节点的最短路径上的节点数量 (1)确定参数和返回值, 参数为传入根节点,再根据此遍历左右左右树的节点。返回最短路径,即int类型。 (2)确…...

Swift学习教程大纲

以下是Swift学习教程的大纲: 第一部分:基础知识 Swift简介 什么是Swift? Swift的历史和发展 Swift的特点和优势 开发环境的搭建 安装Swift编译器 配置开发环境 第一个Swift程序 Hello World程序 程序的结构 编译和运行程序 数据…...

HTML 基础知识

HTML基础知识 1. VSCode的安装与配置 下载地址 https://code.visualstudio.com/ 安装插件 Live Server Auto Rename Tag 自动格式化 点击 settings,然后输入format,然后勾选上 Format On Save。 2. HTML 基础标签 2.1 文件结构 快捷键&#xff1…...

国考省考结构化面试:综合分析题,名言哲理(警句观点启示)、漫画反驳题等

国考省考结构化面试:综合分析题,名言哲理(警句观点启示)、漫画反驳题等 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能,附带行测和申论,而常规国考省考最重要的还是申论和行测&a…...

【前端面经】CSS-浮动和清除浮动的方式

浮动和清除浮动的方式 在页面布局中,我们经常会用到浮动来实现一些特殊效果,但是浮动也会引起一些问题。在使用浮动布局时,我们需要清除浮动以避免出现布局问题。本文将介绍浮动的相关知识以及清除浮动的方式。 浮动 浮动是 CSS 中的一种布…...

【Android取证篇】ADB版本更新详细步骤

【Android取证篇】ADB版本更新详细步骤 更新ADB版本,解决无法连接设备问题【蘇小沐】 ADB没有自动更新的命令,我们需要下载新的ADB进行替换更新。 1、ADB查找 打开任务管理器(快捷键shiftctrlEsc或WinX),在“详细信…...

【rust】| 02——语法基础_变量(不可变?)和常量

系列文章目录 【rust】| 00——开发环境搭建 【rust】| 01——编译并运行第一个rust程序 【rust】| 02——语法基础_变量(不可变?)和常量 文章目录 1. 变量1.1 变量的定义1.2 试验变量的不可变特性 2. 常量2.1 常量的定义 3. 覆盖(同名变量)3.1 修改已定义变量的数据类型3.2 1…...

JavaScript实现在键盘输入按键,浏览器进行显示的代码

以下为实现在键盘输入按键,浏览器进行显示的代码和运行截图 目录 前言 一、在键盘输入按键,浏览器进行显示 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 前言 1.若有选择,您可以在目录里进行快速查找&#xf…...

精炼计算机网络——物理层(二)

文章目录 前言2.4信道复用技术2.4.1 频分复用、时分复用和统计时分复用2.4.2 波分复用2.4.3 码分复用 2.5 数字传输系统2.6 带宽接入技术2.6.1 ADSL技术2.6.2 光纤同轴混合网(HFC网)2.6.3 FTTx技术 总结 前言 上篇文章,我们初步了解了物理层…...

ChatGPT直接访问,Edge浏览器-免费ChatGPT保姆级教程

人工智能大浪潮已经来临,对于ChatGPT,我觉得任何一个玩互联网的人,都应该重视起来,用起来。但是国内使用需要解决科学上网、注册、收费等繁琐问题。 所以,今天这篇文章就来推荐一个插件,无需任何繁琐操作&…...

1010. 总持续时间可被 60 整除的歌曲

题目&#xff1a; 在歌曲列表中&#xff0c;第 i 首歌曲的持续时间为 time[i] 秒。 返回其总持续时间&#xff08;以秒为单位&#xff09;可被 60 整除的歌曲对的数量。形式上&#xff0c;我们希望下标数字 i 和 j 满足 i < j 且有 (time[i] time[j]) % 60 0。 示例 1&a…...

基于Spring Boot的婚恋系统

在当今的社会&#xff0c;婚恋市场的需求量越来越大&#xff0c;而互联网技术的发展也为婚恋市场的发展提供了更多的机会。基于Spring Boot的婚恋系统正是为了满足市场需求而诞生。 什么是Spring Boot Spring Boot是一个非常流行的Java框架&#xff0c;它可以极大地简化Sprin…...

unity愤怒的小鸟学习制作(一)

基础知识已经差不多了&#xff0c;现在开始模仿敲代码然后在模仿中熟悉软件和语法 视频链接和素材如下&#xff1a;视频 目录 第一部分&#xff1a;游戏逻辑1、新建2D工程2、创建三个场景3、导入游戏需要的资源4、开始编辑02-game4.1 裁切图片4.2 初步编辑4.3 实现小鸟的拖拽4…...

建筑专业可以转行学云计算吗?

当然可行。 在过去的几年中&#xff0c;我们已经帮助很多建筑土木工程专业的同学转行学习云计算技术&#xff0c;尤其是在建筑信息化编程方向。近年来&#xff0c;云计算行业持续发展&#xff0c;涉及到众多领域&#xff0c;如云数据中心、云安全、云存储、云计算机服务等。云…...

网络安全:namp扫描工具

-sP可以扫描一个网段ip以及状态和基本信息&#xff0c;10.1.1.2-3就是扫描2和3这两个ip的主机 -p可以扫描指定ip对应主机的端口号&#xff0c;可以是一个范围 nmap简单扫描&#xff1a;nmap 地址 检查地址是否在线以及open的端口号 在端口开放&#xff0c;不一定可以与对方正常…...

java错题总结(19-21页)

链接&#xff1a;关于Java中的ClassLoader下面的哪些描述是错误的_用友笔试题_牛客网 来源&#xff1a;牛客网 B&#xff1a;先讲一下双亲委派机制&#xff0c;简单来说&#xff0c;就是加载一个类的时候&#xff0c;会往上找他的父类加载器&#xff0c;父类加载器找它的父类加…...

总结846

学习目标&#xff1a; 月目标&#xff1a;5月&#xff08;张宇强化前10讲&#xff0c;背诵15篇短文&#xff0c;熟词僻义300词基础词&#xff09; 周目标&#xff1a;张宇强化前3讲并完成相应的习题并记录&#xff0c;英语背3篇文章并回诵 每日必复习&#xff08;5分钟&#…...

[ubuntu][原创]ubuntu上安装stable-diffusion-webui

下载源码&#xff1a; git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui 一般方法就是&#xff1a; bash webui.sh 但是很遗憾这个国内很难成功&#xff0c;而且很容易陷入困境&#xff0c;因此需要下面方法 核心思想&#xff1a;环境和源码分开安装 下…...

【数组排序算法】

目录 一、数组排序算法1、冒泡排序算法1.1、图形解释1.2、冒泡算法的脚本写法 二、直接选择排序1.1、动态图解1.2、直接选择排序算法的脚本编写 三、直接插入排序1.1、基本思想&#xff1a;1.2、动态图解1.3、直接插入排序的算法脚本编写 四、反向序列算法1.1、反向序列算法的脚…...