搭建 MQTT 服务器 emqx

安装

# 下载页:https://www.emqx.io/cn/downloads#broker
# 选择 EMQ X Broker,以及对应的版本
cd /usr/local/src
# Debian
wget https://packages.emqx.io/emqx-ce/v3.2.6/emqx-debian8-v3.2.6.zip
# CentOS
wget https://packages.emqx.io/emqx-ce/v3.2.7/emqx-centos7-v3.2.6.zip

# 解压
unzip emqx-debian8-v3.2.6.zip

# 移动目录
mv emqx /usr/local/emqx

# 启动
/usr/local/emqx/bin/emqx start

# 查看状态
/usr/local/emqx/bin/emqx_ctl status
# 返回
Node 'emqx@127.0.0.1' is started
emqx 3.2.6 is running

# 可以使用 web 控制台访问,用户名为 admin,密码为 public
http://localhost:18083/

开启用户名权限验证

# 首先关闭 emqx 匿名认证
vim /usr/local/emqx/etc/emqx.conf
# 设置如下
allow_anonymous = false

# 加载用户名认证插件
/usr/local/emqx/bin/emqx_ctl plugins load emqx_auth_username
 
# 添加用户
/usr/local/emqx/bin/emqx_ctl users add <Username> <Password>

配置 MySQL 身份认证

vim /usr/local/emqx/etc/plugins/emqx_auth_mysql.conf
# 配置以下内容
auth.mysql.server = 127.0.0.1:3306
auth.mysql.username = root
auth.mysql.password = asdf
auth.mysql.database = xxx
auth.mysql.password_hash = plain

# 重启 加载插件
/usr/local/emqx/bin/emqx_ctl plugins load emqx_auth_mysql
<think>嗯,用户想让我介绍一下如何使用EMQX搭建MQTT服务器。首先,我需要确认EMQX是什么,它是一个开源的MQTT消息服务器,对吧?然后得考虑用户的使用场景,可能是物联网项目,或者需要实时消息传递的应用。用户可能对MQTT协议有一定了解,但可能不太清楚具体怎么搭建服务器。 接下来,我需要分步骤讲解安装过程。记得EMQX支持多种安装方式,比如Docker、二进制包、源码编译等。用户可能更喜欢简单的方法,比如Docker安装,这样步骤少,容易操作。不过也要提及其他安装方式,供有不同需求的用户参考。 然后,配置部分也很重要。默认配置可能就够用了,但用户可能需要修改监听端口、启用认证,比如用户名密码或者SSL证书。这里需要说明如何修改配置文件,或者通过Dashboard进行设置。特别是Web Dashboard的访问方式,默认端口是18083,用户可能需要知道如何访问。 验证部分,安装完成后如何测试服务器是否正常运行。可以用命令行工具如mosquitto_pub和mosquitto_sub,或者推荐一些客户端工具,比如MQTTX。这样用户能快速确认服务是否工作。 另外,用户可能关心高可用和集群配置,特别是如果他们需要处理大量连接或高并发情况。需要简单提到集群的搭建方法,比如通过手动配置或者Kubernetes,但不需要太深入,毕竟这可能属于进阶内容。 最后,安全性和性能调优也是需要考虑的。比如如何设置ACL,TLS加密,以及根据服务器硬件调整参数。用户可能没有提到这些,但作为最佳实践应该涵盖。 在组织回答时,要结构清晰,分步骤说明,语言简洁。避免使用太专业的术语,但也要准确。可能需要检查各个步骤是否正确,比如Docker命令是否正确,配置文件路径是否准确。另外,注意用户可能是在不同的操作系统上操作,比如Linux、Windows或者macOS,所以安装步骤可能需要涵盖不同平台,但EMQX主要支持Linux,所以可能以Linux为例,其他平台用Docker更方便。 还要考虑用户可能遇到的问题,比如端口被占用,防火墙设置,或者认证配置错误。可能需要在注意事项里提醒检查端口开放和防火墙设置。另外,EMQX企业版和开源版的区别,是否需要付费,这些可能也需要提及,但用户主要关注搭建,可能暂时不需要深入。 总结一下,回答的结构应该是:介绍EMQX,安装步骤,配置说明,验证方法,进阶配置(集群、安全、性能),以及注意事项。确保每个部分都简明扼要,用户能一步步跟着操作。以下</think>是如何使用 EMQX 搭建 MQTT 服务器的分步指南,适合物联网或实时消息场景的快速部署: ### 一、EMQX 简介 EMQX 是一款开源分布式 MQTT 消息服务器,支持: - 千万级设备并发连接 - 毫秒级消息传输 - TLS/SSL 加密通信 - SQL 规则引擎(企业版) - 跨平台部署(Linux/Docker/K8s) ### 二、极速安装(Docker版) ```bash # 单节点模式(适合测试) docker run -d --name emqx \ -p 1883:1883 \ -p 8083:8083 \ -p 8084:8084 \ -p 8883:8883 \ -p 18083:18083 \ emqx/emqx:5.6.0 # 生产环境推荐使用 Docker Compose 配置集群 ``` ### 三、关键配置调整 1. **配置文件路径**:`/etc/emqx/emqx.conf` (Docker容器内路径为 `/opt/emqx/etc/emqx.conf`) 2. **常用配置项: ```conf # 监听端口 listeners.tcp.default.bind = 0.0.0.0:1883 # 认证配置(示例:用户名密码) authentication = [ { mechanism = password_based backend = built_in_database user_id_type = username } ] # 开启 Dashboard dashboard = { listeners.http = { default = { bind = 0.0.0.0:18083 } } } ``` ### 四、管理控制台 1. 访问 `http://服务器IP:18083` 2. 默认账号:`admin/public`(首次登录后强制修改) ### 五、客户端测试(命令行) ```bash # 订阅主题(新终端) mosquitto_sub -h your_server_ip -t "test" -u username -P password # 发布消息(新终端) mosquitto_pub -h your_server_ip -t "test" -m "Hello EMQX" -u username -P password ``` ### 六、生产环境优化建议 1. **集群部署**:通过 `emqx ctl cluster join` 命令构建多节点集群 2. **安全加固**: - 启用 TLS:修改 `8883` 端口配置 - 配置 ACL 访问控制 - 禁用匿名认证 3. **性能调优**: ```conf # 调整 TCP 缓冲区 listeners.tcp.default.sndbuf = 4MB listeners.tcp.default.recbuf = 4MB # 连接数限制 zone.external.max_connections = 1000000 ``` ### 七、常见问题排查 1. **端口不通**:检查防火墙 `firewall-cmd --list-ports` 2. **认证失败**:通过 Dashboard 的「访问控制」模块检查凭证 3. **高负载优化**:调整 Linux 内核参数(最大文件描述符数等) ### 进阶功能 - 数据桥接:支持 Kafka/MySQL/TDengine 等 40+ 种数据源 - 规则引擎:实时处理消息(如 JSON 数据解析) - 速率限制:防止设备异常流量冲击 企业版提供更强大的监控报警、数据持久化和技术支持服务,开源版已覆盖大部分物联网场景需求。部署完成后建议通过 `emqx_ctl status` 命令验证节点状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值