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

RabbitMQ的安装

RabbitMQ的安装

1、Windows环境下的RabbitMQ安装步骤

使用的版本:otp_win64_23.2 + rabbitmq-server-3.8.16

版本说明:https://www.rabbitmq.com/which-erlang.html#compatibility-matrix

1.1 下载并安装erlang

RabbitMQ 服务端代码是使用并发式语言 Erlang 编写的,安装 RabbitMQ 的前提是安装 Erlang。

下载地址:

http://www.erlang.org/downloads

在这里插入图片描述

https://www.erlang.org/patches/otp-23.2

在这里插入图片描述

根据操作系统选择 erlang 下载版本。

下载完的软件包:

在这里插入图片描述

双击软件点击下一步进行安装,和平时使用的软件的安装方式是一样的。

安装完之后配置环境变量,此电脑–>鼠标右键属性–>高级系统设置–>环境变量–>新建系统环境变量。

变量名:ERLANG_HOME

变量值就是刚才 erlang 的安装地址,点击确定。

在这里插入图片描述

然后编辑系统变量 path,将 %ERLANG_HOME%\bin 加入到 path 中。

在这里插入图片描述

最后 windows 键 +R 键,输入 cmd,再输入 erl,看到版本号就说明 erlang 安装成功了。
在这里插入图片描述

1.2 下载并安装RabbitMQ

下载地址:http://www.rabbitmq.com/download.html

在这里插入图片描述

这里下载 v3.8.16 版本:

https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.16

https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.16/rabbitmq-server-3.8.16.exe

在这里插入图片描述

双击下载后的 .exe 文件,安装过程与 erlang 的安装过程相同。

RabbitMQ 安装目录中是不允许有空格的。

RabbitMQ 安装好后接下来安装 RabbitMQ-Plugins,打开命令行 cd,输入 RabbitMQ 的 sbin 目录。

我的目录是:C:\zsxsoftware\rabbitmq\rabbitmq_server-3.8.16\sbin

然后在后面输入 rabbitmq-plugins enable rabbitmq_management 命令进行安装:

在这里插入图片描述

输入 rabbitmqctl status,如果出现以下的图,说明安装是成功的,并且说明现在 RabbitMQ Server 已经启动

了,运行正常。

在这里插入图片描述

打开 sbin 目录,双击 rabbitmq-server.bat

等几秒钟看到这个界面后,访问 http://localhost:15672

然后可以看到如下界面:

在这里插入图片描述

默认用户名和密码都是 guest,登陆即可:

在这里插入图片描述

1.3 安装遇到的问题

rabbitmq-plugins enable rabbitmq_management 命令执行错误:

rabbitmq-service stop
rabbitmq-service remove
rabbitmq-service install
rabbitmq-plugins enable rabbitmq_management

rabbitmqctl status 命令执行错误:

Error: unable to perform an operation on node 'rabbit@DESKTOP-8VB0JLG'. Please see diagnostics information and suggestions below.

1、将C:\Users\{用户名}\.erlang.cookie 复制到 C:\Windows\System32\config\systemprofile 目录。

2、重启 rabbitMQ 服务。

1.4 配置允许远程访问

更多情况下,队列服务往往不在我们本机上,我们需要远程来控制 RabbitMQ,但是默认是无法通过

http://hostname:15672 来访问的:

在这里插入图片描述

添加一个新的用户:

在这里插入图片描述

在这里插入图片描述

点击 zsx242030 用户:

在这里插入图片描述

点击 set permission 赋予权限。

在这里插入图片描述

使用 rabbitmqctl list_users 查看用户信息:

在这里插入图片描述

然后使用新建的用户尝试登录:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.5 RabbitMQ常用的命令

# 停止服务
rabbitmq-service stop
# 安装服务
rabbitmq-service install
# 开启服务
rabbitmq-service start
# 查看用户信息
rabbitmqctl list_users

在这里插入图片描述

# guest密码忘记,更改密码
rabbitmqctl change_password guest guest
# 设置用户为超级管理员
rabbitmqctl set_user_tags guest administrator
# 赋予权限
rabbitmqctl set_permissions -p / guest '.*' '.*' '.*'

在这里插入图片描述

2、Linux环境下的RabbitMQ安装步骤

使用的版本:otp_src_22.3.tar.gz + rabbitmq-server-generic-unix-3.7.15.tar.xz

2.1 安装erlang

由于 rabbitmq 是基于 erlang 语言开发的,所以必须先安装 erlang。

安装依赖:

$ yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel

去 erlang 官网下载安装包上传到 linux 服务器。

https://www.erlang.org/downloads

或者使用 wget 命令下载:

$ wget http://erlang.org/download/otp_src_22.3.tar.gz

解压:

$ tar -zxvf otp_src_22.3.tar.gz

移走:

$ mv otp_src_22.3 /usr/local/

切换目录:

$ cd /usr/local/otp_src_22.3/

创建即将安装的目录:

$ mkdir ../erlang

配置安装路径:

$ ./configure --prefix=/usr/local/erlang

在这里插入图片描述

如果遇到这个错你就假装没看到:
在这里插入图片描述

安装:

$ make install

在这里插入图片描述

查看一下是否安装成功:

$ ll /usr/local/erlang/bin

在这里插入图片描述

添加环境变量:

$ echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile

刷新环境变量:

$ source /etc/profile

甩一条命令:

$ erl

在这里插入图片描述

在里面输入 halt(). 命令退出来(那个点号别忘记)

在这里插入图片描述

2.2 安装RabbitMQ

使用下面命令下载 rabbitmq 或者是下载好之后上传到 linux 服务器。

$ wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.15/rabbitmq-server-generic-unix-3.7.15.tar.xz

由于是 tar.xz 格式的所以需要用到 xz,没有的话就先安装:

$ yum install -y xz

第一次解压:

$ /bin/xz -d rabbitmq-server-generic-unix-3.7.15.tar.xz

第二次解压:

$ tar -xvf rabbitmq-server-generic-unix-3.7.15.tar

移走:

$ mv rabbitmq_server-3.7.15/ /usr/local/

改名:

$ mv /usr/local/rabbitmq_server-3.7.15  /usr/local/rabbitmq

配置环境变量

$ echo 'export PATH=$PATH:/usr/local/rabbitmq/sbin' >> /etc/profile

刷新环境变量

$ source /etc/profile

2.3 启动

启动:

$ rabbitmq-server -detached

在这里插入图片描述

编辑 /etc/hosts 文件,在文件的末尾加一条 127.0.0.1 zsx 即可。

重新启动:

在这里插入图片描述

在这里插入图片描述

状态:

$ rabbitmqctl status

在这里插入图片描述

停止:

$ rabbitmqctl stop

在这里插入图片描述

2.4 WEB管理

开启web插件

$ rabbitmq-plugins enable rabbitmq_management

在这里插入图片描述

开放 15672 端口:

# 查看开放的端口号
firewall-cmd --list-all
# 设置开放的端口号
firewall-cmd --add-port=15672/tcp --permanent
# 重启防火墙 
firewall-cmd --reload

访问:http://192.168.94.186:15672/

在这里插入图片描述

默认账号密码(这个账号只允许本机访问):guest/guest

2.5 用户管理

查看所有用户:

$ rabbitmqctl list_users

在这里插入图片描述

添加一个用户:

$ rabbitmqctl add_user zsx242030 zsx242030

配置权限:

$ rabbitmqctl set_permissions -p "/" zsx242030 ".*" ".*" ".*"

在这里插入图片描述

查看用户权限:

$ rabbitmqctl list_user_permissions zsx242030

在这里插入图片描述

设置 tag:

$ rabbitmqctl set_user_tags zsx242030 administrator

在这里插入图片描述

删除用户(安全起见,删除默认用户)

$ rabbitmqctl delete_user guest

2.6 登陆

配置好用户之后然后就可以用新账号进行登陆:

在这里插入图片描述

3、Docker安装RabbitMQ

3.1 搜索镜像

$ docker search rabbitmq

在这里插入图片描述

3.2 拉取镜像

$ docker pull rabbitmq:3.7.15

在这里插入图片描述

3.3 启动运行

$ docker run -d -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin --hostname myRabbit --name rabbitmq --restart=always rabbitmq:3.7.15

参数说明:

-d:表示在后台运行容器;

-p:将容器的端口 5672(应用访问端口)和15672(控制台Web端口号)映射到主机中;

-e:指定环境变量:

  • RABBITMQ_DEFAULT_VHOST:默认虚拟机名;

  • RABBITMQ_DEFAULT_USER:默认的用户名;

  • RABBITMQ_DEFAULT_PASS:默认的用户密码;

--hostname:指定主机名(RabbitMQ 的一个重要注意事项是它根据所谓的节点名称存储数据,默认为主机名);

--name:设置容器名称;

rabbitmq:3.7.15:容器使用的镜像名称;

在这里插入图片描述

3.4 查看启动情况

$ docker logs -f rabbitmq

在这里插入图片描述

$ docker ps -l

在这里插入图片描述

3.5 启动 rabbitmq_management

$ docker exec -it rabbitmq /bin/bash
$ rabbitmq-plugins enable rabbitmq_management

在这里插入图片描述

或者是通过下面命令:

$ docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management

3.6 访问 RabbitMQ后台管理

浏览器输入地址:http://192.168.94.186:15672/ 即可访问后台管理页面,这里的 ip 为运行 RabbitMQ 所

在的服务器的 IP 地址。

默认的用户名和密码都是 guest (如果没有在容器创建的时候指定用户名密码)。

但由于我们启动的时候设置了默认的用户名和密码,所以我们可以使用设置的用户名和密码登录。

在这里插入图片描述

在这里插入图片描述

4、镜像集群搭建

4.1 搭建环境

IP主机
192.168.54.200master
192.168.54.201slave1
192.168.54.202slave2
$ vi /etc/hosts
192.168.54.200 master
192.168.54.201 slave1
192.168.54.202 slave2

使用的版本:otp_src_22.3.tar.gz + rabbitmq-server-generic-unix-3.7.15.tar.xz

4.2 安装erlang(所有机器)

由于 rabbitmq 是基于 erlang 语言开发的,所以必须先安装 erlang。

安装依赖:

$ yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel

去 erlang 官网下载安装包上传到 linux 服务器:

http://erlang.org/download/otp_src_22.3.tar.gz

解压:

$ tar -zxvf otp_src_22.3.tar.gz

移走:

$ mv otp_src_22.3 /usr/local/

切换目录:

$ cd /usr/local/otp_src_22.3/

创建即将安装的目录:

$ mkdir ../erlang

配置安装路径:

$ ./configure --prefix=/usr/local/erlang

安装:

$ make install

查看一下是否安装成功:

$ ll /usr/local/erlang/bin

添加环境变量:

$ echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile

刷新环境变量:

$ source /etc/profile

甩一条命令:

$ erl

在里面输入 halt(). 命令退出来(那个点号别忘记)

4.3 安装RabbitMQ(所有机器)

将下载好之后的软件上传到 linux 服务器:

https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.15/rabbitmq-server-generic-unix-3.7.15.tar.xz

由于是 tar.xz 格式的所以需要用到 xz,没有的话就先安装:

$ yum install -y xz

第一次解压:

$ /bin/xz -d rabbitmq-server-generic-unix-3.7.15.tar.xz

第二次解压:

$ tar -xvf rabbitmq-server-generic-unix-3.7.15.tar

移走:

$ mv rabbitmq_server-3.7.15/ /usr/local/

改名:

$ mv /usr/local/rabbitmq_server-3.7.15  /usr/local/rabbitmq

配置环境变量:

$ echo 'export PATH=$PATH:/usr/local/rabbitmq/sbin' >> /etc/profile

刷新环境变量:

$ source /etc/profile

启动:

$ rabbitmq-server -detached

查看启动状态:

$ ps -ef | grep rabbitmq

状态:

$ rabbitmqctl status

停止:

$ rabbitmqctl stop

4.4 WEB管理(所有机器)

开启 web 插件:

$ rabbitmq-plugins enable rabbitmq_management

开放 15672 端口:

# 查看开放的端口号 
firewall-cmd --list-all
# 设置开放的端口号
firewall-cmd --add-port=15672/tcp --permanent
# 重启防火墙 
firewall-cmd --reload

访问:http://ip:15672/

默认账号密码(这个账号只允许本机访问):guest/guest

4.5 用户管理(所有机器)

查看所有用户:

$ rabbitmqctl list_users

添加一个用户:

$ rabbitmqctl add_user zsx242030 zsx242030

配置权限:

$ rabbitmqctl set_permissions -p "/" zsx242030 ".*" ".*" ".*"

查看用户权限:

$ rabbitmqctl list_user_permissions zsx242030

设置 tag:

$ rabbitmqctl set_user_tags zsx242030 administrator

删除用户(安全起见,删除默认用户)

$ rabbitmqctl delete_user guest

4.6 镜像模式集群的搭建

4.6.1 停止RabbitMQ服务(所有机器)

$ rabbitmqctl stop

4.6.2 拷贝.erlang.cookie(master机器)

官方在介绍集群的文档中提到过 .erlang.cookie 一般会存在这两个地址:

第一个是 ~/.erlang.cookie

第二个地方就是 /var/lib/rabbitmq/.erlang.cookie

本文的地址在 ~/.erlang.cookie

$ scp /root/.erlang.cookie root@slave1:/root/
$ scp /root/.erlang.cookie root@slave2:/root/

4.6.3 启动RabbitMQ服务

顺带启动 Erlang 虚拟机和 RabbitMQ 应用服务,在 master、slave1、slave2 执行命令:

$ rabbitmq-server -detached

4.6.4 节点加入

RabbitMQ 集群的搭建需要选择其中任意一个节点为基准,将其它节点逐步加入。这里我们以 master 为基准节

点,将 slave1 和 slave2 加入集群。在 slave1 和 slave2 上执行以下命令:

# 1.停止服务
rabbitmqctl stop_app
# rabbitmqctl stop会将Erlang虚拟机关闭,rabbitmqctl stop_app只关闭RabbitMQ服务# 2.重置状态
rabbitmqctl reset# 3.节点加入,在一个node加入cluster之前,必须先停止该node的rabbitmq应用,即先执行stop_app
# slave1加入master,slave2加入master
rabbitmqctl join_cluster rabbit@master# 4.启动服务
rabbitmqctl start_app

4.6.5 查看集群状态

此时可以在任意节点上使用 rabbitmqctl cluster_status 命令查看集群状态,输出如下:

[root@master ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@master ...
[{nodes,[{disc,[rabbit@master,rabbit@slave1,rabbit@slave2]}]},{running_nodes,[rabbit@slave2,rabbit@slave1,rabbit@master]},{cluster_name,<<"rabbit@master">>},{partitions,[]},{alarms,[{rabbit@slave2,[]},{rabbit@slave1,[]},{rabbit@master,[]}]}]
[root@slave1 rabbitmq]# rabbitmqctl cluster_status
Cluster status of node rabbit@slave1 ...
[{nodes,[{disc,[rabbit@master,rabbit@slave1,rabbit@slave2]}]},{running_nodes,[rabbit@slave2,rabbit@master,rabbit@slave1]},{cluster_name,<<"rabbit@master">>},{partitions,[]},{alarms,[{rabbit@slave2,[]},{rabbit@master,[]},{rabbit@slave1,[]}]}]
[root@slave2 rabbitmq]# rabbitmqctl cluster_status
Cluster status of node rabbit@slave2 ...
[{nodes,[{disc,[rabbit@master,rabbit@slave1,rabbit@slave2]}]},{running_nodes,[rabbit@master,rabbit@slave1,rabbit@slave2]},{cluster_name,<<"rabbit@master">>},{partitions,[]},{alarms,[{rabbit@master,[]},{rabbit@slave1,[]},{rabbit@slave2,[]}]}]

4.6.6 UI 界面查看

在这里插入图片描述

4.6.7 配置镜像模式

在任意节点执行即可:

rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

4.6.8 从集群中移除节点

1、在需要移除的节点上执行停止命令

rabbitmqctl stop_app

2、在其他节点上执行移除节点命令

rabbitmqctl forget_cluster_node rabbit@slave2

–offline 参数,它允许节点在自身没有启动的情况下将其他节点剔除。

4.6.9 解除集群

重置当前节点:

# 1.停止服务
rabbitmqctl stop_app# 2.重置集群状态
rabbitmqctl reset# 3.重启服务
rabbitmqctl start_app

重新加入集群:

# 1.停止服务
rabbitmqctl stop_app# 2.重置状态
rabbitmqctl reset# 3.节点加入
rabbitmqctl join_cluster rabbit@node1# 4.重启服务
rabbitmqctl start_app

4.6.10 变更节点类型

# 1.停止服务
rabbitmqctl stop_app# 2.变更类型,有两种类型ram和disc
# 我们可以将节点的类型从RAM更改为Disk
rabbitmqctl change_cluster_node_type disc# 3.重启服务
rabbitmqctl start_app

相关文章:

RabbitMQ的安装

RabbitMQ的安装 1、Windows环境下的RabbitMQ安装步骤 使用的版本&#xff1a;otp_win64_23.2 rabbitmq-server-3.8.16 版本说明&#xff1a;https://www.rabbitmq.com/which-erlang.html#compatibility-matrix 1.1 下载并安装erlang RabbitMQ 服务端代码是使用并发式语言…...

GPU版PyTorch对应安装教程

一、正确安装符合自己电脑的对应GPU版本的PyTorch之前需要了解三个基本概念 算力、CUDA driver version、CUDA runtime version ①算力&#xff1a;需要先知道你的显卡&#xff0c;之后根据官网表格进行对应&#xff0c;得到算力 ②CUDA driver version&#xff1a;电脑上显卡…...

医学影像PACS临床信息系统源码

医学影像临床信息系统&#xff08;Picture Archiving and Communication Systems&#xff09;PACS是指从医疗影像设备中获得数字影像&#xff0c;利用高速网络进行存储、管理、传输的医疗影像信息管理系统。通过该系统&#xff0c;能实现影像数字化、无胶片化管理。 登记系统 …...

Python(Web时代)——jinja2模板

简介 Jinja2是Flask框架默认支持的模板引擎&#xff0c;是python的web项目中被广泛应用的一种模板引擎&#xff0c;jinja2的作者与Flask是同一个人。 jinja2具有以下特点&#xff1a; 非常灵活&#xff0c;提供了控制结构、表达式与继承等 性能好 可读性强 渲染一个模板&a…...

酷开系统 | 酷开科技,让数据变得更有价值!

身处信息时代&#xff0c;我们每个人时刻都在生成、传递和应用数据&#xff0c;数据已经成为了现代社会中宝贵的资源之一&#xff0c;而在人工智能领域&#xff0c;数据更是被称为人工智能的“燃料”。 而在AI的发展中&#xff0c;只有拥有高质量、多样性且充分代表性的数据集…...

uni——tab切换

案例展示 案例代码 <view class"tablist"><block v-for"(item,index) in tabList" :key"index"><view class"tabItem" :class"current item.id?active:" click"changeTab(item)">{{item.nam…...

类图的6种关系和golang应用

文章目录 1. 依赖和关联1.1 依赖&#xff08;Dependency&#xff09;概念类图示例代码示例 1.2 关联&#xff08;Association&#xff09;概念类图示例代码示例 2. 组合和聚合&#xff08;特殊的关联关系&#xff09;2.1 聚合&#xff08;Aggregation&#xff09;概念类图示例代…...

Linux tar 备忘清单

tar 备忘清单 语法选项创建一个 tar 格式的压缩文件创建压缩后的 tar.gz 存档文件生成压缩率更高的 tar.bz2 文件解压缩 tar 文件解压缩 tar.gz 文件解压缩 tar.bz2 文件列出归档内容从 tar 归档文件中提取单个文件从 tar 归档文件中提取多个文件使用通配符提取文件组添加文件或…...

76. 最小覆盖子串

题目链接&#xff1a;力扣 解题思路&#xff1a;滑动窗口 因为只需要最小子串中包含t中的所有字符即可&#xff0c;顺序不重要&#xff0c;所以可以先统计一下 t 中每个字符出现的次数&#xff0c;使用map进行统计&#xff1a; key表示t中的字符&#xff0c;value表示字符的个…...

科兴未来|2023“数智未来,聚放神采”医疗科技创新挑战赛

一、赛事亮点 聚焦前沿神经科学与脑科学领域 展示优质创新产品、技术、平台与服务 汇聚学术端、产业端、投资端多维专业视角 搭建合作交流、产业赋能与生态融合平台 共话行业发展方向与动态趋势 二、赛事简介 2023医疗科技创新挑战赛聚焦于神经科学及脑科学领域的前沿技…...

第56步 深度学习图像识别:CNN梯度权重类激活映射(TensorFlow)

基于WIN10的64位系统演示 一、写在前面 类激活映射&#xff08;Class Activation Mapping&#xff0c;CAM&#xff09;和梯度权重类激活映射&#xff08;Gradient-weighted Class Activation Mapping&#xff0c;Grad-CAM&#xff09;是两种可视化深度学习模型决策过程的技术…...

云道资本:2023中国氢能源产业-氢制备深度研究报告(附下载)

关于报告的所有内容&#xff0c;公众【营销人星球】获取下载查看 核心观点 中国可再生能源消纳能力提升远远滞后于发电占比的提升。大规模的可再生能源发电是实现碳中和的关键一步&#xff0c;但风电、光伏发电间歌性、波动性强&#xff0c;电网消纳压力较大&#xff0c;且电…...

java文件

一.File类 二.扫描指定目录&#xff0c;并找到名称中包含指定字符的所有普通文件&#xff08;不包含目录&#xff09;&#xff0c;并且后续询问用户是否要删除该文件 我的代码: import java.io.File; import java.io.IOException; import java.util.Scanner;public class Tes…...

pyqt5 如何终止正在执行的线程?

在 PyQt5 中终止正在执行的线程&#xff0c;可以通过一些协调的方法来实现。一般情况下&#xff0c;直接强行终止线程是不安全的&#xff0c;可能会导致资源泄漏或者程序异常。相反&#xff0c;我们可以使用一种协作的方式&#xff0c;通知线程在合适的时候自行退出。 以下是一…...

力扣第357场周赛补题

6925. 故障键盘 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;模拟 class Solution { public:string finalString(string s) {string res;for(auto c : s){if(c i) reverse(res.begin(), res.end());else res c;}return res;} }; 6953. 判断是否能拆分数组 - 力…...

Keras指定model.fit()的输出

model.fit()当verbose1的时候会打印出所有指标和loss, 在多输出的情况下更是一团乱麻. 下面是一个可以指定每个epoch训练完的输入指标的方法: from keras.callbacks import Callback# Custom callback to display loss only at the end of each epoch class LossCallback(Call…...

替换开源LDAP,某科技企业用宁盾目录统一身份,为业务敏捷提供支撑

客户介绍 某高科技企业成立于2015年&#xff0c;是一家深耕于大物流领域的人工智能公司&#xff0c;迄今为止已为全球16个国家和地区&#xff0c;120余家客户打造智能化升级体验&#xff0c;场景覆盖海陆空铁、工厂等货运物流领域。 该公司使用开源LDAP面临的挑战 挑战1 开源…...

解决log4j.xml的url没有注册问题

在对log4j.xml配置文件配置时出现http//jakarta.apache.org/log4j/爆红&#xff0c;IDEA提示uri is not registered。源代码如下 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j"http://jakarta.apache.org/lo…...

深度思考操作系统面经

1 堆和栈的区别&#xff1a;&#xff08;如果记的不太清楚&#xff0c;可以类比jvm中的堆和栈的区别&#xff0c;大差不差&#xff09; 存储位置&#xff1a;堆是在计算机内存中动态分配的区域&#xff0c;而栈是在计算机内存中由操作系统自动分配和管理的区域。管理方式&…...

智慧工地源码:数字孪生智慧工地可视化解决方案

一、智慧工地建设背景 我国经济发展正从传统粗放式的高速增长阶段&#xff0c;进入高效率、低成本、可持续的中高速增长阶段。随着现代建筑的复杂度和体量等不断增加&#xff0c;施工现场管理的内容越来越多&#xff0c;管理的技术难度和要求在不断提高。传统的施工现场管理模…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...