热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS7下怎么搭建RabbitMQ

本文小编为大家详细介绍“CentOS7下怎么搭建RabbitMQ”,内容详细,步骤清晰,细节处理妥当,希望这篇“CentOS7下怎么搭建RabbitMQ”文章能帮助大

本文小编为大家详细介绍“CentOS7下怎么搭建RabbitMQ”,内容详细,步骤清晰,细节处理妥当,希望这篇“CentOS7下怎么搭建RabbitMQ”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

RabbitMQ是一种消息队列 ,用于常见的进程通信。支持点对点,请求应答和发布订阅模式 并且提供多种语言的支持。常见的java,c#,php都支持。

CentOS7下怎么搭建RabbitMQ

RabbitMQ 安装

# Install from EPEL[root@vdevops~]# yum --enablerepo=epel -y install rabbitmq-server[root@vdevops~]# systemctl start rabbitmq-server[root@vdevops /]# journalctl -xeNov 12 01:30:01 vdevops.org CROND[3856]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Nov 12 01:30:04 vdevops.org rabbitmqctl[3831]: DIAGNOSTICS
Nov 12 01:30:04 vdevops.org rabbitmqctl[3831]: ===========
Nov 12 01:30:04 vdevops.org rabbitmqctl[3831]: attempted to contact: [rabbit@vdevops]
Nov 12 01:30:04 vdevops.org rabbitmqctl[3831]: rabbit@vdevops:
Nov 12 01:30:04 vdevops.org rabbitmqctl[3831]: * unable to connect to epmd (port 4369) on vdevops: timeout (timed out)
Nov 12 01:30:04 vdevops.org rabbitmqctl[3831]: current node details:
Nov 12 01:30:04 vdevops.org rabbitmqctl[3831]: - node name: rabbitmqctl3831@vdevops
Nov 12 01:30:04 vdevops.org rabbitmqctl[3831]: - home dir: /var/lib/rabbitmq
Nov 12 01:30:04 vdevops.org rabbitmqctl[3831]: - COOKIE hash: s++dDMtIhAufFItw+ercBw==
Nov 12 01:30:04 vdevops.org polkitd[1007]: Unregistered Authentication Agent for unix-process:3798:36632 (system bus name :1.23, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected f
Nov 12 01:30:04 vdevops.org systemd[1]: rabbitmq-server.service: control process exited, code=exited status=2
Nov 12 01:30:04 vdevops.org systemd[1]: Failed to start RabbitMQ broker.
-- Subject: Unit rabbitmq-server.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit rabbitmq-server.service has failed.
--
-- The result is failed.
Nov 12 01:30:04 vdevops.org systemd[1]: Unit rabbitmq-server.service entered failed state.
Nov 12 01:30:04 vdevops.org systemd[1]: rabbitmq-server.service failed.
Nov 12 01:30:42 vdevops.org systemd[1]: Got automount request for /proc/sys/fs/binfmt_misc, triggered by 3860 (find)
Nov 12 01:30:42 vdevops.org systemd[1]: Mounting Arbitrary Executable File Formats File System...
-- Subject: Unit proc-sys-fs-binfmt_misc.mount has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit proc-sys-fs-binfmt_misc.mount has begun starting up.
Nov 12 01:30:42 vdevops.org systemd[1]: Mounted Arbitrary Executable File Formats File System.
-- Subject: Unit proc-sys-fs-binfmt_misc.mount has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit proc-sys-fs-binfmt_misc.mount has finished starting up.
--
-- The start-up result is done.

rabbitmq-server启动报错:Failed to start RabbitMQ broker

度娘解析:主机hostname配置错误,原本hostname为vdevops.org,更改为vdevops,修改hosts文件中hostname设置

[root@vdevops /]# hostnamectl set-hostname vdevops  # hostname更改重启启动rabbitmq-server[root@vdevops /]# systemctl status rabbitmq-server● rabbitmq-server.service - RabbitMQ broker
  Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)
  Active: active (running) since Sat 2016-11-12 01:32:41 CST; 3min 58s ago
 Process: 3831 ExecStop=/usr/lib/rabbitmq/bin/rabbitmqctl stop (code=exited, status=2)
Main PID: 3891 (beam)
  CGroup: /system.slice/rabbitmq-server.service
          ├─3891 /usr/lib64/erlang/erts-5.10.4/bin/beam -W w -K true -A30 -P 1048576 -- -root /usr/lib64/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.3.5/sbin/../ebin -nos...
          ├─3908 /usr/lib64/erlang/erts-5.10.4/bin/epmd -daemon
          ├─3963 inet_gethost 4
          └─3964 inet_gethost 4

Nov 12 01:32:39 vdevops systemd[1]: Starting RabbitMQ broker...
Nov 12 01:32:39 vdevops systemd[1]: rabbitmq-server.service: Got notification message from PID 3908, but reception only permitted for main PID 3891
Nov 12 01:32:40 vdevops rabbitmq-server[3891]: RabbitMQ 3.3.5. Copyright (C) 2007-2014 GoPivotal, Inc.
Nov 12 01:32:40 vdevops rabbitmq-server[3891]: ##  ##      Licensed under the MPL.  See http://www.rabbitmq.com/Nov 12 01:32:40 vdevops rabbitmq-server[3891]: ##  ##Nov 12 01:32:40 vdevops rabbitmq-server[3891]: ##########  Logs: /var/log/rabbitmq/rabbit@vdevops.logNov 12 01:32:40 vdevops rabbitmq-server[3891]: ######  ##        /var/log/rabbitmq/rabbit@vdevops-sasl.logNov 12 01:32:40 vdevops rabbitmq-server[3891]: ##########Nov 12 01:32:41 vdevops systemd[1]: Started RabbitMQ broker.
Nov 12 01:32:41 vdevops rabbitmq-server[3891]: Starting broker... completed with 0 plugins.
[root@vdevops~]# systemctl enable rabbitmq-serverCreated symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service.

防火墙设置

[root@linuxprobe~]# firewall-cmd --add-port=5672/tcp --permanentsuccess
[root@linuxprobe~]# firewall-cmd --reloadsuccess

要使用RabbitMQ,请先添加用户

[root@vdevops ~]# rabbitmqctl add_user linuxprobe passwordCreating user "linuxprobe" ...
...done.
[root@vdevops ~]# rabbitmqctl list_usersListing users ...
guest   [administrator]
linuxprobe  []
...done.# granting admin role to a user is like follows[root@vdevops ~]# rabbitmqctl change_password linuxprobe strongpasswordChanging password for user "linuxprobe" ...
...done.# granting admin role to a user is like follows[root@vdevops ~]# rabbitmqctl set_user_tags linuxprobe administratorSetting tags for user "linuxprobe" to [administrator] ...
...done.# deleting a user is like follows[root@vdevops ~]# rabbitmqctl delete_user linuxprobeDeleting user "linuxprobe " ...
...done.

要使用RabbitMQ,也要添加虚拟主机

[root@vdevops ~]# rabbitmqctl add_vhost /my_vhostCreating vhost "/my_vhost" ...
...done.
[root@vdevops ~]# rabbitmqctl list_vhostsListing vhosts ...
/
/my_vhost
...done.
[root@vdevops ~]# rabbitmqctl delete_vhost /my_vhostDeleting vhost "/my_vhost" ...
...done.

给虚拟主机的用户授予权限,请如下配置

# rabbitmqctl set_permissions [-p vhost] [user] [permission ? (modify) (write) (read)][root@vdevops ~]# rabbitmqctl set_permissions -p /my_vhost linuxprobe ".*" ".*" ".*"Setting permissions for user "linuxprobe" in vhost "/my_vhost" ...
...done.#[root@vdevops ~]#  rabbitmqctl list_user_permissions linuxprobeListing permissions for user "linuxprobe" ...
/my_vhost   .*  .*  .*
...done.# deleting permission of a specific user is like follows[root@vdevops ~]# rabbitmqctl clear_permissions -p /my_vhost linuxprobeClearing permissions for user "linuxprobe" in vhost "/my_vhost" ...
...done.

RabbitMQ:使用Web UI

[root@vdevops ~]# rabbitmq-plugins enable rabbitmq_managementThe following plugins have been enabled:
 mochiweb
 webmachine
 rabbitmq_web_dispatch
 amqp_client
 rabbitmq_management_agent
 rabbitmq_management
Plugin configuration has changed. Restart RabbitMQ for changes to take effect.
[root@vdevops ~]# systemctl restart rabbitmq-server

客户端访问

http://vdevops:15672/

rabbitmqadmin使用

可以配置RabbitMQ使用rabbitmqadmin命

在Web UI上下载rabbitmqadmin。 登录到Web UI并移动到“http://(主机名或IP地址):15672 / cli”,然后显示以下屏幕,您可以在这里下载rabbitmqadmin,点击here右键保存rabbitmqadmin.txt,然后上传到服务器上面更改为rabbitmqadmin,并添加执行权限

将rabbitmqadmin上传到RabbitMQ服务器并设置合适的权限,此示例显示如下设置

[root@localhost ~]# ll /usr/local/bin/rabbitmqadmin-rwxr-xr-x. 1 root root 36112 Nov 11 17:23 /usr/local/bin/rabbitmqadmin
[root@vdevops bin]# rabbitmqadmin list users+------------+------------------------------+---------------+
|    name    |        password_hash         |     tags      |
+------------+------------------------------+---------------+
| guest      | k2rhpzCrZBKkY5WRhUWrGm5DCkg= | administrator |
| linuxprobe | P+YxK1QXIYrJpek5i//rPjn5SME= | administrator |
+------------+------------------------------+---------------+
[root@vdevops bin]# cd[root@vdevops ~]# rabbitmqadmin list users+------------+------------------------------+---------------+
|    name    |        password_hash         |     tags      |
+------------+------------------------------+---------------+
| guest      | k2rhpzCrZBKkY5WRhUWrGm5DCkg= | administrator |
| linuxprobe | P+YxK1QXIYrJpek5i//rPjn5SME= | administrator |
+------------+------------------------------+---------------+
[root@vdevops ~]# rabbitmqadmin list vhosts+-----------+---------+
|   name    | tracing |
+-----------+---------+
| /         | False   |
| /my_vhost | False   |
+-----------+---------+
[root@vdevops ~]# rabbitmqadmin declare user name=centos password=password tags=administratoruser declared
[root@vdevops ~]# rabbitmqadmin declare permission vhost=/vhost01 user=centos cOnfigure=".*" write=".*" read=".*"*** vhost_or_user_not_found
[root@vdevops ~]# rabbitmqadmin declare vhost name=/vhost01vhost declared
[root@vdevops ~]# rabbitmqadmin declare permission vhost=/vhost01 user=centos cOnfigure=".*" write=".*" read=".*"permission declared
[root@vdevops ~]# rabbitmqadmin -V /vhost01 -u centos -p password declare queue name=my_queue01queue declared
[root@vdevops ~]# rabbitmqadmin -V /vhost01 -u centos -p password publish routing_key=my_queue01 payload='Hello RabbitMQ World!' exchange=amq.defaultMessage published
[root@vdevops ~]# rabbitmqadmin -V /vhost01 -u centos -p password get queue=my_queue01 requeue=false+-------------+----------+---------------+-----------------------+---------------+------------------+------------+-------------+
| routing_key | exchange | message_count |        payload        | payload_bytes | payload_encoding | properties | redelivered |
+-------------+----------+---------------+-----------------------+---------------+------------------+------------+-------------+
| my_queue01  |          | 0             | Hello RabbitMQ World! | 21            | string           |            | False       |
+-------------+----------+---------------+-----------------------+---------------+------------------+------------+-------------+
[root@vdevops ~]# rabbitmqadmin -V /vhost01 -u centos -p password publish routing_key=my_queue01 payload='Hello LinuxProbe!' exchange=amq.defaultMessage published
[root@vdevops ~]# rabbitmqadmin -V /vhost01 -u centos -p password get queue=my_queue01 requeue=false+-------------+----------+---------------+-------------------+---------------+------------------+------------+-------------+
| routing_key | exchange | message_count |      payload      | payload_bytes | payload_encoding | properties | redelivered |
+-------------+----------+---------------+-------------------+---------------+------------------+------------+-------------+
| my_queue01  |          | 0             | Hello LinuxProbe! | 17            | string           |            | False       |
+-------------+----------+---------------+-------------------+---------------+------------------+------------+-------------+

读到这里,这篇“CentOS7下怎么搭建RabbitMQ”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程笔记行业资讯频道。


推荐阅读
  • 前言: 网上搭建k8s的文章很多,但很多都无法按其说明在阿里云ecs服务器成功搭建,所以我就花了些时间基于自己成功搭建k8s的步骤写了个操作手册,希望对想搭建k8s环境的盆友有所帮 ... [详细]
  • 在 CentOS 7 上部署和配置 RabbitMQ 消息队列系统时,首先需要安装 Erlang,因为 RabbitMQ 是基于 Erlang 语言开发的。具体步骤包括:安装必要的依赖项,下载 Erlang 源码包(可能需要一些时间,请耐心等待),解压源码包,解决可能出现的错误,验证安装是否成功,并将 Erlang 添加到环境变量中。接下来,下载 RabbitMQ 的 tar.xz 压缩包,并进行解压和安装。确保每一步都按顺序执行,以保证系统的稳定性和可靠性。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • 深入解析:RKHunter与AIDE在入侵检测中的应用与优势
    本文深入探讨了RKHunter与AIDE在入侵检测领域的应用及其独特优势。通过对比分析,详细阐述了这两种工具在系统完整性验证、恶意软件检测及日志文件监控等方面的技术特点和实际效果,为安全管理人员提供了有效的防护策略建议。 ... [详细]
  • 如何利用Apache与Nginx高效实现动静态内容分离
    如何利用Apache与Nginx高效实现动静态内容分离 ... [详细]
  • 在Windows环境中优化提交Spark任务的方法与实践
    在Windows环境中优化提交Spark任务的方法与实践 ... [详细]
  • .Net下RabbitMQ发布订阅模式实践
    一、概念AMQP,即AdvancedMessageQueuingProtocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • Django框架下的对象关系映射(ORM)详解
    在Django框架中,对象关系映射(ORM)技术是解决面向对象编程与关系型数据库之间不兼容问题的关键工具。通过将数据库表结构映射到Python类,ORM使得开发者能够以面向对象的方式操作数据库,从而简化了数据访问和管理的复杂性。这种技术不仅提高了代码的可读性和可维护性,还增强了应用程序的灵活性和扩展性。 ... [详细]
  • IIS 7及7.5版本中应用程序池的最佳配置策略与实践
    在IIS 7及7.5版本中,优化应用程序池的配置是提升Web站点性能的关键步骤。具体操作包括:首先定位到目标Web站点的应用程序池,然后通过“应用程序池”菜单找到对应的池,右键选择“高级设置”。在一般优化方案中,建议调整以下几个关键参数:1. **基本设置**: - **队列长度**:默认值为1000,可根据实际需求调整队列长度,以提高处理请求的能力。此外,还可以进一步优化其他参数,如处理器使用限制、回收策略等,以确保应用程序池的高效运行。这些优化措施有助于提升系统的稳定性和响应速度。 ... [详细]
  • MySQL日志分析在应急响应中的应用与优化策略
    在应急响应中,MySQL日志分析对于检测和应对数据库攻击具有重要意义。常见的攻击手段包括弱口令、SQL注入、权限提升和备份数据窃取。通过对MySQL日志的深入分析,不仅可以及时发现潜在的攻击行为,还能详细还原攻击过程并追踪攻击源头。此外,优化日志记录和分析策略,能够提高安全响应效率,增强系统的整体安全性。 ... [详细]
  • 我正致力于利用Azure Functions和System.IO.Compression库,将大量文件高效地压缩并存储到Azure Blob容器中。这种方法不仅提高了存储效率,还优化了数据管理流程。通过这种方式,可以显著减少存储成本,并提升数据访问速度。 ... [详细]
  • CentOS7 安装RabbitMQ
    1安装编译工具yuminstall-ymakegccgcc-c++m4opensslopenssl-develncurses-develunixODBCunixODBC-devel ... [详细]
  • Java自学知乎!阿里高级算法专家公开10份资料,涨姿势!
    接口概述:接口是Java语言中的一种引用类型,是方法的集合,所以接口的内部主要就是定义方法,包含常量,抽象方法(JDK ... [详细]
author-avatar
干豆豆腐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有