您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“CentOS7下怎么搭建RabbitMQ”,內容詳細,步驟清晰,細節處理妥當,希望這篇“CentOS7下怎么搭建RabbitMQ”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
RabbitMQ是一種消息隊列 ,用于常見的進程通信。支持點對點,請求應答和發布訂閱模式 并且提供多種語言的支持。常見的java,c#,php都支持。
# 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”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。