RabbitMQ安装与初始配置

消息队列RabbitMQ安装配置详解 安装配置的过程重在细节,指令和目录不要写错了哦!以上就是基于Linux安装RabbitMQ的详细过程啦,你学会了吗? 阅读详情

 

目录

本文只讨论linux下的Rabbitmq安装。

Erlang安装

rabbitmq依赖于Erlang,需先安装,推荐安装rabbitmq/erlang-rpm:

#clone源码
git clone https://github.com/rabbitmq/erlang-rpm.git
#make
cd erlang-rpm
make  #需要等待较长时间
cd RPMS/x86_64  #其下有两个rpm包 erlang-19.3.6-1.alios6.x86_64.rpm  erlang-debuginfo-19.3.6-1.alios6.x86_64.rpm, 选择前者安装
#安装
sudo rpm -ivh  erlang-19.3.6-1.alios6.x86_64.rpm

RabbitMQ安装

在官网下载页面找到和系统版本对应的rabbitmq版本:

#安装rabbitmq-server
sudo yum install rabbitmq-server-3.6.10-1.el6.noarch.rpm
#此时可能报:Requires: socat, 以下是解决方法, 参考:http://www.cnblogs.com/ray30th/p/6651800.html
sudo wget --no-cache http://www.convirture.com/repos/definitions/rhel/6.x/convirt.repo -O /etc/yum.repos.d/convirt.repo
sudo yum makecache
sudo yum install socat
#重新安装rabbitmq-server
sudo yum install rabbitmq-server-3.6.10-1.el6.noarch.rpm

启动/关闭/状态查看

#启动/停止 start/stop
$sudo /sbin/service rabbitmq-server start
Starting rabbitmq-server: SUCCESS
rabbitmq-server.

$sudo /sbin/service rabbitmq-server stop
Stopping rabbitmq-server: rabbitmq-server.

#状态查看
sudo rabbitmqctl status

其中状态查看会返回详细的状态信息:

[{pid,2022},
 {running_applications,
     [{rabbit,"RabbitMQ","3.6.10"},
      {os_mon,"CPO  CXC 138 46","2.4.2"},
      {rabbit_common,
          "Modules shared by rabbitmq-server and rabbitmq-erlang-client",
          "3.6.10"},
      {ranch,"Socket acceptor pool for TCP protocols.","1.3.0"},
      {ssl,"Erlang/OTP SSL application","8.1.3"},
      {public_key,"Public key infrastructure","1.4"},
      {crypto,"CRYPTO","3.7.4"},
      {compiler,"ERTS  CXC 138 10","7.0.4"},
      {asn1,"The Erlang ASN1 compiler version 4.0.4","4.0.4"},
      {xmerl,"XML parser","1.3.14"},
      {syntax_tools,"Syntax tools","2.1.1"},
      {mnesia,"MNESIA  CXC 138 12","4.14.3"},
      {sasl,"SASL  CXC 138 11","3.0.3"},
      {stdlib,"ERTS  CXC 138 10","3.3"},
      {kernel,"ERTS  CXC 138 10","5.2"}]},
 {os,{unix,linux}},
 {erlang_version,
     "Erlang/OTP 19 [erts-8.3.5] [source] [64-bit] [smp:2:2] [async-threads:64] [hipe] [kernel-poll:true]\n"},
 {memory,
     [{total,53336792},
      {connection_readers,0},
      {connection_writers,0},
      {connection_channels,0},
      {connection_other,0},
      {queue_procs,2832},
      {queue_slave_procs,0},
      {plugins,0},
      {other_proc,20729016},
      {mnesia,60688},
      {metrics,184080},
      {mgmt_db,0},
      {msg_index,42608},
      {other_ets,2138344},
      {binary,116568},
      {code,21389077},
      {atom,891849},
      {other_system,7962978}]},
 {alarms,[]},
 {listeners,[{clustering,25672,"::"},{amqp,5672,"0.0.0.0"}]},
 {vm_memory_high_watermark,0.4},
 {vm_memory_limit,1660447948},
 {disk_free_limit,50000000},
 {disk_free,94489919488},
 {file_descriptors,
     [{total_limit,65435},
      {total_used,2},
      {sockets_limit,58889},
      {sockets_used,0}]},
 {processes,[{limit,1048576},{used,152}]},
 {run_queue,0},
 {uptime,15},
 {kernel,{net_ticktime,60}}]

访问端口

SELinux和与其机制类似的系统可能会阻止RabbtMQ绑定相应端口,所以安装完之后需要确保一下端口可以打开:

  • 4369,epmd(Erlang Port Mapper Daemon),是Erlang的端口/结点名称映射程序,用来跟踪节点名称监听地址,在集群中起到一个类似DNS的作用。
  • 5672, 5671, AMQP 0-9-1 和 1.0 客户端端口,used by AMQP 0-9-1 and 1.0 clients without and with TLS(Transport Layer Security)
  • 25672,Erlang distribution,和4369配合
  • 15672,HTTP_API端口,管理员用户才能访问,用于管理RbbitMQ,需要启用management插件,rabbitmq-plugins enable rabbitmq_management,访问http://server-name:15672/
  • 61613, 61614,当STOMP插件启用的时候打开,作为STOMP客户端端口(根据是否使用TLS选择)
  • 1883, 8883,当MQTT插件启用的时候打开,作为MQTT客户端端口(根据是否使用TLS选择)
  • 15674,基于WebSocket的STOMP客户端端口(当插件Web STOMP启用的时候打开)
  • 15675,基于WebSocket的MQTT客户端端口(当插件Web MQTT启用的时候打开)

参考

Installing on RPM-based Linux(Port Access)
RabbitMQ~开篇与环境部署

用户权限管理

RabbitMQ有一个默认的用户"guest",密码也是"guest",这个用户默认只能通过本机访问,eg:http://localhost:15672/,在通过http访问之前记得启用management插件:

$rabbitmq-plugins enable rabbitmq_management

要让其他机器可以访问,需要创建一个新用户,为其分配权限。用户权限可以通过rabbitmqctl执行相关命令来维护,rabbitmqctl是管理rabbitmq的命令行管理工具,下面介绍相关的命令:

用户管理

  • list_users,用户列表
  • add_user {username} {password},添加用户
  • delete_user {username},删除用户
  • change_password {username} {newpassword},修改密码
  • clear_password {username},删除密码,密码删除后就不能访问了。This user now cannot log in with a password (but may be able to through e.g. SASL EXTERNAL if configured)
  • authenticate_user {username} {password},用户认证
  • set_user_tags {username} {tag ...},为用户设置角色,tag可以是0个、一个、或多个,eg:rabbitmqctl set_user_tags chris administrator,设置为管理员;rabbitmqctl set_user_tags chris,清除chris与角色的关联。
#用户列表查看
$sudo rabbitmqctl list_users
Listing users
guest   [administrator]
#添加用户
$sudo rabbitmqctl add_user chris 123
Creating user "chris"
#为用户分配权限
$sudo rabbitmqctl set_user_tags chris administrator
Setting tags for user "chris" to [administrator]
#然后就可以通过http://host:15672 登录management界面管理rabbitmq了,但此时用户chris还没有访问队列资源的权限

权限管理

RabbitMQ客户端连接到一个服务端的时候,在它的操作指令中指定了一个虚拟主机。服务端首先检查是否有访问该虚拟主机的权限,没有权限的会拒绝连接。

对于exchanges和queues等资源,位于某个虚拟主机内;不同虚拟主机内即便名称相同也代表不同的资源。当特定操作在资源上执行时第二级访问控制开始生效。

RabbitMQ在某个资源上区分了配置、写和读操作。配置操作创建或者销毁资源,或者更改资源的行为。写操作将消息注入进资源之中。读操作从资源中获取消息。

要执行特定操作用户必须授予合适的权限。

下面介绍相关命令:

  • list_vhosts [vhostinfoitem ...],获取vhosts列表
  • add_vhost {vhost}, eg:rabbitmqctl add_vhost test
  • delete_vhost {vhost}
  • set_permissions [-p vhost] {user} {conf} {write} {read},给用户分在对应的vhost上分配相应的权限。eg:rabbitmqctl set_permissions -p /myvhost chris "^chris-.*" ".*" ".*",这条指令,给用户chris在myvhost分配了权限,权限包括:以"chris-"开头的全部资源的配置权限,和所有资源的读写权限
  • clear_permissions [-p vhost] {username},清除权限
  • list_permissions [-p vhost],vhost权限分配列表
  • list_user_permissions {username},user权限列表
$sudo rabbitmqctl set_permissions -p / chris ".*" ".*" ".*"
Setting permissions for user "chris" in vhost "/"
#此时用户chris才有访问队列资源的权限

参考

rabbitmqctl(1) manual page(User management, Access control)

System Limits

rabbitmq会维持大量的网络连接,所以系统允许同时打开的最大文件数需要调整。推荐的允许同时打开的最大文件数为65535。有两个地方需要设置:

  • 系统每个用户允许的最大同时打开文件数,ulimit -n,可以通过ulimit -n size设置
  • 系统允许的最大同时打开文件数,fs.file-max

系统级限制查看与设置:

#查看
$ cat /proc/sys/fs/file-max
184289
$ cat /proc/sys/fs/file-nr
1024    0    184289     
#已分配文件句柄的数目    分配了但没有使用的句柄数   文件句柄最大数目

#设置
$echo 284289 > /proc/sys/fs/file-max

ulimit 命令详解

ulimit用于shell启动进程所占用的资源,是shell内建命令。

参数介绍:
-H 设置硬件资源限制.
-S 设置软件资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-v size:设置虚拟内存的最大值.单位:kbytesLinux

可以通过rabbitmqctl status查看当前的限制状态,status中的file_descriptors描述了当前的限制:

{file_descriptors,
     [{total_limit,65435},
      {total_used,2},
      {sockets_limit,58889},
      {sockets_used,0}]},
 {processes,[{limit,1048576},{used,330}]}

参考

rabbitmqctl(1) manual page (Controlling System Limits on Linux)
linux限制打开文件数量

日志

Rabbitmq默认日志路径:/var/log/rabbitmq/,路径之下有两类日志文件:

  • rabbit@{hostname}.log,输出rabbitmq运行相关的信息,如网络流量、用户、交换器、队列等信息
  • rabbit@{hostname}-sasl.log,Erlang运行相关信息
如何使用AKShare作为OpenBB的数据源 `openbb_akshare`项目是 OpenBB 的数据源扩展。可以用于查询A股和港股数据 阅读详情

相关推荐

群晖NAS断电后IP变了?3步搞定静态IP设置(附Linux挂载指南)

本文针对群晖NAS因断电重启导致IP地址变化的问题,提供了从根源到实践的完整解决方案。核心内容包括如何为NAS配置静态IP以彻底解决连接中断,并详细讲解了在Linux系统中通过NFS协议稳定挂载NAS共享文件夹的步骤与指南,确保网络存储服务持久可靠。

weixin_29271263的博客 849

Linux(CentOS8)服务器安装RabbitMQ

我安装了很久都没有成功, 各种问题, 每次的异常都不一样, 现将成功安装过程做个总结。

//Case 1509

ArcGIS基础:点要素分割线要素和提取线要素的交点

第一个实验:【点要素分割线要素】看下原始数据:下图所示,2个红点和一条绿线,用2个点去分割这条线。 找到【数据管理工具】,在找到【要素】,再找到【在点处分割线】,如下图所示。 输入线、点要素,然后在【搜索半径】里输入5米,查看一下结果。 查看结果发现,线段被分割了2段,我们查看一下原因。 发现第2个点与线有一段距离,肯定是大于5米的,所以分割没有成功。可以量测一下距离,重新输入搜索半径。 我们把搜索半径改为200米,勘察结果,被点分割了3段。 接下来使用另外一个工具【在折点处分割线】,如下所示。

yuanYW7556的博客 1万+

Ranch浅析

version: release 1.3.2 Part 1: 进程结构和启动流程 作为独立application启动后,进程结构图如下: 未命名进程标识: <0.97.0>: ranch_app <0.103.0>: ranch_listerner_sup <0.104.0>: ranch_conn_sup <0.105.0&

lewiskyo的专栏 932

NFS共享速度慢?麒麟系统性能调优5个关键参数实测对比

本文针对银河麒麟服务器系统上NFS共享速度慢的问题,通过实测对比分析了五个关键调优参数。重点探讨了rsize/wsize传输块大小、TCP/UDP协议选择、sync/async模式权衡等,并结合麒麟系统特性提供了具体的优化建议与配置示例,旨在帮助用户有效提升国产化环境下的文件共享性能。

weixin_29254029的博客 332

从轴承润滑到代码实现:手把手教你用Python FDM求解稳态雷诺方程

本文详细介绍了如何用Python FDM(有限差分法)求解稳态雷诺方程,从轴承润滑理论到代码实现的全过程。通过构建无量纲方程、有限差分格式和迭代求解算法,开发者可以快速实现专业级润滑分析,应用于涡轮发电机、汽车曲轴等场景。文章还提供了完整的Python代码示例和结果可视化方法,帮助工程师优化轴承设计。

weixin_28689507的博客 118

ranch源码阅读

ranch 整体理解 从整体上的话,ranch主要是三层的监控树 第一层 ranch_sup,负责整个应用的启动,启动了ranch_server进程,它管理了整个应用的配置和连接数据 第二层 ranch_listener_sup,负责连接的管理 第三层 ranch_conns_sup和ranch_acceptors_sup,这两个分别用来处理新的连接和获得新的连接 当然最底层的ranch_acc...

weixin_33743880的博客 483

避坑指南:SAP成本中心分割结构配置常见错误及解决(含KA06/KL01前置步骤)

本文深入解析了SAP成本中心会计中分割结构配置的关键步骤与常见错误。重点强调了配置前必须通过KA06创建次级成本要素(类别42)和通过KL01创建活动类型这两个核心前置步骤,并详细剖析了在OKES中定义分割规则及版本时的高频报错原因与解决方案,帮助顾问和运维人员有效规避配置陷阱,确保成本分摊的准确性。

pear55的博客 864

RabbitMQ安装与初始配置【转载】

Erlang安装 rabbitmq依赖于Erlang,需先安装,推荐安装rabbitmq/erlang-rpm: #clone源码 git clone https://github.com/rabbitmq/erlang-rpm.git #make cd erlang-rpm make #需要等待较长时间 cd RPMS/x86_64 #其下有两个rpm包 erlang-19...

weixin_30919919的博客 91

Mac用户看过来!M1/M2芯片安装CiteSpace完整指南(从Homebrew到成功运行)

本文为Mac M1/M2芯片用户提供CiteSpace安装的完整指南,从Homebrew安装适配的Java环境到最终成功运行CiteSpace。详细步骤包括环境检查、Java配置、CiteSpace下载与优化,解决常见问题如内存分配、图形渲染和中文显示乱码,确保科研人员能顺利使用这一文献可视化工具。

weixin_42530458的博客 299

vue2/3 - [超详细] 实现企业微信扫码登录完整流程及代码,vue项目接入企业微信扫码登录功能教程,支持新跳页显示二维码或div容器里内嵌登录二维码(详细代码注释,一键复制开箱即用)

vue企业微信扫码登录,vue网页网站企业微信扫码登录教程,vue如何实现企业微信扫码登录功能,vue详细企业微信扫码登录功能实现,vue2实现企业微信扫码登录,前端vue企业微信扫码登录教程,vue pc电脑端企业微信扫码登录详细教程,vue项目中怎么做企业微信扫码注册登录,vue实现网站接入企业微信扫码登录,vue2做企业微信扫码登录的优质文章教程,vue网站对接企业微信扫码登录,vue企业微信扫码登录如何新开一页全屏显示登录二维码,vue企业微信登录二维码 内嵌在div容器里/跳页显示登录二维码,vu

✅ 精选推荐文章 5700

rabbitmq初始安装配置异常

【代码】rabbitmq初始安装配置异常。

m0_68935893的博客 480

LeRobot 入门教程(十一)π0(Pi0)π0.5(Pi0.5)训练、推理、部署

本文介绍了Physical Intelligence公司开发的π₀和π₀.₅系列通用机器人控制视觉-语言-动作模型。π₀作为首款基础模型,融合流匹配、跨实体训练等技术,支持50Hz高频控制。π₀.₅是其升级版,通过异构数据协同训练解决开放世界泛化问题,在Libero基准测试中表现优异。文章详细说明了两个模型的安装要求、使用方法、训练策略及关键参数配置,包括混合精度训练、梯度检查点等优化技术,为机器人在多样化场景中的语义理解和动作控制提供了完整解决方案。

2506_90492529的博客 5029

RabbitMQ之Window中安装配置与使用

RabbitMQ之Window中安装配置与使用

yuanjinshenglife的专栏 1818

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

RabbitMQ安装

RabbitMQ由

EstherLty的博客 566

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Rabbitmq 安装保姆级教程

RabbitMQ 保姆级安装教程

lhcong_的博客 460

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

RabbitMQ的安装

RabbitMQ的安装下载安装erlang安装RabbitMQ启动登录 RabbitMQ由Erlang语言开发,Erlang语言用于并发及分布式系统的开发,在电信领域应用广泛,OTP(Open Telecom Platform)作为Erlang语言的一部分,包含了很多基于Erlang开发的中间件及工具库,安装RabbitMQ需 要安装Erlang/OTP,并保持版本匹配。 下载安装erlang 地...

某某灬 244

Linux centos7 下安装RabbitMQ

目录 一:安装erlang环境 二:安装rabbitmq软件(和上一步没区别) 三:查看rabbitmq是否安装成功 四:安装命令维护插件(这里最好有epel的源) 五:设置配置文件,并开启用户远程访问 六:重启服务,IP+15672端口访问 关于用户,这里只是简单的几条命令 一些常用操作,因为我没用使用,web界面出来以后就交由开发管理了。所以了解不多 一:安装erlang环境...

Mr·葛 416

CentOS7 Linux系统下安装RabbitMQ

安装 RabbitMQ官网:https://www.rabbitmq.com/ 第一: 因为RabbitMQ 是用Erlang语言开发的所以需要安装Erlang的运行环境 下载RabbitMQ安装包后还需要下载 Erlang的安装包 下载好的安装包:链接:https://pan.baidu.com/s/10uSSstYkv9lBeronPsSwCw 提取码:td3j 注意安装包后的el7 标识支持CentOS 7 版本 下载的版本注意是否与自己的系统对应 第二 安装必要运行环境 # 安装必要的

三季人的博客 272

RabbitMQ安装过程中遇到的 rabbitmq-plugins不是内部命令或外部命令

RabbitMQ的基本配置就不写了,网上有很多。 可以看下这位博主写的,很详细: https://blog.youkuaiyun.com/qq_39915083/article/details/107034747 安装erlang和RabbitMQ后,cmd中输入erl出现如下图erlang版本,就代表环境配置完成 RabbitMQ安装完成后,我们需要激活rabbitmq_management win+x 进入终端管理员 通过cd命令进入rabbitMQ安装目录下的sbin文件夹,这里的目录是我自己的 输入如下命

澎湖Java架构师的博客 1296

《中间件》CentOS7安装RabbitMQ-亲测可用

文章目录1 环境2 安装Erlang3 安装RabbitMQ4 RabbitMQ命令行指令4.1 启动 停止 状态指令4.2 开启web界面4.3 用户管理5 访问RabbitMQ 1 环境 我的机器环境如下图所示: 2 安装Erlang RabbitMQ是Erlang语言开发的,所以安装RabbitMQ之前一定要安装Erlang 安装依赖 yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget g

kobe_okok的博客 171

docker安装rabbitmq

Rabbitmq官网:Downloading and Installing RabbitMQ — RabbitMQ 官网一进去就给了docker安装的命令,但是这个命令并没有赋予角色和权限和其他端口的开放,这样我们依旧需要进入容器当中去配置,下面命令一次全部都配置,直接执行下面创建容器就行,不必其他命令,比如创建镜像,因为她创建的时候会判断镜像是否存在,如果不存在会在创建容器的过程中自己去pull,而且rabbitmq:management会在安装过程中创建角色并安装图形化界面 docker.

qq_45225798的博客 137

centos7 安装 rabbitmq

安装erlang rpm -Uvh http://www.rabbitmq.com/releases/erlang/erlang-18.1-1.el7.centos.x86_64.rpm 复制代码安装rabbitmq rpm -Uvh http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.6/rabbitmq-server-3.5.6-1.no...

weixin_33905756的博客 78

centos7rabbitmq安装

1.解决下载erlang慢 这是rabbitmq官网提供的erlang,下载比使用erlang官网的下载方式快。 url:https://www.rabbitmq.com/releases/ 2.erlang安装 本文中使用的erlang版本如下:(本文章使用的linux版本CentOS7.6) yum -y install erlang-19.0.4-1.el6.x86_64.rpm 检查...

weixin_42475367的博客 143
上一篇: 消息队列介绍、RabbitMQ&Redis的重点介绍与简单应用
下一篇: 我所理解的SOA和微服务
KerNEL.AC.CN
博客等级 码龄15年 100粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值