RocketMQ双主双从环境搭建

news2024/9/23 21:18:31

环境要求

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ElasticSearch小计

1、ElasticSearch简介 1.1、ElasticSearch(简称ES) Elasticsearch是用Java开发并且是当前最流行的开源的企业级搜索引擎。能够达到近实时搜索,稳定,可靠,快速,安装使用方便。客户端支持Java、.NET&#x…

Class 00 - 学习编程的方法不同职业所使用的编程语言

Class 00 - 学习编程的方法&不同职业所使用的编程语言 学习编程的方法什么是编程?不同职业所使用的编程语言数据分析网页设计移动应用开发Web应用开发游戏开发 Tips:学习编程语言的技巧 从电子表格到 SQL 再到 R电子表格、SQL和R:一个比较 学习编程的…

根据端口查询该程序占用的内存 gpu

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、如何根据端口号查询该程序的占用内存…

JavaScript语法基础

js学习路线 数据判度 1,类型分类undefined,Null,Number,String,Boolean 2,类型判断typeof操作符 var sTemp “tesst” 例如alert(typeos sTemp); //输出String alert(typeof 23);//输出number 3,instanceof操作符:用于判断一个引用类型属于…

【C++】C++中的继承

目录 一.继承的概念和定义1.继承的概念2.继承定义2.1定义格式2.2继承关系和访问限定符2.3继承基类成员访问方式的变化 二.基类和派生类对象赋值转换三.继承中的作用域四.派生类的默认成员函数五.继承和友元六.继承与静态成员七.复杂的菱形继承及菱形虚拟继承1.单继承2.多继承3.…

React 中 TypeScript 和装饰器及 Hooks

概念 TypeScript 是强类型语言,相对于JavaScript 弱类型语言,它具有类型检测的功能,扩展了JavaScript 的语法。 TS的安装与执行: //全局安装typescript npm install typescript -g// 第二个因为 本来的node是不可能支持 ts那种民…

2023网络安全学习路线 非常详细 推荐学习

前言:首先咱们聊聊,学习网络安全方向通常会有哪些问题 目录: 1、打基础时间太长 学基础花费很长时间,光语言都有几门,有些人会倒在学习 linux 系统及命令的路上,更多的人会倒在学习语言上; …

SSD系列1——网络结构

SSD系列: SSD系列1——网络结构 SSD系列2——PriorBox SSD系列3——损失计算 SSD网络结构概述 SSD在VGGNet的基础上,增加了4个卷积模块,这些卷积模块获得的特征图具有不同的感受野,可以较好地检测不同尺度的目标。 VGG16 SSD网络…

springboot 断点上传、续传、秒传实现

文章目录 前言一、实现思路二、数据库表对象二、业务入参对象三、本地上传实现三、minio上传实现总结 前言 springboot 断点上传、续传、秒传实现。 保存方式提供本地上传(单机)和minio上传(可集群) 本文主要是后端实现方案&…

AI绘画:Lora模型训练完整流程!

关于AI绘画(基于Stable Diffusion Webui),我之前已经写过三篇文章,分别是 软件安装,基本的使用方法,微调模型LoRA的使用。 整体来说还是比简单的,搞个别人的模型,搞个提示词就出图了。今天来一个有些难度…

推荐11个好用的prompt工具网站(附链接+论文)

同学们,你们prompt是自己苦哈哈码的吗?可别了,有现成的工具为啥不用? 今天我就和大家分享一些好用的prompt工具网站,用熟了ChatGPT、midjourney、stable diffusion能玩起来更爽!搜罗了有十几个&#xff0c…

智能汽车实验二(视觉传感器标定)

实验二 视觉传感器标定(实验报告) 【实验目的】 1、了解开源图像处理库OpenCV的结构,掌握OpenCV的基本使用方法。 2、了解开源图像处理库OpenCV的基本模块功能,掌握常用图像处理方法。 3、掌握摄像机标定算法,学会使用…

Xilinx 7系列FPGA内置ADC

Xilinx 7系列FPGA全系内置了一个ADC,称之为XADC。这个XADC,内部是两个1mbps的ADC,可以采集模拟信号转为数字信号送给FPGA内部使用。 XADC内部可以直接获取芯片结温和FPGA的若干供电电压(7系列不包括VCCO),用…

麒麟KylinV10SP1(2203)推荐安装一些硬件监控类软件与使用

目录 前言 1、tlp 电源管理 (1)查看电池容量、使用量、为Thinkpad设定电池充电开始结束阈值 (2)查看硬盘比如NVME SSD的型号种类、当前温度、读写量等信息; (3)查看CPU型号以及频率上下限、…

软件测试简单么,发展前景如何?

随着人工智能时代的到来,IT行业受到了越来越多人的重视。软件测试作为把控软件质量必不可少的环节,其重要性可见一斑。 软件测试可以说是算得上IT行业里相对简单的语言,但是也只是相对哈,如果想学习下去还是要看个人的学习能力的…

软件测试工作内容和职责有哪些

目前,在IT行业中测试的职位数量仅次于开发,可以说是第二大技术就业岗位。然而许多人对测试师工作的理解还停留在,只需要像用户一样使用产品,然后发现有问题提交报告就行了。其实这是极其不准确的,软件测试师在测试产品…

通过Dnspy调试解决powershell使用Install-module指定的转换无效的问题

之前运行Install-module -Name NtObjectManager出现以下错误: PackageManagement\Install-Package : Package NtObjectManager failed to be installed because: 指定的转换无效。 At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.…

Shell编程之排序

目录 一、冒泡排序 二、选择排序 三、插入排序 基本思想: 四、反转排序 基本思想: 五、睡眠排序 六、希尔排序 基本思想: 举例 一、冒泡排序 冒泡排序,该排序的命名非常形象,即一个个将气泡冒出。冒泡排序一…

ChatDOC工具——使用ChatGPT高效阅读技术科研论文

ChatDOC是一款功能强大的人工智能阅读辅助工具,专为帮助用户快速理解论文内容而设计。使用ChatDOC,您可以通过上传PDF版论文文献,利用先进的ChatGPT技术,只需三个简单步骤,便可以高效地阅读论文,提高阅读效…

TypeScript初识

目录 介绍 定义 优点 类型声明 ts文件编译选项 自动编译 编译选项的各个属性 include compilerOptions 介绍 定义 TS(TypeScript)是一种由微软开发的编程语言,它是 JavaScript 的一个超集,提供了静态类型检查、类、接…