1、安裝RabbitMQlinux
安裝rabbitmq所需的erlang軟件包,方法有二(編譯和yum安裝),這裏採用yum安裝web
vim /etc/yum.repos.d/rabbitmq-erlang.repo #插入以下代碼 [rabbitmq-erlang] name=rabbitmq-erlang baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/7 gpgcheck=1 gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc repo_gpgcheck=0 enabled=1 #清除yum緩存並從新生成緩存 yum clean all && yum makecache
安裝erlang/socatvim
yum install erlang socat -y
安裝rabbitmqcentos
rpm -Uvh https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.3/rabbitmq-server-3.7.3-1.el7.noarch.rpm
#啓動rabbitmq服務 systemctl start rabbitmq-server #將rabbitmq設置爲開機啓動 systemctl enable rabbitmq-server #查看rabbitmq運行狀態 systemctl status rabbitmq-server
建立rabbitmq用戶緩存
#添加用戶 rabbitmqctl add_user 用戶名 密碼 #設置用戶角色 rabbitmq set_user_tags admin administrator #tag(administrator,monitoring,policymaker,management) #設置用戶權限(接受來自全部Host的全部操做) sudo rabbitmqctl set_permissions -p "/" admin '.*' '.*' '.*' #查看用戶權限 sudo rabbitmqctl list_user_permissions admin
配置遠程訪問dom
#修改配置文件, sudo vi /etc/rabbitmq/rabbitmq.config #保存如下內容 [ {rabbit, [{tcp_listeners, [5672]},
{loopback_users, ["admin"]}]} ].
模塊開放tcp
#開放shovel模塊和shovel_management管理模塊 rabbitmq-plugins enable rabbitmq_shovel rabbitmq-plugins enable rabbitmq_shovel_management
查看已開放的模塊oop
[root@rabbitmq bin]# rabbitmq-plugins list Configured: E = explicitly enabled; e = implicitly enabled | Status: * = running on rabbit@rabbitmq |/ [e*] rabbitmq_amqp1_0 3.7.3 [ ] rabbitmq_auth_backend_cache 3.7.3 [ ] rabbitmq_auth_backend_http 3.7.3 [ ] rabbitmq_auth_backend_ldap 3.7.3 [ ] rabbitmq_auth_mechanism_ssl 3.7.3 [ ] rabbitmq_consistent_hash_exchange 3.7.3 [ ] rabbitmq_event_exchange 3.7.3 [ ] rabbitmq_federation 3.7.3 [ ] rabbitmq_federation_management 3.7.3 [ ] rabbitmq_jms_topic_exchange 3.7.3 [e*] rabbitmq_management 3.7.3 [e*] rabbitmq_management_agent 3.7.3 [ ] rabbitmq_mqtt 3.7.3 [ ] rabbitmq_peer_discovery_aws 3.7.3 [ ] rabbitmq_peer_discovery_common 3.7.3 [ ] rabbitmq_peer_discovery_consul 3.7.3 [ ] rabbitmq_peer_discovery_etcd 3.7.3 [ ] rabbitmq_peer_discovery_k8s 3.7.3 [ ] rabbitmq_random_exchange 3.7.3 [ ] rabbitmq_recent_history_exchange 3.7.3 [ ] rabbitmq_sharding 3.7.3 [E*] rabbitmq_shovel 3.7.3 [E*] rabbitmq_shovel_management 3.7.3 [ ] rabbitmq_stomp 3.7.3 [ ] rabbitmq_top 3.7.3 [ ] rabbitmq_tracing 3.7.3 [ ] rabbitmq_trust_store 3.7.3 [e*] rabbitmq_web_dispatch 3.7.3 [ ] rabbitmq_web_mqtt 3.7.3 [ ] rabbitmq_web_mqtt_examples 3.7.3 [ ] rabbitmq_web_stomp 3.7.3 [ ] rabbitmq_web_stomp_examples 3.7.3
防火牆開放端口ui
firewall-cmd --zone=public --add-port=15672/tcp --permanent #permanent爲永久生效
#從新加載防火牆
firewall-cmd --reload
附上rabbitmq經常使用命令url
# 添加用戶 sudo rabbitmqctl add_user <username> <password> # 刪除用戶 sudo rabbitmqctl delete_user <username> # 修改用戶密碼 sudo rabbitmqctl change_password <username> <newpassword> # 清除用戶密碼(該用戶將不能使用密碼登錄,可是能夠經過SASL登錄若是配置了SASL認證) sudo rabbitmqctl clear_password <username> # 設置用戶tags(至關於角色,包含administrator,monitoring,policymaker,management) sudo rabbitmqctl set_user_tags <username> <tag> # 列出全部用戶 sudo rabbitmqctl list_users # 建立一個vhosts sudo rabbitmqctl add_vhost <vhostpath> # 刪除一個vhosts sudo rabbitmqctl delete_vhost <vhostpath> # 列出vhosts sudo rabbitmqctl list_vhosts [<vhostinfoitem> ...] # 針對一個vhosts給用戶賦予相關權限; sudo rabbitmqctl set_permissions [-p <vhostpath>] <user> <conf> <write> <read> # 清除一個用戶對vhosts的權限; sudo rabbitmqctl clear_permissions [-p <vhostpath>] <username> # 列出哪些用戶能夠訪問該vhosts; sudo rabbitmqctl list_permissions [-p <vhostpath>] # 列出用戶訪問權限; sudo rabbitmqctl list_user_permissions <username>
2、配置shovel模塊
登錄web界面配置shovel
開始配置
將對應的信息填好,這裏注意,由於咱們建vhost的時候通常喜歡帶個「/」,可是,在uri中直接填「/」他會當成路徑來處理,因此這個地方要用%2f來轉義。其它的就是將你源隊列及目錄隊列信息填好,而後添加便可。
amqp://username:passwd@IP:端口/%2fVhost
配置完成後在shovel status裏面查看狀態,若是是runing表示配置成功。若是是terminated則表示配置有問題,請根據日誌分析錯誤
URI參照一下示例
amqp:// connect to local server as default user amqp://user@/my-vhost connect to local server with alternate user and virtual host (passwords are not required for local connections) amqp://server-name connect to server-name, without SSL and default credentials amqp://user:password@server-name/my-vhost connect to server-name, with credentials and overridden virtual host amqps://user:password@server-name?cacertfile=/path/to/cacert.pem&certfile=/path/to/cert.pem&keyfile=/path/to/key.pem&verify=verify_peer connect to server-name, with credentials and SSL amqps://server-name?cacertfile=/path/to/cacert.pem&certfile=/path/to/cert.pem&keyfile=/path/to/key.pem&verify=verify_peer&fail_if_no_peer_cert=true&auth_mechanism=external connect to server-name, with SSL and EXTERNAL authentication
附:RabbitMQ遠程不能訪問問題的解決
修改rabbitmq.config.example,將如下兩項前面的%去掉,保存而後重啓服務便可。參考來源
{tcp_listeners, [5672]}, {loopback_users, ["admin"]},