macOS上搭建RabbitMQ+MQTT服务器
1. 下載RabbitMQ
https://www.rabbitmq.com/install-standalone-mac.html
或
通過brew直接安裝RabbitMQ
?
2. 安裝OpenSSL 1.0.x
如果是通過brew安裝RabbitMQ請?zhí)^此步驟。
如果是手動解壓下載包,在使用RabbitMQ之前請確保系統(tǒng)的openssl是1.0以上版本。
使用命令openssl version查看當前系統(tǒng)的openssl版本,
若是0.9.x版本請使用brew install openssl安裝最新版本。
若安裝后查看版本仍舊是0.9.x請使用以下命令
重啟終端使新的OpenSSL生效。
?
3. RabbitMQ目錄
(1)配置文件目錄
(2)運行文件目錄
[手動解壓]rabbitmq_server_x.x.xx/sbin/ [brew安裝]/usr/local/sbin/?
4. 在RabbitMQ中啟用插件
(1)MQTT
(2)Management(可選)
[運行文件目錄]/rabbitmq-plugins enable rabbitmq_management [運行文件目錄]/rabbitmq-plugins enable rabbitmq_management_visualiser方便通過網(wǎng)頁登錄http://localhost:15672/查看RabbitMQ的狀態(tài)等信息。
注1:[手動解壓]默認配置下,沒有任何用戶可以登錄管理界面。需要在第5步添加用戶后才能登錄。
注2:[brew安裝]默認配置下,guest用戶只能通過回路IP 127.0.0.1登錄,無法通過其它IP登錄。
?
5. 配置RabbitMQ
(1)rabbitmq-env.conf
在配置文件目錄下打開rabbitmq-env.conf文件,若文件不存在請手動創(chuàng)建。
輸入或替換如下內(nèi)容:
(2)rabbitmq.conf
輸入以下內(nèi)容:
[{rabbitmq_mqtt, [{tcp_listeners, [1883]},{default_user, <<"DeviLeo">>},{default_pass, <<"DeviLeo@2017">>},{allow_anonymous, true},{vhost, <<"/">>},{exchange, <<"amq.topic">>},{subscription_ttl, 1800000},{prefetch, 10}]} ].別漏了最后的方括號后面的點,否則會無法啟動服務器。
注1:更多配置參數(shù)及說明見《附錄二、(3)配置文件示例》。
注2:出于安全考慮,建議刪除default_user和default_pass,
并且allow_anonymous設為false。
因為在allow_anonymous為true的時候,如果客戶端不提供用戶名和密碼,
將使用配置文件中的default_user和default_pass作為用戶名和密碼登錄。
?
6. 啟動RabbitMQ
[運行文件目錄]/rabbitmq-server當出現(xiàn)Starting broker...這行之后表示RabbitMQ已經(jīng)啟動完畢。
completed with N plugins.表示N個插件已經(jīng)加載。
?
7. 添加用戶
前提:RabbitMQ已成功啟動。
(1)添加用戶
(2)添加管理員身份
[運行文件目錄]/rabbitmqctl set_user_tags DeviLeo administrator(3)設置虛擬主機權(quán)限
[運行文件目錄]/rabbitmqctl set_permissions -p / DeviLeo ".*" ".*" ".*"?
8. 使用MQTT客戶端連接RabbitMQ服務器
默認端口為1883。
賬號為第7步添加的用戶名和密碼。
如果沒有MQTT的客戶端,請繼續(xù)往下看。
?
9. Web MQTT插件
(1)啟用插件
(2)運行Web MQTT示例
請使用多個瀏覽器打開http://127.0.0.1:15670,選擇想要查看的示例,即可看到效果。
?
【附錄】
一、rabbitmqctl常用命令
(1)添加用戶
(2)添加管理員身份
rabbitmqctl set_user_tags [用戶名] administrator 例:rabbitmqctl set_user_tags DeviLeo administrator(3)移除管理員身份
rabbitmqctl set_user_tags [用戶名] 例:rabbitmqctl set_user_tags DeviLeo(4)刪除用戶
rabbitmqctl delete_user [用戶名] 例:rabbitmqctl delete_user DeviLeo(5)修改用戶密碼
rabbitmqctl change_password [用戶名] [新密碼] 例:rabbitmqctl change_password DeviLeo DeviLeo@2017(6)清除用戶密碼
rabbitmqctl clear_password [用戶名] 例:rabbitmqctl clear_password DeviLeo清除密碼后該用戶將無法登錄
(7)驗證用戶密碼
rabbitmqctl authenticate_user [用戶名] [密碼] 例:rabbitmqctl authenticate_user DeviLeo DeviLeo@2017(8)列出所有用戶
rabbitmqctl list_users(9)設置虛擬主機權(quán)限
rabbitmqctl set_permissions [-p 虛擬主機名] [用戶名] [配置權(quán)限] [寫權(quán)限] [讀權(quán)限] 例:rabbitmqctl set_permissions -p / DeviLeo ".*" ".*" ".*"(10)清除虛擬主機權(quán)限
rabbitmqctl clear_permissions [-p 虛擬主機名] [用戶名] 例:rabbitmqctl clear_permissions -p / DeviLeo(11)列出虛擬主機的權(quán)限
rabbitmqctl list_permissions [-p 虛擬主機名] 例:rabbitmqctl list_permissions -p /(12)關(guān)閉RabbitMQ進程
rabbitmqctl shutdown?
二、官方文檔
(1)文件及目錄位置
http://www.rabbitmq.com/relocate.html
(2)配置文檔
http://www.rabbitmq.com/configure.html
(3)配置文件示例
https://github.com/rabbitmq/rabbitmq-server/blob/stable/docs/rabbitmq.config.example
?
轉(zhuǎn)載于:https://www.cnblogs.com/DeviLeo/p/7234200.html
總結(jié)
以上是生活随笔為你收集整理的macOS上搭建RabbitMQ+MQTT服务器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos下安装apache+mysq
- 下一篇: 第20课 - 初始化列表的使用