RabbitMQ 搭建MQTT服务

        上一篇 Windows 安装RabbitMQ 中,已经安装好 RabbitMQ,并且创建了一个基于默认虚拟主机(Virtual Host) "/"  的测试账号admin-test

1.RabbitMQ启用MQTT功能 

rabbitmq-plugins enable rabbitmq_mqtt

 1.1 MQTTX测试MQTT服务

下载地址:https://www.emqx.com/zh/downloads/MQTTX/v1.6.2/MQTTX.Setup.1.6.2.exe

或者GitHub地址:https://github.com/emqx/MQTTX/releases

1.1.1 新建连接

注意:这里说明下 关于 用户名 密码的填写

RabbitMQ 开启的 MQTT服务,是不允许 匿名访问的(可以设置允许),所以要输用户名密码

连接MQTT服务的用户名 就是 前面我们创建的 RabbitMQ 的 用户名 和 密码

 

1.1.2 连接成功

其他参数 默认,点击图右上角 【连接】

 

 2.新增专门供MQTT业务使用的Virtual Host

        前面的那些MQTT的操作都是基于 RabbitMQ默认的Virtual Host的进行操作,RabbitMQ 在安装后会创建一个默认的 “/” 虚拟主机。每个RabbitMQ 服务器都能创建若干个虚拟的消息服务器,我们称之为虚拟主机。每一个虚拟主机都拥有自己的交换机、队列和绑定等(命名空间的概念),每个虚拟主机之间是相互隔离的,这就意味着我们可以在不同虚拟主机之间使用相同的交换机、队列。每个RabbitMQ 用户必须隶属于一个或多个虚拟主机,我们在连接RabbitMQ 的时候必须先指定一个虚拟主机。

        而每个虚拟机里(包括默认的"/"虚拟主机)都有个名为: amq.topic 的 默认Exchange(交换器),MQTT客户端会将消息发往该交换器上。在发布消息时,MQTT插件会自动将MQTT topic名称中的正斜杠变更为句点,用作AMQP路由键。

当通过MQTT连接RabbitMQ来订阅消息时,RabbitMQ将创建新的队列。队列名称将采用mqtt-subscriber-[NAME]qos[N]的格式。其中[NAME]是唯一的客户端名称,[N]是客户端连接设置的QoS等级。

举例来说,一个名为mqtt-subscription-mqttx_1c0fa5b4qos0的队列,代表订阅者名称为mqttx_1c0fa5b4(MQTTX测试工具里的 Client ID),并且QoS设置为了0。一旦为订阅请求创建队列之后,那么该队列将会采用AMQP点分路由键的语义,被绑定到topic交换器上

2.1 新建名为test-host 的Virtual Host  

2.1.1 命令行创建

rabbitmqctl add_vhost test-host

 

2.1.2 Web管理界面创建

 2.2 为 admin-test 增加 test-host 虚拟主机 的使用权限

2.2.1 命令行设置

rabbitmqctl set_permissions -p test-host admin-test ".*" ".*" ".*"

2.2.2  Web管理界面设置

 

 3.连接到test-host 的Virtual Host的MQTT服务

格式:对应虚拟主机名称:对应的用户名

比如我们连默认虚拟主机"/" ,就是 /:用户名, 由于是默认虚拟主机  /:  这里可以省略

所以连接 test-host ,就是 test-host:admin-test

 

 4.修改RabbitMQ的Socket连接数

 在Windows Server 2008 R2下 Socket连接数也就 829 个

 在Windows Server 2016下 Socket连接数也就 7280个

查看命令

rabbitmqctl status

 sockets_used就是已经连接的数量

sockets_limit通常是total_limit的0.8到0.9

4.1 修改socket 的 total_limit 数

4.1.1 新建系统变量 ERL_MAX_PORTS

 4.1.2 重启RabbitMQ服务

在服务里启动或者sbin 目录下 重新运行 rabbitmq-server.bat

4.1.3 查看修改后的值

 

 

 

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要使用RabbitMQ搭建MQTT服务器,需要遵循以下详细步骤: 1. 安装和配置RabbitMQ: - 下载并安装RabbitMQ,官方网站提供了不同平台的安装程序。 - 安装完成后,启动RabbitMQ服务器。 2. 启用MQTT插件: - 打开终端或命令提示符窗口。 - 运行以下命令来启用MQTT插件: ``` rabbitmq-plugins enable rabbitmq_mqtt ``` - 重新启动RabbitMQ服务器。 3. 创建MQTT用户和虚拟主机: - 打开终端或命令提示符窗口。 - 运行以下命令以创建新的用户和虚拟主机: ``` rabbitmqctl add_user your_username your_password rabbitmqctl set_user_tags your_username administrator rabbitmqctl add_vhost your_vhost_name rabbitmqctl set_permissions -p your_vhost_name your_username ".*" ".*" ".*" ``` 4. 配置MQTT连接参数: - 打开配置文件 `rabbitmq.config`,该文件通常位于 RabbitMQ 安装目录下的 `conf` 文件夹中(例如:`/etc/rabbitmq/rabbitmq.config`)。 - 添加以下配置项来启用 MQTT 监听端口和设置默认虚拟主机: ```erlang [ {rabbit, [ {tcp_listeners, [{"0.0.0.0", 1883}]}, {default_vhost, <<"your_vhost_name">>} ]} ]. ``` - 保存并关闭配置文件。 5. 重启RabbitMQ服务器以应用配置更改。 现在你已经成功搭建了一个MQTT服务器使用RabbitMQ。你可以使用任何MQTT客户端来连接和与服务器进行通信。 请注意,这只是一个简单的演示,实际上你可能需要进一步配置和保护你的MQTT服务器,例如设置TLS/SSL加密、访问控制等。 希望这些步骤对你有所帮助!如果还有其他问题,请随时提问。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值