参考资料

  1. CentOS是一个基于 Red Hat Enterprise Linux(RHEL)源代码构建的开源 Linux 发行版
  2. Spug 是一款开源的轻量级自动化运维平台
  3. IBM Semeru Runtimes 是基于 OpenJDK 的开源 Java 运行时环境(JRE)和开发工具包(JDK)。
  4. SurveyKing 是一款开源在线问卷调查系统
  5. Rocky Linux 是一个开源企业级操作系统
  6. RethinkDB 是一个开源的分布式 NoSQL 数据库,专为实时应用设计
  7. MariaDB 是一个开源的关系型数据库管理系统
  8. Percona是一家提供开源数据库解决方案的公司,专注于MySQL、MongoDB、PostgreSQL等数据库的性能优化

Eclipse Mosquitto 简介

Eclipse Mosquitto 是一个开源(EPL/EDL 许可证)的 MQTT 消息代理(broker),轻量级且支持 MQTT 协议 v3.1、v3.1.1 和 v5.0。适用于物联网(IoT)场景。

特点

  1. 轻量高效:低资源占用,适合嵌入式设备。

  2. 协议支持:完整兼容 MQTT v3.1、v3.1.1 和 v5.0。

  3. 跨平台:支持 Linux、Windows、macOS 等。

  4. 安全功能:支持 TLS/SSL 加密、客户端认证(PSK、X.509)。

  5. 插件系统:支持动态模块扩展(如认证、日志)。

  6. 持久化:支持消息保留(Retain)和持久会话。

最新更新内容及时间

  • 最新版本:2.0.18(截至 2023 年 10 月)

    • 修复内存泄漏问题。

    • 优化 WebSocket 连接处理。

    • 更新 OpenSSL 兼容性。

    • 详细更新日志:GitHub Releases

下载地址

官网地址

https://mosquitto.org/

文档地址


Docker 安装示例

docker run -d -p 1883:1883 -p 9001:9001 -v /path/to/config:/mosquitto/config -v /path/to/data:/mosquitto/data eclipse-mosquitto

YAML 配置示例(通常使用 .conf 文件)

Mosquitto 默认使用 .conf 格式,但可通过工具转换 YAML。示例等效配置:

listener:
  port: 1883
  protocol: mqtt
allow_anonymous: false
password_file: /mosquitto/config/passwd
persistence: true
persistence_location: /mosquitto/data/

实际应使用 .conf 文件(如 mosquitto.conf):

listener 1883
allow_anonymous false
password_file /mosquitto/config/passwd
persistence true
persistence_location /mosquitto/data/

常见错误及解决

  1. 端口冲突

    • 错误:Error: Address already in use

    • 解决:更换端口或停止占用进程。

  2. 认证失败

    • 错误:Connection Refused: bad user name or password

    • 解决:检查 password_file 路径及格式(使用 mosquitto_passwd 生成)。

  3. 权限问题

    • 错误:Permission denied

    • 解决:确保 /mosquitto/data/mosquitto/log 目录可写。

  4. TLS 配置错误

    • 错误:SSL/TLS handshake failed

    • 解决:检查证书路径及权限,确认 cafile/certfile/keyfile 配置。

  5. WebSocket 连接失败

    • 错误:WebSocket upgrade failed

    • 解决:配置文件中添加 listener 9001 protocol websockets