• macOS上搭建RabbitMQ+MQTT服务器


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

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

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

  • 相关阅读:
    【问题 & 解决】VS Code 添加第三方库提示
    最大公约数、最小公倍数、辗转相除法的求解和证明
    移动APP开发框架盘点2:Web移动前端框架大全
    你好,2021
    reacthookform 使用小结
    github查看仓库的clone量
    neo4j切换数据库方法,简单好用!知识图谱
    数据平滑处理均值|中值|SavitzkyGolay滤波器
    2021年总结
    使用vscode Container开发调试envoy
  • 原文地址:https://www.cnblogs.com/DeviLeo/p/7234200.html
Copyright © 2020-2023  润新知