文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

CentOS7下怎么搭建RabbitMQ

2023-06-27 11:44

关注

本文小编为大家详细介绍“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]: DIAGNOSTICSNov 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@vdevopsNov 12 01:30:04 vdevops.org rabbitmqctl[3831]: - home dir: /var/lib/rabbitmqNov 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 fNov 12 01:30:04 vdevops.org systemd[1]: rabbitmq-server.service: control process exited, code=exited status=2Nov 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 4Nov 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 3891Nov 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_managementPlugin 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”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯