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题…...

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 文件结构 快捷键࿱…...

国考省考结构化面试:综合分析题,名言哲理(警句观点启示)、漫画反驳题等
国考省考结构化面试:综合分析题,名言哲理(警句观点启示)、漫画反驳题等 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.若有选择,您可以在目录里进行快速查找…...

精炼计算机网络——物理层(二)
文章目录 前言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技术 总结 前言 上篇文章,我们初步了解了物理层…...

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...

mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...

算术操作符与类型转换:从基础到精通
目录 前言:从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符:、-、*、/、% 赋值操作符:和复合赋值 单⽬操作符:、--、、- 前言:从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...