macOS上搭建RabbitMQ+MQTT服務器

1. 下載RabbitMQ
https://www.rabbitmq.com/install-standalone-mac.html

經過brew直接安裝RabbitMQhtml

brew install rabbitmq

 

2. 安裝OpenSSL 1.0.x
若是是經過brew安裝RabbitMQ請跳過此步驟。
若是是手動解壓下載包,在使用RabbitMQ以前請確保系統的openssl是1.0以上版本。
使用命令openssl version查看當前系統的openssl版本,
如果0.9.x版本請使用brew install openssl安裝最新版本。
若安裝後查看版本仍舊是0.9.x請使用如下命令git

ln -s /usr/local/opt/openssl/bin/openssl /usr/local/bin/openssl

重啓終端使新的OpenSSL生效。github

 

3. RabbitMQ目錄
(1)配置文件目錄web

[手動解壓]rabbitmq_server_x.x.xx/etc/rabbitmq/
[brew安裝]/usr/local/etc/rabbitmq/

(2)運行文件目錄瀏覽器

[手動解壓]rabbitmq_server_x.x.xx/sbin/
[brew安裝]/usr/local/sbin/

 

4. 在RabbitMQ中啓用插件
(1)MQTT安全

[運行文件目錄]/rabbitmq-plugins enable rabbitmq_mqtt

(2)Management(可選)服務器

[運行文件目錄]/rabbitmq-plugins enable rabbitmq_management
[運行文件目錄]/rabbitmq-plugins enable rabbitmq_management_visualiser

方便經過網頁登陸http://localhost:15672/查看RabbitMQ的狀態等信息。
注1:[手動解壓]默認配置下,沒有任何用戶能夠登陸管理界面。須要在第5步添加用戶後才能登陸。
注2:[brew安裝]默認配置下,guest用戶只能經過迴路IP 127.0.0.1登陸,沒法經過其它IP登陸。tcp

 

5. 配置RabbitMQ
(1)rabbitmq-env.conf
在配置文件目錄下打開rabbitmq-env.conf文件,若文件不存在請手動建立。
輸入或替換以下內容:fetch

# Rabbitmq的配置文件,包含插件的配置
CONFIG_FILE=rabbitmq

# 服務器的ip地址
NODE_IP=127.0.0.1

# 服務器的主機名
NODENAME=rabbit@localhost

(2)rabbitmq.confspa

輸入如下內容:

[
 {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:更多配置參數及說明見《附錄2、(3)配置文件示例》。
注2:出於安全考慮,建議刪除default_user和default_pass,
而且allow_anonymous設爲false。
由於在allow_anonymous爲true的時候,若是客戶端不提供用戶名和密碼,
將使用配置文件中的default_user和default_pass做爲用戶名和密碼登陸。

 

6. 啓動RabbitMQ

[運行文件目錄]/rabbitmq-server

當出現Starting broker...這行以後表示RabbitMQ已經啓動完畢。
completed with N plugins.表示N個插件已經加載。

 

7. 添加用戶
前提:RabbitMQ已成功啓動。
(1)添加用戶

[運行文件目錄]/rabbitmqctl add_user DeviLeo DeviLeo@2017

(2)添加管理員身份

[運行文件目錄]/rabbitmqctl set_user_tags DeviLeo administrator

(3)設置虛擬主機權限

[運行文件目錄]/rabbitmqctl set_permissions -p / DeviLeo ".*" ".*" ".*"

 

8. 使用MQTT客戶端鏈接RabbitMQ服務器
默認端口爲1883。
帳號爲第7步添加的用戶名和密碼。
若是沒有MQTT的客戶端,請繼續往下看。

 

9. Web MQTT插件
(1)啓用插件

[運行文件目錄]/rabbitmq-plugins enable rabbitmq_web_mqtt
[運行文件目錄]/rabbitmq-plugins enable rabbitmq_web_mqtt_examples 

(2)運行Web MQTT示例
請使用多個瀏覽器打開http://127.0.0.1:15670,選擇想要查看的示例,便可看到效果。

 

【附錄】
1、rabbitmqctl經常使用命令
(1)添加用戶

rabbitmqctl add_user [用戶名] [密碼]
例:rabbitmqctl add_user DeviLeo DeviLeo

(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)設置虛擬主機權限

rabbitmqctl set_permissions [-p 虛擬主機名] [用戶名] [配置權限] [寫權限] [讀權限]
例:rabbitmqctl set_permissions -p / DeviLeo ".*" ".*" ".*"

(10)清除虛擬主機權限

rabbitmqctl clear_permissions [-p 虛擬主機名] [用戶名]
例:rabbitmqctl clear_permissions -p / DeviLeo

(11)列出虛擬主機的權限

rabbitmqctl list_permissions [-p 虛擬主機名]
例:rabbitmqctl list_permissions -p /

(12)關閉RabbitMQ進程

rabbitmqctl shutdown

 

2、官方文檔
(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

相關文章
相關標籤/搜索