Mainflux IoT:Go語言輕量級開源物聯網平臺,支持HTTP、MQTT、WebSocket、CoAP協議
Mainflux是一個由法國的創業公司開發并維護的安全、可擴展的開源物聯網平臺,使用 Go語言開發、采用微服務的框架。Mainflux支持多種接入設備,包括設備、用戶、APP;支持多種協議,包括HTTP、MQTT、WebSocket、CoAP,并支持他們之間的協議互轉。
Mainflux的南向接口連接設備,北向接口連接應用,提供一個完整的從設備端到平臺到應用的解決方案。
功能特性
Mainflux 物聯網平臺包含以下功能特性:
- 支持多協議連接及橋接(HTTP, MQTT, WebSocket 和 CoAP)
- 設備管理和配置(零接觸配置)
- 使用 X.509 數字證書進行雙向認證
- 精細化的訪問權限控制
- 支持消息持久化 (Cassandra, InfluxDB, MongoDB, PostgresSQL)
- Platform logging and instrumentation support (Grafana, Prometheus and OpenTracing)
- 平臺支持記錄日志和基礎設施
- 使用 Docker 和 Kubernetes 進行基于容器的部署
- ontainer-based deployment using Docker and Kubernetes
- 集成 LoRaWAN
- SDK
- CLI
- 占用內存小,執行速度快
- 領域驅動的設計架構,高質量的代碼和測試覆蓋率
MainFlux 服務架構
Mainflux 物聯網平臺包含以下服務:
服務 | 描述 |
用戶 | 管理平臺的用戶以及有關用戶和組的身份驗證問題 |
事物 | 管理平臺的事物、渠道以及與事物和渠道相關的身份驗證問題 |
http 適配器 | 提供HTTP接口,用于通過HTTP發送消息 |
mqtt 適配器 | 提供 MQTT 和 MQTT over WS 接口,用于通過 MQTT 發送和接收消息 |
WS-適配器 | 提供WebSocket接口,用于通過WS發送和接收消息 |
適配器 | 提供CoAP接口,用于通過CoAP發送和接收消息 |
opcua 適配器 | 提供 OPC-UA 接口,用于通過 OPC-UA 發送和接收消息 |
lora 適配器 | 提供 LoRa 服務器轉發器,用于通過 LoRa 發送和接收消息 |
mainflux-cli | 命令行界面 |
Mainflux 核心模塊
邊緣計算網關
Mainflux IoT 物聯網平臺提供邊緣網關設備管理服務,包含傳感器原始數據處理、過濾和存儲功能,減少設備(傳感器/執行器)上云的負載、降低配置難度。
上圖展示的是運行 Agent、Export 和 Mainflux 服務最小部署的邊緣網關。
Mainflux 服務支持設備管理和 MQTT 協議,NATS 是中央消息總線,因為它是 Mainflux 中的默認消息代理,它也成為其他服務的中央消息總線,以及任何新的自定義Agent開發Export的服務,這些服務可以構建為與網關上具有任何硬件支持接口的設備,這些服務會將數據發布到消息代理,Export服務可以在消息代理中獲取數據并將其發送到云。
官網和源碼
- 官網:https://mainflux.com
- GitHub:https://github.com/mainflux
- 開發文檔:https://docs.mainflux.io