如何在CentOS 7部署RabbitMQ服务

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。其中较为成熟的MQ产品有IBM WEBSPHERE MQ等等。

如何在CentOS 7部署RabbitMQ服务

RabbitMQ 简介

安装RabbitMQ的消息代理软件,实现了AMQP(高级消息队列协议)

RabbitMQ 教程: http://www.rabbitmq.com/getstarted.html

RabbitMQ 安装:http://www.rabbitmq.com/download.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设置

# 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.  

防火墙设置

[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:   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/

如何在CentOS 7部署RabbitMQ服务

如何在CentOS 7部署RabbitMQ服务

rabbitmqadmin使用

可以配置RabbitMQ使用rabbitmqadmin命

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

如何在CentOS 7部署RabbitMQ服务

相关推荐