如何在 Google Cloud 上部署 EMQX 企业版

news2025/1/14 4:21:00

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。

  1. 登录 GCP 控制台 并点击 Create a VM。

在这里插入图片描述

  1. 如果您之前没有创建过 Virtual Machine,将跳转到 Compute Engine API 详情页面,点击 ENABLE 启用 Compute Engine API 以继续创建过程。

  1. 勾选 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。


  1. 其余配置保持默认,点击 CREATE 开始创建 Instance。

安装 EMQX 企业版

我们将使用 GCP 的 SSH 连接到 VM instance 以部署 EMQX 企业版。在此之前,我们需要获取 EMQX 企业版的下载地址和安装命令。

在这个例子中,我们需要在 Ubuntu 20.04 上部署 EMQX 4.4.16,你可以从 EMQX Enterprise 页面获取所需信息。


1.登录 GCP 控制台,点击 Navigation menuPRODUCTSCOMPUTECompute EngineVM Instances 进入到 VM instances 列表。

2.找到创建的 VM instance,您可以看到 GCP 已经为它分配了一个唯一的外部 IP,单击 SSH 打开您的 SSH 终端。

3.在 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 上打开所需端口。

1.登录 GCP 控制台,点击 Navigation menuPRODUCTSVPC networkFirewall 进入到 Firewall 页面。

2.点击 CREATE FIREWALL RULE。

3.填入以下字段以创建防火墙规则:

  • **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。

4.点击最下方 CREATE 完成防火墙规则创建,您可以在列表中看到您创建的规则。

通过 MQTT X 快速测试

至此,您已经在 GCP 上完成 EMQX 企业版的安装并开通了所有需要的端口,对应的连接信息如下:

下面我们使用 MQTT X 模拟物联网 MQTT 设备的接入,快速测试服务器是否可用。

MQTT X 是 EMQ 开源的一款跨平台 MQTT 5.0 客户端工具,它支持 macOS、Linux、Windows,具有丰富的功能,您可通过 MQTT X 一键式的连接方式和图形界面,轻松测试 MQTT/TCP、MQTT/TLS、MQTT/WebSocket 连接。

MQTT X Web 是 MQTT X 的浏览器版本,可以免除下载与安装,打开浏览器即可通过 WebSocket 快速连接至 MQTT 服务器。

1.访问 MQTT X Web 页面,点击 New Connection 或菜单栏 + 图标创建连接。

2.配置并建立 MQTT 连接,您只需配置:

  • Name: 连接名称,如 GCP EMQX Enterprise

  • Host

    • 选择连接类型为 ws://,MQTT X Web 仅支持 WebSocket 协议,如希望测试 SSL/TLS 认证连接,请使用 MQTT X 客户端
    • 填入 VM instance 公共 IP 地址
  • Port: 填入 8083, 即 WebSockets 协议对应的端口

    其他选项保持默认配置,你也可以根据具体业务场景修改,对应的配置说明可参考 MQTT X 手册 - 快速建立连接

配置完成后,点击页面右上角的 Connect 建立连接。

3.订阅主题并发布消息,完成消息发布订阅测试

  • 点击 **New Subscription,**在弹出框中输入 testtopic/# 主题并订阅
  • 在消息发送框输入testtopic/1 主题,其他字段使用默认值
  • 点击 Payload 输入框右下角发送按钮,可以在聊天窗口中看到消息已成功发送
  • 几乎同时,聊天窗口中收到一条新消息,表示发布订阅测试已经完成

完成设备连接以及消息发布订阅测试后,您还可以通过浏览器打开 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 服务。

版权声明: 本文为 EMQ 原创,转载请注明出处。

原文链接:https://www.emqx.com/zh/blog/how-to-deploy-emqx-enterprise-on-google-cloud

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/435826.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【设计模式】深入浅出--外观模式

文章目录 前言一、外观模式介绍二、案例场景三、外观模式优缺点四、外观模式应用场景总结 前言 不知道大家有没有比较过自己泡茶和去茶馆喝茶的区别&#xff0c;如果是自己泡茶需要自行准备茶叶、茶具和开水&#xff0c;而去茶馆喝茶&#xff0c;最简单的方式就是跟茶馆服务员…

高效的配置文件读取工具支持properties和yaml

JefConfig 前言 日常工作中不知道到大家有没有遇到以下几种情况&#xff1a; 1、在程序启动时需要加载配置文件&#xff0c;但是发现程序只能从固定位置读取配置文件。 2、程序在集成了spring框架后&#xff0c;想从配置文件中获取某个配置&#xff0c;但是发现当前程序并未交…

并查集原理及代码实现

并查集 首先要明确的是并查集是森林。由多棵树组成。 并查集 &#xff08;英文&#xff1a;Disjoint-set data structure&#xff0c;直译为不交集数据结构&#xff09;&#xff0c;用于处理一些 不交集 &#xff08;Disjoint sets&#xff0c;一系列没有重复元素的集合&…

android framework-SystemServer进程

SystemServer进程信息 一、SystemServer整体时序图 涉及源码路径&#xff1a; android-10.0.0_r41\frameworks\base\core\java\com\android\internal\os\ZygoteInit.java android-10.0.0_r41\frameworks\base\core\java\com\android\internal\os\Zygote.java android-10.0.0_r4…

JAVAWeb07-WEB 开发通信协议-HTTP 协议-关联篇

1. 概述 1.1 官方文档及示例说明 1.1.1 请求头 1.1.2 响应头 1.1.3 HTTP 响应状态码 HTTP状态码 当浏览者访问一个网页时&#xff0c;浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前&#xff0c;此网页所在的服务器会返回一个包含HTTP状态码的信息头&a…

leetcode 1372. Longest ZigZag Path in a Binary Tree(二叉树中最长的之字形路径)

找出最长的之字型路径长度。 可以选择从二叉树的任意一个节点出发。 路径长度为路径中的节点数-1. 思路&#xff1a; 符合DFS的特征。 方向是左右交替的&#xff0c;可以定义0&#xff0c;1两个方向。 如果当前方向是左&#xff0c;下一方向就是右&#xff0c;反之亦然。每次…

FinClip|小程序云开发的那点事儿

在开发一个小程序时&#xff0c;除了考虑界面功能逻辑外&#xff0c;还需要后端的数据支持&#xff0c;开发者需要提前考虑服务器、存储和数据库等相关需求的支持能力&#xff0c;此外还可能需要花费时间精力在部署应用、和依赖服务的建设上。 因此&#xff0c;微信小程序为了…

dolphinscheduler3.1.3版本代码编译运行方法

说明 该文档适用于dolphinscheduler 3.1.3-release版本。 一 环境准备 需要使用的环境包括JDK1.8&#xff0c;以及Maven 3.6以上的版本&#xff0c;这里使用低于3.6版本的Maven也可以调试运行&#xff0c;不过在打包的时候会有报错&#xff0c;最好使用高版本的maven。 二 …

数字IC笔试面试常考问题及答案汇总(内含各岗位大厂题目)

经历了无数的笔试面试之后&#xff0c;不知道大家有没有发现数字IC的笔试面试还是有很多共通之处和规律可循的。所以一定要掌握笔试面试常考的问题。 数字IC笔试面试常考问题及答案汇总&#xff08;文末可领全部哦~&#xff09; 验证方向&#xff08;部分题目&#xff09; Q1…

android studio APP工程的项目结构说明及创建

目录 1.APP工程的项目结构图 2.功能说明 2.1app 2.2Gradle Scripts 3.创建新的APP页面 补充&#xff1a; 1.APP工程的项目结构图 2.功能说明 该项目下两个分类&#xff1a;一个是app&#xff08;代表app模块&#xff09;;另一个是Gradle Scripts。 2.1app app下面有3个…

虚拟机安装Centos7,ping不通百度

虚拟机安装Centos7&#xff0c;ping不通百度 一、虚拟机网络配置 网络适配器选择桥接模式&#xff0c;不勾选复制物理网络连接状态。 同时虚拟机使用默认配置都是桥接。 二、配置静态IP 1、首先&#xff0c;查看宿主机的IP和网关 2、配置静态ip的文件地址及修改命令如下&…

mybatis分页插件的基本理解和使用

mybatis分页插件的基本理解和使用 为什么要使用mybatis分页插件&#xff1f; 分页是一种将所有数据分段展示给用户的技术。用户每次看到的不是全部数据&#xff0c;而是其中一部分&#xff0c;如果在其中没有找到自己想要的内容&#xff0c;用户可以通过制定页码或者是翻页的…

就业并想要长期发展选数字后端还是ic验证?

“就业并想要长期发展选数字后端还是ic验证&#xff1f;” 这是知乎上的一个热点问题&#xff0c;浏览量达到了13,183。看来有不少同学对这个问题感到疑惑。之前更新了数字后端&数字验证的诸多文章&#xff0c;从学习到职业发展&#xff0c;都写过&#xff0c;唯一没有做过…

CRM系统能帮助企业解决哪些问题?

随着信息化技术的不断发展和全球化的推进&#xff0c;市场竞争越来越激烈&#xff0c;客户需求也在不断变化。为了应对这种情况&#xff0c;越来越多的企业开始使用CRM系统来管理与客户的关系。那么&#xff0c;CRM系统到底解决了企业哪些问题呢&#xff1f; 一、提高客户满意…

亿发软件:传统食品饮料批发行业如何通过信息化管理系统降本增效?

传统食品饮料批发行业信息化水平较低&#xff0c;存在多重管理难题&#xff0c;例如&#xff1a; 手动数据输入和管理&#xff0c;导致错误和效率低下&#xff1b; 数据缺乏实时可见性&#xff0c;无法实时了解企业仓库存量、销售额和其他关键业务指标&#xff1b; 低效的供应链…

【Android】之【常用布局】

一、简介 Android常用布局分别是 1、线性布局LinearLayout 2、相对布局RelativeLayout 3、绝对布局AbsoluteLayout 4、帧布局FrameLayout 5、表格布局TableLayout 6、网格布局GridLayout 7、约束布局ConstraintLayout 二、详解 2.1. LinearLayout (线性布局) 线性布局是一种非…

Rabbit与springboot整合-1

目录 1、整体结构 2、pom引入 3、配置文件 4、代码 公共类 controller类 JSON转换类 监听-接收发送消息类 1、整体结构 2、pom引入 <!--rabbitmq--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-st…

C++引用与引用两大应用场景,临时变量的常性,常引用与权限大小问题

tips 内存栈区的用习惯是先使用高地址&#xff0c;然后使用低地址嘛顺序表数组支持随机下标访问&#xff0c;也是目前已知的仅有的数据结构类当中的话&#xff0c;它不可以不仅可以去定义变量&#xff0c;它也可以定义函数&#xff0c;这个跟c当中的结构体不一样的&#xff0c…

数据结构考研版——队列的配置问题

一、正常配置下的情况 队空状态 frontrear;入队操作 出队操作 队满状态 在正常配置下元素的个数&#xff08;rear>front&#xff09; 当rear<front 综上所述用一个表达式表示&#xff1a;(rear-frontmaxSize)%maxSize 二、非正常配置下的情况1 队空状态 入队操作…

Stable Diffusion-webUI ckpt模型、lora模型的区别和使用

一、常用的两种模型&#xff1a;ckpt和Lora分别是什么&#xff1f;有什么区别&#xff1f; 1、CKPT&#xff08;CheckPoint&#xff09; 经过训练的图片合集&#xff0c;被称作模型&#xff0c;也就是chekpoint&#xff0c;体积较大&#xff0c;一般真人版的单个模型的大小在…