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

macOS上搭建RabbitMQ+MQTT服务器的更多相关文章

  1. Centos8上搭建EMQ MQTT

    layout: post title: Centos8上搭建EMQ MQTT subtitle: 在阿里云Centos8搭建EMQ并配置接入 date: 2020-3-11 author: Dapen ...

  2. 【经验分享】如何搭建本地MQTT服务器(Windows ),并进行上下行调测

    网上查了很多资料,实际动手的时候踩了很多坑,现在把我的经验分享给大家: 一.安装和启动 使用EMQTT,下载完直接到bin目录下执行emqttd start就可以了,简单方便 下载地址:https:/ ...

  3. 在UP Board 上搭建M——L服务器

    前言 原创文章,转载引用务必注明链接,水平有限,欢迎指正. 本文环境:ubilinux 3.0 on UP Board 初识免流 所谓免流,就是免除手机访问网络产生的流量费用.其原理在乌云网上有过报道 ...

  4. OpenWrt上搭建纯L2TP服务器[ZT]

    转自:http://www.openwrt.pro/post-389.html 纯L2TP(l2tp + ppp,无IPSec) 首先安装xl2tpd软件包 opkg update opkg inst ...

  5. 在ubuntu16上搭建rabbitMQ环境

    在ubuntu16上搭建rabbitMQ环境 安装rabbitMQ apt-cache pkgnames | grep rabbitmq apt-get install rabbitmq-server ...

  6. mac 教你如何在Mac上搭建自己的服务器——Nginx

    WHAT 本篇主要是基于Nginx在Mac上搭建自己的服务器. 我相信很多朋友肯定是第一次听到Nginx,关于它具有怎样的传奇,这儿肯定说不完也说不透. 有兴趣的朋友可以自行google或者baidu ...

  7. 如何在 macOS 上搭建 PHP 开发环境

    如何在 macOS 上搭建 PHP 开发环境 Linux, Nginx, MySQL, PHP $ php --version $ php -v # PHP 7.3.11 (cli) (built: ...

  8. 在 macOS 上搭建 Flutter 开发环境

    下载 Flutter SDK flutter官网下载:https://flutter.io/sdk-archive/#macos 若上述链接无法访问,可通过GitHub下载 https://githu ...

  9. 在Mac上搭建本地Apache服务器一些注意点

    一般在开发ios程序中,我们需要使用到和服务器的交互操作. 一般我们在Mac上使用Apache来搭建服务器.数据库采用MySQL.在Mac中Apache是自带的.所有,我们可以不需要额外的去Apple ...

随机推荐

  1. centos部分网站无法访问问题的解决

    CentOS 5内核对TCP的读缓冲区大小有缺省设置,缺省为:net.ipv4.tcp_rmem = 4096 87380 4194304 解决办法就是将最后一个数字改小一点,具体操作就是在文件/et ...

  2. NKOJ1472 警卫安排

    P1472警卫安排   时间限制 : 10000 MS   空间限制 : 65536 KB 问题描述 一个重要的基地被分为n个连通的区域.出于某种神秘的原因,这些区域以一个区域为核心,呈一颗树形分布. ...

  3. 【模板】LIS模板 洛谷P1091 [NOIP2004提高组]合唱队形 [2017年4月计划 动态规划11]

    以题写模板. 写了两个:n^2版本与nlogn版本 P1091 合唱队形 题目描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队 ...

  4. C++学习笔记(1)-构造函数与析构函数

    1.C++规定,每个类必须有默认的构造函数,没有构造函数就不能创建对象. 2.若没有提供任何构造函数,那么c++自动提供一个默认的构造函数,该默认构造函数是一个没有参数的构造函数,它仅仅负责创建对象而 ...

  5. UI标签库专题五:JEECG智能开发平台 Tabs(选项卡父标签)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/zhangdaiscott/article/details/28956223 tools string ...

  6. git解决冲突的最佳方法

    用eclipse egit 去pull 代码出现冲突 点击details  全选复制到记事本上 如上图选择3个冲突中的一个   eclipse快捷键  ctrl + shift+R  张贴   回车 ...

  7. vue轮播图插件之vue-awesome-swiper

    移动端轮播图插件,在使用iview图形界面插件中的carousel组件无法实现触摸滑动后,转而使用vue-awesome-swiper插件 1.npm安装 npm i vue-awesome-swip ...

  8. 视觉暂留-Info:这些神奇的“视觉暂留”动画,每一幅都让人拍案叫绝!

    ylbtech-视觉暂留-Info:这些神奇的“视觉暂留”动画,每一幅都让人拍案叫绝! 1.返回顶部 1. 这些神奇的“视觉暂留”动画,每一幅都让人拍案叫绝! 原创|发布:2018-05-28 19: ...

  9. SQL优化经验总结34条

    SQL优化经验总结34条 我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习.摘录.并汇总部分资料与大家分享! (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): OR ...

  10. HTML之HTML标签

    前端的三把利器:                      (1)HTML就像一个赤裸裸的人                      (2)css就好比一件衣服                   ...