環境:
CentOS7
需要安裝:erlang 22.2 rabbitmq 3.8.3
參考:
rabbit官網地址:http://www.rabbitmq.com/which-erlang.html
rabbit文檔:http://www.rabbitmq.com/install-generic-unix.html
https://blog.csdn.net/weixin_41004350/article/details/83046842
入門教程:https://www.rabbitmq.com/getstarted.html
一、安裝erlang
rabbitmq是erlang語言編寫的,安裝rabbitmq之前,需要先安裝erlang,這里用erlang的源碼進行安裝,erlang安裝包官網下載地址:http://erlang.org/download/
網盤鏈接:提取碼:0k9j
在Rabbit中存在兩種消息確認模式, 自動確認:只要消息從隊列獲取,無論消費者獲取到消息后是否成功消費,都認為是消息成功消費 手動確認:消費從隊列中獲取消息后,服務器會將該消息處於不可用狀態,等待消費者反饋 改為手動確認方式只需改兩處,1.開啟監聽時將autoAck參數改為false,2.消息消費成功后返回確認 RabbitMQ提供了四種Exchange模式:direct(路由模式),fanout(發布訂閱模式),topic(通配符模式),header 。
1.下載安裝包(otp_src_22.2.tar.gz)然后上傳至Linux服務器
2.解壓:定位到安裝包所在目錄
tar -zxvf otp_src_22.2.tar.gz
3.安裝必要的環境# 在編譯之前,必須安裝以下依賴包
yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel
4.編譯並安裝
cd otp_src_22.2 ./configure --prefix=/usr/local/erlang make && make install
5.配置環境變量
#進入profile文件
vim /etc/profile
#添加如下內容
PATH=$PATH:/usr/local/erlang/bin
source /etc/profile
6.安裝完成,直接輸入erl,得到如下圖得安裝成功
二、安裝rabbitmq
1.下載rabbitmq安裝包,我是通過xftp上傳到服務器的
2.解壓:定位到安裝包目錄
xz -d rabbitmq-server-generic-unix-3.8.3.tar.xz tar xf rabbitmq-server-generic-unix-3.8.3.tar
3.安裝必要的環境
yum install python -y yum install xmlto -y yum install python-simplejson -y (這個我沒安裝成功)
4.配置# 添加環境變量
vi /etc/profile ------ 添加如下內容 ------ PATH=$PATH:/usr/local/rabbitmq_server-3.8.3/sbin
#重載一下環境變量
source /etc/profile
#添加web管理插件
rabbitmq-plugins enable rabbitmq_management
5.添加配置文件
默認rabbitmq是沒有配置文件的,需要去官方github上,復制一個配置文件模版過來,將配置文件復制到 /usr/local/rabbitmq_server-3.7.8/etc/rabbitmq/ 下,github地址:https://github.com/rabbitmq/rabbitmq-server/tree/master/docs
6.啟動rabbitmq服務(輸入rabbitmq-server detached后可能會出現【node with name "rabbit" already running】,可能是因為rabbitmq已經自動啟動了,可以用命令
sudo rabbitmqctl status查看下狀態)
# 后台啟動rabbitmq服務
rabbitmq-server detached
7.登錄管理插件
啟用了rabbitmq的管理插件,會有一個web管理界面,默認監聽端口15672,將此端口在防火牆上打開,則可以訪問web界面(172.16.xx.xx:15672),默認用戶名guest密碼也是guest,登錄后報錯:User can only log in via localhost,那是因為默認是限制了guest用戶只能在本機登陸,可以修改配置文件rabbitmq.conf來取消這個限制。
登錄后的界面:
rabbitmq常用命令
查看狀態:
sudo rabbitmqctl status
停止rabbitmq:
sudo rabbitmqctl stop
啟動:
sudo rabbitmq-server detached
插件管理:
插件列表: rabbitmq-plugins list
啟動插件: rabbitmq-plugins enable XXX (XXX為插件名)
停用插件: rabbitmq-plugins disable XXX
用戶管理:
添加用戶: rabbitmqctl add_user username password
刪除用戶: rabbitmqctl delete_user username
修改密碼: rabbitmqctl change_password username newpassword
設置用戶角色: rabbitmqctl set_user_tags username tag
列出用戶: rabbitmqctl list_users
權限管理:
列出所有用戶權限: rabbitmqctl list_permissions
查看制定用戶權限: rabbitmqctl list_user_permissions username
清除用戶權限: rabbitmqctl clear_permissions [-p vhostpath] username
設置用戶權限: rabbitmqctl set_permissions [-p vhostpath] username conf write read
conf: 一個正則匹配哪些資源能被該用戶訪問
write:一個正則匹配哪些資源能被該用戶寫入
read:一個正則匹配哪些資源能被該用戶讀取