简介:本文详细介绍了EMQ X在云服务器上的部署、配置及测试全流程,涵盖环境准备、安装、配置优化、客户端测试及性能调优等关键步骤,助力开发者快速构建物联网消息中间件。
在物联网(IoT)云智能开发领域,消息中间件是连接设备、应用与云服务的关键枢纽。EMQ X作为一款开源的MQTT消息代理服务器,凭借其高性能、高可靠性和丰富的协议支持,已成为物联网平台搭建的首选方案。本文将围绕”EMQ X云服务器搭建及测试”这一主题,从环境准备、安装部署、配置优化到实战测试,提供一套完整的操作指南,帮助开发者快速构建稳定的物联网消息中间件。
# 以CentOS为例安装依赖sudo yum install -y epel-releasesudo yum install -y wget curl vim net-tools
wget https://www.emqx.io/downloads/broker/v5.0/emqx-5.0.0-el7-amd64.rpmsudo rpm -ivh emqx-5.0.0-el7-amd64.rpm
docker pull emqx/emqx:5.0.0docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 18083:18083 emqx/emqx:5.0.0
# 启动服务sudo systemctl start emqx# 检查状态sudo systemctl status emqx# 查看运行日志journalctl -u emqx -f
编辑/etc/emqx/emqx.conf文件,重点调整以下参数:
# 允许的最大客户端连接数listeners.tcp.external = 0.0.0.0:1883listeners.tcp.external.max_connections = 100000# MQTT协议版本配置(支持3.1/3.1.1/5.0)mqtt.version = 5.0# 保留消息存储配置zone.external.retain_available = truezone.external.max_retain_messages = 1000
# 生成密码文件emqx_ctl users add admin public# 修改认证配置auth.username.password_hash = plainauth.username.$POOL.backend = fileauth.username.$POOL.file = /etc/emqx/passwd
# 生成自签名证书(生产环境建议使用CA证书)openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes# 配置TLS监听器listeners.ssl.external = 0.0.0.0:8883listeners.ssl.external.keyfile = /etc/emqx/certs/key.pemlisteners.ssl.external.certfile = /etc/emqx/certs/cert.pem
使用MQTT客户端工具(如MQTT.fx或Mosquitto CLI)进行测试:
# 订阅测试mosquitto_sub -h 服务器IP -t "test/topic" -q 1# 发布测试mosquitto_pub -h 服务器IP -t "test/topic" -m "Hello EMQ X" -q 1
访问http://服务器IP:18083,使用默认账号admin/public登录,可进行:
使用emqx_benchmark工具进行压力测试:
# 安装测试工具git clone https://github.com/emqx/emqx-benchmark.gitcd emqx-benchmarkmake run# 执行测试(1000并发连接,每秒100条消息)./emqx_bench conn -c 1000 -i 10./emqx_bench pub -c 1000 -i 10 -t bench/%i -m "Hello" -q 1
配置规则将设备数据转发到MySQL数据库:
-- 创建数据库表CREATE TABLE device_data (id INT AUTO_INCREMENT PRIMARY KEY,topic VARCHAR(255),payload TEXT,received_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
在EMQ X Dashboard中创建规则:
SELECTtopic,payloadFROM"t/#"WHEREpayload.temp > 30
# 在节点1上修改配置etc/emqx/emqx.conf:cluster.discovery = staticcluster.static.seeds = emqx@节点1IP,emqx@节点2IP# 在节点2上执行emqx_ctl cluster join emqx@节点1IP
emqx_ctl users list
cat /var/log/emqx/emqx.log.*
emqx.conf中的node.process_limit和node.max_ports
订阅主题:$share/group1/topic
/var/lib/emqx目录emqx_ctl upgrade命令进行平滑升级通过本文的详细指导,开发者可以完成从EMQ X云服务器部署到功能测试的全流程。在实际项目中,建议结合具体业务场景进行配置优化,并建立完善的监控运维体系。EMQ X的灵活架构和丰富插件系统,能够满足从智能家居到工业物联网的多样化需求,为云智能开发提供坚实的消息中间件支撑。