RabbitMQ 简介

  • MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。其中较为成熟的MQ产品有IBM WEBSPHERE MQ等等
  • 安装RabbitMQ的消息代理软件,实现了AMQP(高级消息队列协议)
  • RabbitMQ 教程: http://www.rabbitmq.com/getstarted.html
  • RabbitMQ 安装:http://www.rabbitmq.com/download.html
  • RabbitMQ 专栏:http://blog.csdn.net/column/details/rabbitmq.html

RabbitMQ 安装

# Install from EPEL
[root@vdevops~]# yum --enablerepo=epel -y install rabbitmq-server
[root@vdevops~]# systemctl start rabbitmq-server
[root@vdevops /]# journalctl -xe
Nov 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 brokerLoaded: 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 agoProcess: 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 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.log
Nov 12 01:32:40 vdevops rabbitmq-server[3891]: ######  ##        /var/log/rabbitmq/rabbit@vdevops-sasl.log
Nov 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-server
Created 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 --permanent
success
[root@linuxprobe~]# firewall-cmd --reload
success 
  • 要使用RabbitMQ,请先添加用户
[root@vdevops ~]# rabbitmqctl add_user linuxprobe password
Creating user "linuxprobe" ...
...done.
[root@vdevops ~]# rabbitmqctl list_users
Listing users ...
guest   [administrator]
linuxprobe  []
...done.
# granting admin role to a user is like follows
[root@vdevops ~]# rabbitmqctl change_password linuxprobe strongpassword
Changing password for user "linuxprobe" ...
...done.
# granting admin role to a user is like follows
[root@vdevops ~]# rabbitmqctl set_user_tags linuxprobe administrator
Setting tags for user "linuxprobe" to [administrator] ...
...done.
# deleting a user is like follows
[root@vdevops ~]# rabbitmqctl delete_user linuxprobe
Deleting user "linuxprobe " ...
...done.
  • 要使用RabbitMQ,也要添加虚拟主机
[root@vdevops ~]# rabbitmqctl add_vhost /my_vhost
Creating vhost "/my_vhost" ...
...done.
[root@vdevops ~]# rabbitmqctl list_vhosts
Listing vhosts ...
/
/my_vhost
...done.
[root@vdevops ~]# rabbitmqctl delete_vhost /my_vhost
Deleting 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 linuxprobe
Listing permissions for user "linuxprobe" ...
/my_vhost   .*  .*  .*
...done.
# deleting permission of a specific user is like follows
[root@vdevops ~]# rabbitmqctl clear_permissions -p /my_vhost linuxprobe
Clearing permissions for user "linuxprobe" in vhost "/my_vhost" ...
...done.

RabbitMQ:使用Web UI

[root@vdevops ~]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:mochiwebwebmachinerabbitmq_web_dispatchamqp_clientrabbitmq_management_agentrabbitmq_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   |
+-----------+---------+

rabbitmqadmin 更多使用教程参考:http://www.rabbitmq.com/management-cli.html

[root@vdevops ~]# rabbitmqadmin declare user name=centos password=password tags=administrator
user declared
[root@vdevops ~]# rabbitmqadmin declare permission vhost=/vhost01 user=centos configure=".*" write=".*" read=".*"
*** vhost_or_user_not_found
[root@vdevops ~]# rabbitmqadmin declare vhost name=/vhost01
vhost 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_queue01
queue declared
[root@vdevops ~]# rabbitmqadmin -V /vhost01 -u centos -p password publish routing_key=my_queue01 payload='Hello RabbitMQ World!' exchange=amq.default
Message 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.default
Message 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       |
+-------------+----------+---------------+-------------------+---------------+------------------+------------+-------------+

CentOS 7 部署RabbitMQ 服务相关推荐

  1. centos 单机部署 LDAP 服务

    为什么80%的码农都做不了架构师?>>>    安装: Centos使用yum安装LDAP很简单: yum -y install openldap openldap-servers  ...

  2. nginx+ssl+pm2 部署 nodejs 服务

    nginx+pm2 部署 nodejs 服务 最近在 centos 上部署 nodejs 服务,记下来步骤: 注意都是使用 root 用户. 下载 nvm: curl -o- https://raw. ...

  3. docker-compose部署常用服务

    建议看此篇文章前先看以下4篇博文:Docker中以redis.conf配置文件启动Redis 一.docker-compose编写 docker-compose.yml其实就是docker命令脚本,可 ...

  4. 阿里云服务器CentOS部署Minio服务实现远程访问

    阿里云服务器CentOS部署Minio服务实现远程访问 1.下载 1.1 建立文件夹 mkdir /usr/local/minio mkdir /usr/local/minio/data 1.2下载 ...

  5. CentOS使用docker-compose在线部署milvus服务(超详细)

    部署milvus服务(在线部署docker.docker-compose.milvus服务) 注意事项: 若所有操作在root用户下进行,则无需执行第2步.第4步的第1条.第6步的第1条 离线部署适用 ...

  6. centos重启rabbitmq服务

    重启rabbitmq服务通过两个命令来实现: rabbitmqctl stop :停止rabbitmq rabbitmq-server restart : 重启rabbitmq有域名的时候起不来,ra ...

  7. Centos 7 部署 OpenStack_Rocky版高可用集群3-1

    Centos 7 部署 OpenStack_Rocky版高可用集群3-1 文章目录 Centos 7 部署 OpenStack_Rocky版高可用集群3-1 1.前期准备 1.1 软硬件准备 1.1. ...

  8. 部署RabbitMQ集群

    RabbitMQ集群实操手册 实战案例--部署RabbitMQ集群 案例目标 了解RabbitMQ服务的安装与配置. 了解RabbitMQ集群的配置架构. 了解RabbitMQ集群的使用. 案例分析 ...

  9. centos 7 部署 open-falcon 0.2.0

    虽然open-falcon是采用了前后端分离的架构,但是为了方便部署,服务端的后端与前端均部署在同一个虚拟机内,本记录是从centos刚刚装完后的初始环境开始部署,安装全程选择的用户为root. 一. ...

  10. centos7 校正linux系统时间_基于centos7系统部署NTP服务及配置时间定时同步

    概述 linux服务器在提供服务时,要和其他机器进行请求的交互,实际生产环境中,可能因为时间不同步,导致了服务异常. 下面介绍下怎么部署NTP服务来解决这个问题. ps:强烈吐槽下头条这个新排版功能, ...

最新文章

  1. WebStorm 使用经验
  2. 周志华《机器学习》课后习题解析(第一章)绪论
  3. 互联网1分钟 | 0321 小米上线“朕惊视频”;依图医疗与华为联合发布智能医疗云...
  4. 仅仅有单日的确诊总人数,无法触发SAP Analytics Cloud的Smart Discovery功能
  5. 解决Coldfusion连接MySQL数据库的问题
  6. Markdown编辑器:纯前端演示(可接入项目、含源码下载) - 总结篇
  7. error: '[class name]' does not name a type
  8. 【ProjectT】Tapestry • Quick Start • Forms
  9. [转]20个优秀网站助你征服CSS
  10. 原型模式(深克隆、浅克隆)
  11. Mongo连接可视化工具Robo3T,以及Robo3T使用
  12. 你不能不懂的社交暗语
  13. DNS测试 nslookup
  14. PM、GAN、InfoGAN、对抗自编码模型对比
  15. 拓路前行-TDSQL追求极致体验的这一路
  16. Selenium.Chrome.ChromeDriver指纹去除
  17. 迷宫 做的第一个搜索题
  18. BPM 是与非 -- 什么是BPM,如何辨别是否BPM产品,以及如何选择BPM产品
  19. 1、zstack协议栈
  20. GaussDB 如何启动和关闭数据库的归档模式

热门文章

  1. RT-Thread Studio 使用笔记(六)| 获取光传感器数据(I2C设备驱动+BH1750手写驱动代码分享)
  2. 高职计算机基础教案ppt,高职高专计算机基础幻灯片.ppt
  3. python抢点_零基础SQL小白入门学习路线与书单
  4. Java 程序员月薪3.8万,需要技术达到什么水平?
  5. vrchat模型房_vrchat人物模型 1.0 官方版
  6. Java中数字转中文数字
  7. Day03_【数组、ArrayList】
  8. 数组排序 向大佬低头 时间算法
  9. mysql存储指纹_保存图片指纹(一串乱码)到mysql, 求分析
  10. 液晶显示器常见故障维修方法