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

RabbitMQ 简介
安装RabbitMQ的消息代理软件,实现了AMQP(高级消息队列协议)
RabbitMQ 教程: http://www.rabbitmq.com/getstarted.html
RabbitMQ 安装: http://www.rabbitmq.com/download.html
RabbitMQ 安装 #InstallfromEPEL [root@vdevops~]#yum--enablerepo=epel-yinstallrabbitmq-server [root@vdevops~]#systemctlstartrabbitmq-server [root@vdevops/]#journalctl-xe Nov1201:30:01vdevops.orgCROND[3856]:(root)CMD(/usr/lib64/sa/sa111) Nov1201:30:04vdevops.orgrabbitmqctl[3831]:DIAGNOSTICS Nov1201:30:04vdevops.orgrabbitmqctl[3831]:=========== Nov1201:30:04vdevops.orgrabbitmqctl[3831]:attemptedtocontact:[rabbit@vdevops] Nov1201:30:04vdevops.orgrabbitmqctl[3831]:rabbit@vdevops: Nov1201:30:04vdevops.orgrabbitmqctl[3831]:*unabletoconnecttoepmd(port4369)onvdevops:timeout(timedout) Nov1201:30:04vdevops.orgrabbitmqctl[3831]:currentnodedetails: Nov1201:30:04vdevops.orgrabbitmqctl[3831]:-nodename:rabbitmqctl3831@vdevops Nov1201:30:04vdevops.orgrabbitmqctl[3831]:-homedir:/var/lib/rabbitmq Nov1201:30:04vdevops.orgrabbitmqctl[3831]:-cookiehash:s++dDMtIhAufFItw+ercBw== Nov1201:30:04vdevops.orgpolkitd[1007]:UnregisteredAuthenticationAgentforunix-process:3798:36632(systembusname:1.23,objectpath/org/freedesktop/PolicyKit1/AuthenticationAgent,localeen_US.UTF-8)(disconnectedf Nov1201:30:04vdevops.orgsystemd[1]:rabbitmq-server.service:controlprocessexited,code=exitedstatus=2 Nov1201:30:04vdevops.orgsystemd[1]:FailedtostartRabbitMQbroker. --Subject:Unitrabbitmq-server.servicehasfailed--Defined-By:systemd--Support:http://lists.freedesktop.org/mailman/listinfo/systemd-devel----Unitrabbitmq-server.servicehasfailed.----Theresultisfailed.Nov1201:30:04vdevops.orgsystemd[1]:Unitrabbitmq-server.serviceenteredfailedstate.Nov1201:30:04vdevops.orgsystemd[1]:rabbitmq-server.servicefailed.Nov1201:30:42vdevops.orgsystemd[1]:Gotautomountrequestfor/proc/sys/fs/binfmt_misc,triggeredby3860(find)Nov1201:30:42vdevops.orgsystemd[1]:MountingArbitraryExecutableFileFormatsFileSystem...--Subject:Unitproc-sys-fs-binfmt_misc.mounthasbegunstart-up--Defined-By:systemd--Support:http://lists.freedesktop.org/mailman/listinfo/systemd-devel----Unitproc-sys-fs-binfmt_misc.mounthasbegunstartingup.Nov1201:30:42vdevops.orgsystemd[1]:MountedArbitraryExecutableFileFormatsFileSystem.--Subject:Unitproc-sys-fs-binfmt_misc.mounthasfinishedstart-up--Defined-By:systemd--Support:http://lists.freedesktop.org/mailman/listinfo/systemd-devel----Unitproc-sys-fs-binfmt_misc.mounthasfinishedstartingup.----Thestart-upresultisdone.rabbitmq-server启动报错:Failed to start RabbitMQ broker
度娘解析:主机hostname配置错误,原本hostname为vdevops.org,更改为vdevops,修改hosts文件中hostname设置
#InstallfromEPEL [root@vdevops~]#yum--enablerepo=epel-yinstallrabbitmq-server [root@vdevops~]#systemctlstartrabbitmq-server [root@vdevops/]#journalctl-xe Nov1201:30:01vdevops.orgCROND[3856]:(root)CMD(/usr/lib64/sa/sa111) Nov1201:30:04vdevops.orgrabbitmqctl[3831]:DIAGNOSTICS Nov1201:30:04vdevops.orgrabbitmqctl[3831]:=========== Nov1201:30:04vdevops.orgrabbitmqctl[3831]:attemptedtocontact:[rabbit@vdevops] Nov1201:30:04vdevops.orgrabbitmqctl[3831]:rabbit@vdevops: Nov1201:30:04vdevops.orgrabbitmqctl[3831]:*unabletoconnecttoepmd(port4369)onvdevops:timeout(timedout) Nov1201:30:04vdevops.orgrabbitmqctl[3831]:currentnodedetails: Nov1201:30:04vdevops.orgrabbitmqctl[3831]:-nodename:rabbitmqctl3831@vdevops Nov1201:30:04vdevops.orgrabbitmqctl[3831]:-homedir:/var/lib/rabbitmq Nov1201:30:04vdevops.orgrabbitmqctl[3831]:-cookiehash:s++dDMtIhAufFItw+ercBw== Nov1201:30:04vdevops.orgpolkitd[1007]:UnregisteredAuthenticationAgentforunix-process:3798:36632(systembusname:1.23,objectpath/org/freedesktop/PolicyKit1/AuthenticationAgent,localeen_US.UTF-8)(disconnectedf Nov1201:30:04vdevops.orgsystemd[1]:rabbitmq-server.service:controlprocessexited,code=exitedstatus=2 Nov1201:30:04vdevops.orgsystemd[1]:FailedtostartRabbitMQbroker. --Subject:Unitrabbitmq-server.servicehasfailed--Defined-By:systemd--Support:http://lists.freedesktop.org/mailman/listinfo/systemd-devel----Unitrabbitmq-server.servicehasfailed.----Theresultisfailed.Nov1201:30:04vdevops.orgsystemd[1]:Unitrabbitmq-server.serviceenteredfailedstate.Nov1201:30:04vdevops.orgsystemd[1]:rabbitmq-server.servicefailed.Nov1201:30:42vdevops.orgsystemd[1]:Gotautomountrequestfor/proc/sys/fs/binfmt_misc,triggeredby3860(find)Nov1201:30:42vdevops.orgsystemd[1]:MountingArbitraryExecutableFileFormatsFileSystem...--Subject:Unitproc-sys-fs-binfmt_misc.mounthasbegunstart-up--Defined-By:systemd--Support:http://lists.freedesktop.org/mailman/listinfo/systemd-devel----Unitproc-sys-fs-binfmt_misc.mounthasbegunstartingup.Nov1201:30:42vdevops.orgsystemd[1]:MountedArbitraryExecutableFileFormatsFileSystem.--Subject:Unitproc-sys-fs-binfmt_misc.mounthasfinishedstart-up--Defined-By:systemd--Support:http://lists.freedesktop.org/mailman/listinfo/systemd-devel----Unitproc-sys-fs-binfmt_misc.mounthasfinishedstartingup.----Thestart-upresultisdone. 防火墙设置 [root@linuxprobe~]#firewall-cmd--add-port=5672/tcp--permanentsuccess[root@linuxprobe~]#firewall-cmd--reloadsuccess 要使用RabbitMQ,请先添加用户 [root@vdevops~]#rabbitmqctladd_userlinuxprobepassword Creatinguser"linuxprobe"... ...done. [root@vdevops~]#rabbitmqctllist_users Listingusers... guest[administrator] linuxprobe[] ...done. #grantingadminroletoauserislikefollows [root@vdevops~]#rabbitmqctlchange_passwordlinuxprobestrongpassword Changingpasswordforuser"linuxprobe"... ...done. #grantingadminroletoauserislikefollows [root@vdevops~]#rabbitmqctlset_user_tagslinuxprobeadministrator Settingtagsforuser"linuxprobe"to[administrator]... ...done. #deletingauserislikefollows [root@vdevops~]#rabbitmqctldelete_userlinuxprobe Deletinguser"linuxprobe"... ...done. 要使用RabbitMQ,也要添加虚拟主机 [root@vdevops~]#rabbitmqctladd_vhost/my_vhost Creatingvhost"/my_vhost"... ...done. [root@vdevops~]#rabbitmqctllist_vhosts Listingvhosts... / /my_vhost ...done. [root@vdevops~]#rabbitmqctldelete_vhost/my_vhost Deletingvhost"/my_vhost"... ...done. 给虚拟主机的用户授予权限,请如下配置 #rabbitmqctlset_permissions[-pvhost][user][permission?(modify)(write)(read)] [root@vdevops~]#rabbitmqctlset_permissions-p/my_vhostlinuxprobe".*"".*"".*" Settingpermissionsforuser"linuxprobe"invhost"/my_vhost"... ...done. # [root@vdevops~]#rabbitmqctllist_user_permissionslinuxprobe Listingpermissionsforuser"linuxprobe"... /my_vhost.*.*.* ...done. #deletingpermissionofaspecificuserislikefollows [root@vdevops~]#rabbitmqctlclear_permissions-p/my_vhostlinuxprobe Clearingpermissionsforuser"linuxprobe"invhost"/my_vhost"... ...done. RabbitMQ:使用Web UI [root@vdevops~]#rabbitmq-pluginsenablerabbitmq_m