如何在 Google Cloud 上部署 EMQX 企业版
Google Cloud 的 IoT Core 产品将于 2023 年 8 月 16 日停止服务,随着这一日期的临近,许多用户正在为他们现有的物联网业务寻找新的解决方案,而 EMQX 企业版是实现这一目标的理想选择。
EMQX 企业版是一款大规模分布式 MQTT 消息服务平台,能够通过多种方式部署到 Google Cloud Platform(GCP) 上。您可以轻松地将 IoT Core 上的设备迁移到 EMQX Enterprise,然后继续与 GCP 中的数据服务无缝集成,实现快速迁移而不影响现有业务。
本文将指导您如何在 GCP 上部署 EMQX 企业版,并完成物联网消息发布订阅测试。
在 GCP 上创建并启动虚拟机实例
在部署 EMQX 企业版之前,我们先在 GCP 上创建一个 Virtual Machine。
GCP 的 Virtual Machine Instances 允许用户轻松部署和管理应用程序,而无需在本地创建和管理服务器。以下是在 GCP 上创建 Virtual Machine 的步骤,你还可以参考 Create and start a VM instance。
登录 GCP 控制台 并点击 Create a VM。
如果您之前没有创建过 Virtual Machine,将跳转到 Compute Engine API 详情页面,点击 ENABLE 启用 Compute Engine API 以继续创建过程。
勾选 New VM instance 选项并开始实例创建配置。
选择合适的 Region 与 Zone 并确定 Machine configuration。此处使用 E2 系列的服务器,Machine type 选择 Custom,分配 2 核 vCPU、4GB 内存。
在此规格下,单个 EMQX 节点能够承载 10,000 MQTT 连接以及 5,000 TPS 的并发消息。
在 Boot disk 配置中,选择 Ubuntu 20.04 LTS 操作系统,并更改磁盘大小为 30GB。
其余配置保持默认,点击 CREATE 开始创建 Instance。
安装 EMQX 企业版
我们将使用 GCP 的 SSH 连接到 VM instance 以部署 EMQX 企业版。在此之前,我们需要获取 EMQX 企业版的下载地址和安装命令。
在这个例子中,我们需要在 Ubuntu 20.04 上部署 EMQX 4.4.16,你可以从 下载 EMQX Enterprise 页面获取所需信息。
登录 GCP 控制台,点击 Navigation menu → PRODUCTS → COMPUTE → Compute Engine → VM Instances 进入到 VM instances 列表。
找到创建的 VM instance,您可以看到 GCP 已经为它分配了一个唯一的外部 IP,单击 SSH 打开您的 SSH 终端。
在 SSH 终端中进入根目录,并按照以下命令进行安装:
进入根目录:
sudo su cd ../../
使用
wget
命令下载 EMQX 企业版:wget https://www.emqx.com/en/downloads/enterprise/4.4.16/emqx-ee-4.4.16-otp24.3.4.2-1-ubuntu20.04-amd64.deb
安装 EMQX 企业版:
sudo apt install ./emqx-ee-4.4.16-otp24.3.4.2-1-ubuntu20.04-amd64.deb
启动 EMQX 企业版:
sudo systemctl start emqx
恭喜您,您已经完成 EMQX 企业版在 GCP VM instance 上的安装。
在 GCP 上打开防火墙端口
在 GCP 上安装服务或应用程序后,您需要手动开放所需的端口才能够从外部访问它,请按照以下步骤在 GCP 上打开所需端口。
登录 GCP 控制台,点击 Navigation menu → PRODUCTS → VPC network → Firewall 进入到 Firewall 页面。
点击 CREATE FIREWALL RULE。
填入以下字段以创建防火墙规则:
- Name:输入规则名称
- Network:选择 default
- Priority:规则优先级,数字越小优先级越高,此处输入 1000
- Direction of traffic: 选择 Ingress,表示在特定端口上接收数据
- Action on match: 选择 Allow,表示允许流量通过
- Targets: 选择 All instances in the network,将规则应用于网络中所有实例
- Source filter: Choose the source filter as IPv4 ranges if you want to receive data from all networks or users
- Source IPv4 ranges: IP 地址 0.0.0.0/0 表示任何一个都可以发送数据,您也可以配置从特定 IP 地址接收数据的规则
- Protocols and ports: 如果要打开所有端口,请选择 Allow all。此处打开指定 TCP 端口即可,您可以通过分隔逗号同时打开多个端口,此处输入 1883, 8883, 8083, 8084, 18083, 8081。
点击最下方 CREATE 完成防火墙规则创建,您可以在列表中看到您创建的规则。
通过 MQTTX 快速测试
至此,您已经在 GCP 上完成 EMQX 企业版的安装并开通了所有需要的端口,对应的连接信息如下:
服务器地址 | 34.xxx.xxx.xxx (请替换为实际的 VM Instance 公共 IP 地址) |
---|---|
TCP 端口 | 8883 |
WebSocket 端口 | 8083 |
SSL/TLS 端口 | 8883 |
WebSocket SSL/TLS 端口 | 8084 |
Dashboard 访问端口 | 18083 |
REST API 端口 | 8081 |
下面我们使用 MQTTX 模拟物联网 MQTT 设备的接入,快速测试服务器是否可用。
MQTTX 是 EMQ 开源的一款跨平台 MQTT 5.0 客户端工具,它支持 macOS、Linux、Windows,具有丰富的功能,您可通过 MQTTX 一键式的连接方式和图形界面,轻松测试 MQTT/TCP、MQTT/TLS、MQTT/WebSocket 连接。
MQTTX Web 是 MQTTX 的浏览器版本,可以免除下载与安装,打开浏览器即可通过 WebSocket 快速连接至 MQTT 服务器。
访问 MQTTX Web 页面,点击 New Connection 或菜单栏 + 图标创建连接。
配置并建立 MQTT 连接,您只需配置:
Name: 连接名称,如 GCP EMQX Enterprise
Host
- 选择连接类型为 ws://,MQTTX Web 仅支持 WebSocket 协议,如希望测试 SSL/TLS 认证连接,请下载 MQTTX 客户端
- 填入 VM instance 公共 IP 地址
Port: 填入 8083, 即 WebSockets 协议对应的端口
其他选项保持默认配置,你也可以根据具体业务场景修改,对应的配置说明可参考 MQTTX 手册 - 快速建立连接
配置完成后,点击页面右上角的 Connect 建立连接。
订阅主题并发布消息,完成消息发布订阅测试
- 点击 New Subscription,在弹出框中输入
testtopic/#
主题并订阅 - 在消息发送框输入
testtopic/1
主题,其他字段使用默认值 - 点击 Payload 输入框右下角发送按钮,可以在聊天窗口中看到消息已成功发送
- 几乎同时,聊天窗口中收到一条新消息,表示发布订阅测试已经完成
- 点击 New Subscription,在弹出框中输入
完成设备连接以及消息发布订阅测试后,您还可以通过浏览器打开 http://<ip>:18083
,使用默认用户名 admin 与密码 public 登录 EMQX Dashboard。
在 Dashboard 上您可以轻松管理和监控 EMQX,管理设备列表,并配置安全、数据集成等各项功能。
写在最后
现在我们已经了解了如何在 GCP 上部署 EMQX 企业版。如需在生产中使用 EMQX 企业版,建议您继续通过 VPC 网络创建 EMQX 集群,以获得更好的扩展性和可用性。
除了手动安装外,您还可以通过 EMQX Kubernetes Operator 与 EMQX Terraform 在 GCP 上部署 EMQX 企业版,我们也强烈推荐全托管的 MQTT 消息云服务 EMQX Cloud。
在本系列的后续博客中,我们将继续向您介绍如何将设备从 GCP IoT Core 迁移到 EMQX 企业版,以及如何通过 EMQX 企业版的 GCP Pub/Sub 集成无缝迁移 IoT Core 服务。