Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >RabbitMQ-单机部署和基本操作

RabbitMQ-单机部署和基本操作

作者头像
运维小路
发布于 2025-06-15 03:45:40
发布于 2025-06-15 03:45:40
12102
代码可运行
举报
文章被收录于专栏:运维小路运维小路
运行总次数:2
代码可运行
图片
图片

中间件,我给它的定义就是为了实现某系业务功能依赖的软件,包括如下部分:

Web服务器

代理服务器

ZooKeeper

Kafka

RabbitMQ(本章节)

我们中间件里面的软件讲解,都是第一个小节介绍软件的基本情况和相关概念,第二个小节就是软件的部署。

前面的ZooKeeper和Kafka都是以JAVA语言基础软件,所以要先安装JAVA的环境(JDK),而我们的RabbitMQ则是基于Erlang开发的,所以我们需要先安装Erlang环境。Erlang语言在我们日常运维中能接触到的常用的应用软件就是RabbitMQ,到目前为止笔者也只认识一个曾经使用Erlang开过程序的人。

由于RabbitMQ集群部署和其他的集群部署略有区别,并且有一定的MQ知识储备,所以这里只介绍单机部署。

1.安装Erlang环境

生产环境一般都会使用二级制部署,我这里为了方便采用的是rpm安装。这个Erlang和JAVA环境部署类似,都是把二进制文件及相关依赖安装到服务器里面。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget https://github.com/rabbitmq/erlang-rpm/releases/download/v23.3.2/erlang-23.3.2-1.el7.x86_64.rpm
rpm -ivh erlang-23.3.2-1.el7.x86_64.rpm

2.部署单机版RabbitMQ

为了更好的认识,我们的核心组件,还是采用二进制部署。

代码语言:javascript
代码运行次数:2
运行
AI代码解释
复制
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.35/rabbitmq-server-generic-unix-3.8.35.tar.xz
rabbitmq-server-generic-unix-3.8.35.tar.xz 
cd rabbitmq_server-3.8.35

3.启动RabbitMQ

MQ启动以后会默认启动MQ进程和Erlang进程,所以MQ启动以后会有多个进程。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#后台启动,熟悉以后可用 
./sbin/rabbitmq-server -detached

前台启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#前台自动 可以更好的方便查看MQ
[root@localhost rabbitmq_server-3.8.35]# ./sbin/rabbitmq-server 
Configuring logger redirection

  ##  ##      RabbitMQ 3.8.35
  ##  ##
  ##########  Copyright (c) 2007-2022 VMware, Inc. or its affiliates.
  ######  ##
  ##########  Licensed under the MPL 2.0. Website: https://rabbitmq.com

  Erlang:      23.3.2 [emu]
  TLS Library: OpenSSL - OpenSSL 1.0.2k-fips  26 Jan 2017

  Doc guides:  https://rabbitmq.com/documentation.html
  Support:     https://rabbitmq.com/contact.html
  Tutorials:   https://rabbitmq.com/getstarted.html
  Monitoring:  https://rabbitmq.com/monitoring.html

  Logs: /root/rabbitmq_server-3.8.35/var/log/rabbitmq/rabbit@localhost.log
        /root/rabbitmq_server-3.8.35/var/log/rabbitmq/rabbit@localhost_upgrade.log

  Config file(s): (none)

  Starting broker... completed with 0 plugins.

查看进程

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#mq进程 
root      1113  1091  0 00:28 pts/0    00:00:00 /bin/sh ./sbin/rabbitmq-server
root      1118  1113 18 00:28 pts/0    00:00:03 /usr/lib64/erlang/erts-11.2.1/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sbwtdcpu none -sbwtdio none -B i -- -root /usr/lib64/erlang -progname erl -- -home /root -- -pa  -noshell -noinput -s rabbit boot -boot start_
root      1125  1118  0 00:28 ?        00:00:00 erl_child_setup 1024
root      1148     1  0 00:28 ?        00:00:00 /usr/lib64/erlang/erts-11.2.1/bin/epmd -daemon

4.检查运行状态

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost rabbitmq_server-3.8.35]# ./sbin/rabbitmqctl status
Status of node rabbit@localhost ...
Runtime

OS PID: 1124
OS: Linux
Uptime (seconds): 30
Is under maintenance?: false
RabbitMQ version: 3.8.35
Node name: rabbit@localhost
Erlang configuration: Erlang/OTP 23 [erts-11.2.1] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]
Crypto library: OpenSSL 1.0.2k-fips  26 Jan 2017
Erlang processes: 278 used, 1048576 limit
Scheduler run queue: 1
Cluster heartbeat timeout (net_ticktime): 60

#中间省略部分信息 

Listeners

Interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
Interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0

业务端口:5672,发送接收消息。

集群同步端口: 5627,因为我们这个是单机,所以忽略。

这个有一个点需要注意,Rabbitmq的数据或者目录模式和主机名强相关,如果是单机版也建议修改主机名,如果是集群多节点部署则必须考虑这个问题。如果修改了主机名,则就算数据还在,它也不会读取。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#未修改主机的数据目录 
[root@localhost mnesia]# pwd
/root/rabbitmq_server-3.8.35/var/lib/rabbitmq/mnesia
[root@localhost mnesia]# ll
total 12
drwxr-xr-x 4 root root 4096 May 29 22:26 rabbit@localhost
-rw-r--r-- 1 root root  102 May 29 22:26 rabbit@localhost-feature_flags
-rw-r--r-- 1 root root    4 May 29 22:26 rabbit@localhost.pid
drwxr-xr-x 2 root root    6 May 29 22:26 rabbit@localhost-plugins-expand

下面是修改主机名以后,重新启动RabbitMQ的数据目录,可以对比下有什么区别。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#历史数据目录和修改主机名数据目录 
drwxr-xr-x 4 root root 4096 May 29 22:29 rabbit@localhost
-rw-r--r-- 1 root root  102 May 29 22:26 rabbit@localhost-feature_flags
drwxr-xr-x 2 root root    6 May 29 22:26 rabbit@localhost-plugins-expand
drwxr-xr-x 4 root root 4096 May 29 22:35 rabbit@rabbitmq01
-rw-r--r-- 1 root root  102 May 29 22:35 rabbit@rabbitmq01-feature_flags
-rw-r--r-- 1 root root    4 May 29 22:35 rabbit@rabbitmq01.pid
drwxr-xr-x 2 root root    6 May 29 22:35 rabbit@rabbitmq01-plugins-expand

我们今天的主角RabbitMQ启动同前面的ZooKeeperKafka略有不一样,它没有默认的配置文件,后面我们讲集群部署的时候再来讲这个配置。 

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-06-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CentOs7.3 搭建 RabbitMQ 3.6 单机服务
CentOs7.3 搭建 RabbitMQ 3.6 单机服务 RabbitMQ简介 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 AMQP,即Advanced message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面
程序员鹏磊
2018/02/09
1.2K0
CentOs7.3 搭建 RabbitMQ 3.6 单机服务
RabbitMQ 安装部署与配置总结
https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.9.16
授客
2024/11/21
4750
RabbitMQ 安装部署与配置总结
深入理解消息中间件技术之RabbitMQ服务
消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。
民工哥
2020/09/16
6680
深入理解消息中间件技术之RabbitMQ服务
CentOs7.3 搭建 RabbitMQ 3.6 单机多实例服务
RabbitMQ简介 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 AMQP,即Advanced message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发
老七Linux
2018/05/31
1.8K0
RabbitMQ 的CLI管理工具 rabbitmqadmin(5)
rabbitmqadmin 是由 rabbitmq_management 插件提供的,得启用此插件
franket
2021/11/25
3200
RabbitMQ基础6
关闭RabbitMQ 应用 [root@h102 rabbitmq]# rabbitmqctl status Status of node rabbit@h102 ... [{pid,5596}, {running_applications,[{rabbit,"RabbitMQ","3.5.6"}, {os_mon,"CPO CXC 138 46","2.2.7"}, {xmerl,"XML parser"
franket
2022/05/04
3430
CentOs7.3 搭建 RabbitMQ 3.6 单机多实例服务
RabbitMQ简介 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 AMQP,即Advanced message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发
老七Linux
2018/05/31
2.6K0
外包精通--RabbitMQ源码包集群部署(最新版本)
rabbitmq官网下载Generic Binary Build ("Generic UNIX Build") — RabbitMQ
Godev
2022/12/10
9980
CentOS7下安装RabbitMQ
由于在CentOS环境安装RabbitMQ 极度麻烦,所以要写下这个过程,以免以后忘记再次麻烦多一次。
用户8710806
2021/06/11
8530
CentOS7下单机部署RabbltMQ环境的操作记录
一、RabbitMQ简单介绍 在日常工作环境中,你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用,即适用于云计算集群的远程调用(RPC)。毫无疑问,RabbitMQ就是当前最主流的消息中间件之一。 AMQP(Advanced Message Queuing Protoc
洗尽了浮华
2018/01/23
9210
CentOS7下单机部署RabbltMQ环境的操作记录
【Rabbitmq报错及解决办法】Error: unable to connect to node rabbit@rabbitmq3: nodedown
参考链接 报错信息如下: [root@rabbitmq3 rabbitmq]# rabbitmqctl stop_app Stopping node rabbit@rabbitmq3 ... Error: unable to connect to node rabbit@rabbitmq3: nodedown DIAGNOSTICS =========== attempted to contact: [rabbit@rabbitmq3] rabbit@rabbitmq3: * connected
宝耶需努力
2022/12/13
1.5K0
RabbitMQ集群II1
单机集群 在同一个OS中运行多个RabbitMQ node主要要满足以下两个条件: 1 每一个node使用的名字不能重复 2 每一个node使用的port / IP不能重复 [root@h101 ~]# rabbitmqctl status Status of node rabbit@h101 ... Error: unable to connect to node rabbit@h101: nodedown DIAGNOSTICS =========== attempted to contact:
franket
2022/05/03
3420
Linux安装RabbitMQ
Erlang和RabbitMQ的版本是有一些版本匹配关系的,如果不匹配会导致RabbitMQ无法启动
cywhat
2023/04/27
1.7K0
04-基于CentOS7安装RabbitMQ3.10.7
我实在是找不到这么老的版本了, 直接用最新版本的, 按照道理来说, 新版本是兼容老版本的
彼岸舞
2022/10/06
7570
04-基于CentOS7安装RabbitMQ3.10.7
CentOS 7 安装RabbitMQ 3.3
1、安装erlang 语言环境 安装依赖文件 #yum install ncurses-devel 进入 http://www.erlang.org/download.html 选择源文件下载 wget http://www.erlang.org/download/ otp_src_17.1.tar.gz tar zxvf  otp_src_17.1.tar.gz cd  otp_src_17.1 阅读HOTO/INSTALL.md文件 #./configure #make && make
张善友
2018/01/26
1.2K0
RabbitMQ基础4
使用 cat /proc/$RABBITMQ_BEAM_PROCESS_PID/limits 可以看到限制
franket
2022/05/04
2610
RabbitMQ的安装及集群搭建方法
1 安装erlang 下载地址:http://www.erlang.org/downloads 博主这里采用的是otp_src_19.1.tar.gz (200MB+)
我是李超人
2020/08/21
1.5K0
RabbitMQ-伪集群部署(Cluster)
作者介绍:简历上没有一个精通的运维工程师。下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
运维小路
2025/06/28
1430
RabbitMQ-伪集群部署(Cluster)
Centos7单节点部署RabbitMQ
RabbitMQ下载链接: https://github.com/rabbitmq/rabbitmq-server/releases Erlang下载链接: https://github.com/rabbitmq/erlang-rpm/releases
互联网-小阿宇
2022/11/21
5610
Centos7单节点部署RabbitMQ
CentOS7安装RabbitMQ
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。
用户3843914
2019/06/17
4.7K0
CentOS7安装RabbitMQ
相关推荐
CentOs7.3 搭建 RabbitMQ 3.6 单机服务
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验