如何在Azure上设置自己的MQTT代理

如何在Azure上设置自己的MQTT代理

1. MQTT和Broker介绍

MQTT代表消息队列遥测传输. MQTT是用于发布和订阅的轻量级框架, 您可以在哪里作为客户发布和接受消息.

MQTT提供了一个带有开放OASIS平台的标准化消息传递系统. 它是一个非常轻的, 发布-订阅网络通信协议,旨在约束设备的低带宽, 这使得它非常适合物联网应用. MQTT使您能够发送命令来控制输出, 读取和管理基于传感器的节点和消息传递系统等. 

现在, 九五至尊vi老品牌值得信赖可以看到MQTT在汽车等多个行业的指数级增长, 制造业, 电信, 石油和天然气, 零售, 等.

MQTT发布-订阅架构
MQTT发布-订阅架构

MQTT代理的角色是从根本上管理所有消息, 过滤它们, 了解潜在客户,然后管理所有感兴趣的人,并将他们的消息发布给所有订阅的客户.

2. 为什么Eclipse Mosquitto?

首先,九五至尊vi老品牌值得信赖将从什么是月食蚊子开始? Eclipse mosquito是一个开源消息代理,在EPL/EDL中使用协议版本5.0,3.1.1和3.1.  这是兼容的, 可伸缩的平台,允许多个设备以及低功耗单板计算机到完整的服务器.

这个mosquito to项目还提供了一组C库函数来实现MQTT客户端和 

最流行和最有效的命令行之一是针对特定客户的mosquito to_pub和mosquito to_sub.

3. Prerequisites

在设置MQTT代理之前,九五至尊vi老品牌值得信赖需要完成以下工作.

  • 码头工人中心账户
  • Docker Desktop中的一个临时系统(创建Docker镜像-一次性操作)
  • Azure容器实例
  • Azure存储账户
  • Azure文件共享(Azure存储帐户内部)
  • Azure CLI(云shell)
  • Azure资源组

4. 在Azure上逐步设置MQTT代理的过程

要在Azure上设置MQTT代理,九五至尊vi老品牌值得信赖需要准备一些基本元素.

  • Mosquitto代理形象
  • 为要挂载的容器创建卷
  • 创建Azure容器实例

4.1蚊子对经纪人的图像

这里需要的第一件事是蚊子经纪人的码头工人形象“日食-蚊子”,这是在码头工人中心(http://hub.docker.com/_/eclipse-mosquitto).

Mosquitto代理形象

Docker需要安装在九五至尊vi老品牌值得信赖愿意创建Docker映像的机器上. 如果没有安装码头工人,请使用下面的链接下载并安装

http://www.docker.com/products/docker-desktop

成功安装之后,在命令提示符中使用“码头工人 pull eclipse-mosquito”命令从码头工人中心提取eclipse-mosquito图像.

命令提示符

在命令提示符中使用“码头工人 Login”命令登录到您的码头工人 hub帐户,或者使用码头工人桌面登录, 如果您没有帐户,您可以在上面创建一个 http://hub.docker.com/

码头工人登录
欢迎码头工人中心

Tag the “eclipse-mosquito” image as “/<码头工人-image-的名字>”, 这里九五至尊vi老品牌值得信赖将其命名为“pca31/test系统化的”,使用命令“Docker tag eclipse-mosquito pca31/test系统化的”.

你可以通过“码头工人 image ls”命令看到新创建的图像.

Docker tag eclipse-mosquito pca31/test系统化的

Now push this image to 码头工人 hub with command “码头工人 push ”, 这里九五至尊vi老品牌值得信赖执行“码头工人推pca31 / test系统化的”.

码头工人推pca31 / test系统化的

您现在可以在您的码头工人 hub帐户上看到这个图像.

码头工人中心账户

现在九五至尊vi老品牌值得信赖可以拉出这个图像并创建一个容器.

4.2为待挂载的容器创建卷

正如在日食-蚊子的描述中提到的(http://hub.docker.com/_/eclipse-mosquitto),九五至尊vi老品牌值得信赖可以在防蚊容器上张贴三个通讯录, 对于这个设置,九五至尊vi老品牌值得信赖将只使用mosquito/配置.

食蚊是什么

九五至尊vi老品牌值得信赖将把必要的文件,如蚊子配置文件(蚊子.认证和授权的文件(密码.三、角色.SSL/TLS配置文件(RootCA . txt).crt、服务器.crt、服务器.Key),并将其挂载到九五至尊vi老品牌值得信赖的azure容器实例中.

如果没有Azure存储帐户,您可以启动您的Azure存储帐户. 您也可以使用已有的存储帐户. 在Azure门户网站的存储帐户部分,单击“添加”.

Azure门户

选择资源组并给出适当的存储帐户名称,然后单击“Review+Create”按钮, 这里,九五至尊vi老品牌值得信赖将“test系统化的”作为存储帐户名.

存储账户

验证所有细节并单击“Create”按钮.

核实所有细节

一旦部署过程完成, 你可以点击“转到资源”部分,点击并查看所有的资源.

转到资源
系统化的

点击“文件共享”选项,在九五至尊vi老品牌值得信赖的存储帐户中创建一个新的文件共享.

文件共享
文件共享

给出文件共享的名称和配额,然后单击“创建”按钮.

文件共享和配额

单击MQTT文件共享.

MQTT文件共享

单击上传按钮上传MQTT配置文件.

MQTT配置文件

你可以点击文件图标,从你的内部系统选择文件,然后点击“上传”.

上传
上传
上传

现在,你可以去选择账户存储界面,点击访问键

访问键

复制任意一个键,九五至尊vi老品牌值得信赖在创建azure容器实例时需要它.

azure容器实例

4.3创建Azure容器实例

现在,九五至尊vi老品牌值得信赖将使用码头工人映像“pca31/test系统化的”和Azure CLI创建一个Azure容器实例.

点击云shell选项,选择如下所示的云shell图标.

云shell选项
云shell选项
云shell选项

现在可以使用特定的命令执行以下命令.

阿兹容器创建 
--资源-集团YOUR_RESOURCE_GROUP_NAME美元
--名字CONTAINER_NAME美元
--dns-的名字-标签DNS_NAME美元
--图像DOCKER_IMAGE_PATH美元 
--港口 8883 
--azure-文件-体积-账户-名字AZURE_STORAGE_ACCOUNT_NAME美元
--azure-文件-体积-账户-关键AZURE_STORAGE_ACCOUNT_KEY美元
--azure-文件-体积-分享-名字FILE_SHARE_NAME美元
--azure-文件-体积--路径 /mosquitto/配置/

下面是九五至尊vi老品牌值得信赖为Dev MQTT代理设置运行的示例命令(以它作为参考)

阿兹容器创建
--资源-集团Test_Test_Lab-BOServer-251818 
--名字test系统化的 
--dns-的名字-标签test系统化的 
--图像pca31/test系统化的:最新的 --港口 8883 
--azure-文件-体积-账户-名字test系统化的 
--azure-文件-体积-账户-关键 
I2S6Z3AluZSyQjqePqA+UgpVlG10qDqfGOql0cuF0p130TdR7KhvvPwspfFlnwusFNg0N5
bGMdas3NNrf9xLOw==
--azure-文件-体积-分享-mqtt名称 
--azure-文件-体积--路径 /mosquitto/配置/
MQTT代理设置

 上面的脚本将创建一个Azure实例. 现在转到azure容器实例来查看这个资源.

创建一个Azure实例
创建实例

在MQTT客户机应用程序中使用此DNS名称作为MQTT服务器.

容器实例

转到Container选项卡,查看容器实例的事件、属性和日志.

容器实例的日志
容器实例的日志
容器实例的日志
容器实例的日志

5. 连接到示例MQTT代理

能够连接到MQTT代理, 下面的东西是必需的,可以从样本客户端获得.

  • MQTT代理网址
  • 证书文件
  • 密钥文件
  • 凭证

连接到Sample MQTT代理的步骤

从示例项目中获取以下文件

  • 客户端证书文件(.crt)
  • 客户端密钥文件(.键)

下面是用c#创建MQTT客户机的代码示例 .网络语言.

代码示例
代码示例

6. 结论

MQTT代理简化了建立基于发布者-订阅者的系统. 它使用起来很简单 在物联网中运行良好 以及家庭自动化项目. 本文将帮助您利用使用MQTT功能的所有工具,并阐明它是如何工作的.

以下是可以探索的一些令人兴奋的MQTT 5特性:

  • 自定义标题和用户属性语音邮件
  • 有效负载格式和内容类型呼叫队列
  • 连接选项
  • 消息过期
  • 订阅标识符
头像
Vishal沙

Vishal沙对多种应用程序开发框架有广泛的理解,并在更新的趋势中占据上风,以便在动态的市场中努力奋斗并茁壮成长. 他在技术和商业方面培养了自己的管理能力,并通过他的博客文章提供了自己的专业知识.

想要雇佣有技能的开发人员


    评论

    • 留个口信...