CentOS7安裝配置RabbitMQ

RabbitMQ是流行的開源消息隊列系統,是AMQP(Advanced Message Queuing Protocol高級消息隊列協議)的標準實現,用erlang語言開發。

因爲RabbitMQ是基於Erlang語言開發,因此在安裝RabbitMQ以前,須要先安裝Erlang
wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm

執行下面命令升級上步下載的rpm軟件包
rpm -ivh erlang-19.0.4-1.el7.centos.x86_64.rpm

執行下面命令安裝erlang
yum -y install erlang

測試Erlang是否安裝成功
[root@localhost src]# erl -version
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 8.0.3

安裝RabbitMQ
[root@localhost src]#yum -y install rabbitmq-server-3.6.6-1.el6.noarch.rpm

後臺運行rabbitmq
[root@localhost src]rabbitmq-server –detached

設爲開機啓動
[root@localhost src]chkconfig rabbitmq-server on

啓動rabbitmq服務
[root@localhost sbin]# service rabbitmq-server start

查看狀態
rabbitmqctl status

查看目前RabbitMQ已安裝插件
[root@localhost sbin]# ./rabbitmq-plugins list

這樣雖然咱們已經將rabbitmq的服務正常啓動了,可是咱們在物理機的瀏覽器中輸入ip:15672時,並不能鏈接,由於咱們尚未配置維護插件和開啓遠程鏈接
安裝web管理端
[root@localhost sbin]# rabbitmq-plugins enable rabbitmq_management

設置配置文件,並開啓用戶遠程訪問#cd /etc/rabbitmq
 #cp /usr/share/doc/rabbitmq-server-3.5.6/rabbitmq.config.example /etc/rabbitmq/
 #mv rabbitmq.config.example rabbitmq.config
vi /etc/rabbitmq/rabbitmq.config
 
service rabbitmq-server restart

新建一個用戶名爲admin,密碼爲admin的用戶,並授予管理員(administrator)權限
[root@localhost sbin]# rabbitmqctl add_user  admin  admin
[root@localhost sbin]# rabbitmqctl set_user_tags admin administrator
經過瀏覽器訪問地址:http://192.168.10.92:15672/#/

設置權限
rabbitmqctl add_vhost admin
rabbitmqctl set_permissions -p admin  admin ".*" ".*" ".*"

註釋:主要是set_permissions的使用,先看下命令的格式
set_permissions [-p vhost] {user} {conf} {write} {read}

須要注意如下幾點的理解:
•  1.這裏的權限,只是針對通常用戶的訪問權限,注意和角色的區分。舉個例子來講,非管理用戶(普通用戶),角色設置爲none,而後在這裏配置conf、write、read的權限。
•  2.conf、write、read採用正則表達式,這裏的正則主要是針對exchange和queue。主要2種特殊的表達式:
^$:表示徹底不匹配(即沒有權限)
.*:表示匹配全部(即全部權限)

錯誤信息:輸入service rabbitmq-server start 啓動命令後 出現下面錯誤信息
 Job for rabbitmq-server.service failed. See ‘systemctl status rabbitmq-server.service’ and ‘journalctl -xn’ for details.
 解決方案:
  將5672端口加入防火牆白名單
   firewall-cmd --permanent --add-port=5672/tcp
   firewall-cmd --reload
   setsebool -P nis_enabled 1
 粗暴一點的方法就是直接關閉防火牆,關閉seLinux
  systemctl stop firewalld
  setenforce 0 
  錯誤2、出現登陸頁面後,輸入guest帳戶信息後,不能登陸。
  這是由於咱們沒有開啓遠程用戶訪問,這個解決方案,在上面步驟中已經列出,再也不重複。

轉載自:web

https://blog.csdn.net/hao134838/article/details/71512557正則表達式

https://blog.csdn.net/cool_summer_moon/article/details/78803661centos

相關文章
相關標籤/搜索