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

通过brew直接安装RabbitMQ

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请使用以下命令

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

重启终端使新的OpenSSL生效。

3. RabbitMQ目录
(1)配置文件目录

[手动解压]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登录。

5. 配置RabbitMQ
(1)rabbitmq-env.conf
在配置文件目录下打开rabbitmq-env.conf文件,若文件不存在请手动创建。
输入或替换如下内容:

# Rabbitmq的配置文件,包含插件的配置
CONFIG_FILE=rabbitmq # 服务器的ip地址
NODE_IP=127.0.0.1 # 服务器的主机名
NODENAME=rabbit@localhost

(2)rabbitmq.conf

输入以下内容:

[
{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:更多配置参数及说明见《附录二、(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@

(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,选择想要查看的示例,即可看到效果。

【附录】
一、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@

(6)清除用户密码

rabbitmqctl clear_password [用户名]
例:rabbitmqctl clear_password DeviLeo

清除密码后该用户将无法登录

(7)验证用户密码

rabbitmqctl authenticate_user [用户名] [密码]
例:rabbitmqctl authenticate_user DeviLeo DeviLeo@

(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

二、官方文档
(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

最新文章

  1. 实现移动设备远程登录linux服务器
  2. Mysql zip包在Windows上安装配置
  3. deepin linux 安装 mysql
  4. 用Ant实现Java项目的自动构建和部署
  5. PostgreSQL基础整理(一)
  6. 在线考试系统(Online Exam System)--ASP.NET
  7. soap和wsdl的定义
  8. 你无法修改 Git 的历史记录
  9. Android Checkbox Example
  10. Nginx 域名转发
  11. 开启SQL Server 2012的远程连接
  12. 解决.VS2012+EF5.0开发的网站在window server2003上无法部署的问题(转载)
  13. BestCoder Round #47
  14. python 站点爬虫 下载在线盗墓笔记小说到本地的脚本
  15. Sql数据类型转换
  16. SQLite在C#中的安装与操作
  17. Good Bye 2017 D. New Year and Arbitrary Arrangement
  18. VS2017+xamain开发安卓(Addroid)应用
  19. 仿9GAG制作过程(二)
  20. Linux OS7 常用

热门文章

  1. java-文件切割合并_对象的序列化
  2. 【洛谷】P1888 三角函数
  3. 洛谷P1080 [NOIP2012提高组D1T2]国王游戏 [2017年5月计划 清北学堂51精英班Day1]
  4. golang标准库中有些函数只有签名没有函数体是怎么回事?
  5. web服务器与tomcat
  6. 【难为听】weex-ui
  7. Sublime Text2的常用技巧总结(更新中...)
  8. 了解apache与tomcat的关系
  9. hdu3879 最大权闭合图
  10. Kubernetes1.3新特性:rktnetes