参考资料

  1. RethinkDB 是一个开源的分布式 NoSQL 数据库,专为实时应用设计
  2. docker安装包详细说明以及案例
  3. Eclipse Mosquitto 是一个开源(EPL/EDL 许可证)的 MQTT 消息代理(broker)
  4. ClearLinux 是由 Intel 开发的一个基于 Linux 的操作系统
  5. Couchbase 是一个高性能、分布式 NoSQL 数据库,支持键值存储、文档存储和全文搜索功能。
  6. NATS Streaming(现更名为STAN)是基于NATS的消息流系统
  7. MySQL 是一个开源的关系型数据库管理系统
  8. Docker与Kubernetes的关系?

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