EMQ 安装及简单使用

概述

EMQ X Broker 是基于高并发的 Erlang/OTP 语言平台开发,支持百万级连接和分布式集群架构,发布订阅模式的开源 MQTT

消息服务器。EMQ X Broker 在全球物联网市场广泛应用。无论是产品原型设计、物联网创业公司、还是大规模的商业部署,

EMQ X Broker 都支持开源免费使用。

环境

系统:CentOS 8 64位

EMQ:emqx-centos7-v4.0.0.zip

安装
下载地址

https://www.emqx.io/cn/downloads#broker.

window/Linux 都可以直接下载压缩包解压就可以了,下面附上 Linux 安装方法

选择合适的版本号以及软件包
在这里插入图片描述

下载并解压,没有 unzip 解压工具的使用 yum -y install unzip 命令安装
 wget https://www.emqx.io/cn/downloads/broker/v4.0.0/emqx-centos7-v4.0.0.zip
 
 unzip emqx-centos7-v4.0.0.zip

在这里插入图片描述

EMQ 服务器常用命令

winodw CMD 使用如下命令,Linux 使用 ./emqx start,window PowerShell 使用 .\emqx start


emqx start
后台启动 EMQ X Broker;

emqx stop
关闭 EMQ X Broker;

emqx restart
重启 EMQ X Broker;

emqx console
使用控制台启动 EMQ X Broker;

emqx foreground
使用控制台启动 EMQ X Broker,与 emqx console 不同,emqx foreground 不支持输入 Erlang 命令;

emqx ping
Ping EMQ X Broker。
启动 EMQ 服务器,访问 web 管理界面 Dashboard

EMQ X 默认提供 5 个 Listener,它们将占用以下端口:

端口说明
1883MQTT/TCP 协议端口
11883MQTT/TCP 协议内部端口,仅用于本机客户端连接
8883MQTT/SSL 协议端口
8083MQTT/WS 协议端口
8084MQTT/WSS 协议端口

进入 emqx 的 /bin 目录, ./emqx start 启动,如下图,(如果不能启动,则安装openssl,运行命令yum install -y openssl)
在这里插入图片描述
本地安装访问 http://localhost:18083/,账户名 admin, 密码 public,如果是阿里云服务器,则开

通 18083 和 1883 端口(1883 端口后续代码使用),结果如下,可设置中文显示
在这里插入图片描述
可以访问成功说明 EMQ 服务器安装成功

实现简单的订阅发布

在服务器,新建一个 pubMsg.js,复制如下代码

let mqtt = require('mqtt')

let i = 0
let client = mqtt.connect('tcp://39.99.222.146:1883')
// 统计定时任务运行时长
console.time('test')
client.on('connect', func)

function func() {
    const interval = setInterval(() => {
        client.publish('testtopic', '第 ' + i + '条消息', {'qos': 0}, function (err) {
            i++
            if (i === 100000) {
                console.log('---------------------------发送---------------------- ' + i + '条消息');
                // 停止定时任务
                clearInterval(interval)
                console.timeEnd('test')
            }
        })
    })
}


在本地新建一个 subMsg.js 文件,复制如下内容

let mqtt = require('mqtt')
let j = 0;

let client = mqtt.connect('tcp://39.99.222.146:1883')
client.on('connect', function () {
    client.subscribe('testtopic', {'qos':0}, function (err) {
    	if(err){
    		console.error("连接 tcp://39.99.222.146:1883 mqtt服务失败")
    		return;
    	}
    	console.log("成功连接到 tcp://39.99.222.146:1883 mqtt服务")
    })
})

client.on('message', function (topic, message) {
    // message is Buffer
    j++;
    console.log(message.toString() + '-----------接收第' + j + '条消息')
})

使用 npm 安装 mqtt 包 npm install mqtt,运行程序 node pubMsg.js , node subMsg.js

①、一个 发布消息的客户端 QOS = 0,一个订阅客户端 QOS = 0

结果如下,发送 100000 条 QOS = 0 的消息,接收数据质量 QOS = 0 仍然为100000 条

pubMsg.js 在这里插入图片描述

subMsg.js在这里插入图片描述
②、一个发布消息客户端 QOS = 0,五个订阅客户端 QOS = 0

结果如下,发送 100000 条 QOS = 0 的消息,接收数据质量 QOS = 0 没有一个订阅客户端为100000,各有不同程度丢失消

息,不过也属于正常情况,上面那个能全部接收才觉得不正常😂,该没有对消息重复消费做处理,后续会考虑
在这里插入图片描述
③、一个发布消息客户端 QOS = 2,多个订阅客户端 消息质量都为 QOS = 2,不会有消息丢失

您可以通过以下步骤在Docker中安装EMQX: 1. 首先使用以下命令从Docker Hub上拉取EMQX镜像: ``` docker pull emqx/emqx:4.4.4 ``` 2. 安装Docker并确保已正确配置和运行。可以按照参考资料中的步骤来安装Docker。 3. 启动EMQX容器,可以使用以下命令来启动EMQX: ``` docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:4.4.4 ``` 这将在后台启动EMQX容器,并将其映射到本机的相应端口,以便进行访问和管理。 4. 如果需要使用docker-compose来启动EMQX集群,可以按照以下步骤操作: - 创建一个名为docker-compose.yml的文件,并在其中编写以下内容: ``` version: '3' services: emqx: image: emqx/emqx:4.4.4 ports: - "1883:1883" - "8083:8083" - "8883:8883" - "8084:8084" - "18083:18083" ``` - 在终端中运行以下命令以启动EMQX集群: ``` docker-compose -p my_emqx up -d ``` 5. 现在您可以登录EMQX的Web管理页面,通过浏览器访问http://localhost:18083,并使用默认的用户名和密码(admin/public)进行登录。 这样您就成功地在Docker中安装EMQX。请根据需要选择相应的安装方式进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [EMQX——docker安装简单使用](https://blog.csdn.net/lzsm_/article/details/125307471)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值