一飞开源,介绍创意、新奇、有趣、实用的开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!
一、开源项目简介
SagooIOT是一个基于golang开发的轻量级的物联网平台。支持跨平台的物联网接入及管理方案,平台实现了物联网开发相关的基础功能,基于该功能可以快速的搭建起一整套的IOT相关的业务系统。
使用Apache-2.0开源协议
SagooIOT提供了支持私有化或容器化形式的部署,用户可以将其轻松部署在单机、集群或容器服务环境中,并且支持横向扩展,以满足不同规模的业务需求。使用SagooIOT能够获得出色的性能表现,提供优异的IOT服务能力。
数据并发
系统可分布式部署,支持百万级数据并发。
设备接入
设备网关水平扩容,支持千万级设备接入。
数据采集
TDengine时序数据库,支持上亿数据采集点
数据通讯
高性能网络组件,非阻塞网络编程,具有极低的通讯延迟。
SagooIOT是一个基于golang开发的开源的企业级物联网基础开发平台。负责设备管理和协议数据管理,支持跨平台的物联网接入及管理方案,平台实现了物联网开发相关的基础功能,基于该功能可以快速的搭建起一整套的IOT相关的业务系统。旨在通过可复用的组件,减少开发工作,简化和加速物联网开发交付。适配多种接入协议(TCP,MQTT,UDP,CoAP,HTTP,GRPC,RPC等)。
技术栈
详细安装过程,请查看开源项目官网文档。
部署说明
该程序可以独立部署,直接执行使用,也可以与nginx或是apache联合使用。
最低配置
CPU
1核心
内存
1GB
硬盘
40G
推荐配置
CPU
2核+
内存
4GB+
硬盘
40GB+
SagooIOT采用Golang开发,拥有良好的跨平台特性。支持的平台如下:
aix/ppc64 android/386 android/amd64 android/arm android/arm64 darwin/amd64 darwin/arm64 dragonfly/amd64 freebsd/386 freebsd/amd64 freebsd/arm freebsd/arm64 illumos/amd64 js/wasm linux/386 linux/amd64 linux/arm linux/arm64 linux/mips linux/mips64 linux/mips64le linux/mipsle linux/ppc64 linux/ppc64le linux/riscv64 linux/s390x netbsd/386 netbsd/amd64 netbsd/arm netbsd/arm64 openbsd/386 openbsd/amd64 openbsd/arm openbsd/arm64 plan9/386 plan9/amd64 plan9/arm solaris/amd64 windows/386 windows/amd64 windows/arm
设备成功连网后,还需要采用特定协议与云平台进行数据交互。下面简要介绍几种常用的设备接入协议,以及选用时的注意事项。
MQTT是一种轻量级的发布订阅式消息协议,工作在TCP协议上。它需要设备与云平台建立持久TCP连接,并完成身份验证后,可以进行数据通信。
MQTT协议具有以下显著优势:
MQTT通过与云平台的长连接,可以实现实时的命令下发和控制。设备可以即时收到控制指令,实现智能家居、农业监控等场景的实时控制。
长连接也便于监测设备在线状态。虽然由于网络问题,设备连接可能会出现断开,但MQTT本身的心跳机制可以很好地检测状态。
MQTT支持不同的安全认证机制。对于资源受限的设备,可以使用简单的用户名密码加密。对安全要求高的场景,可以使用TLS证书机制,保证数据安全。
MQTT使用二进制格式,相比文本协议,可以大幅减少无效负载。这对诸如NB-IoT等低带宽网络来说非常有利。MQTT是一个高效、灵活、安全的物联网消息协议。它非常适合需要实时控制和监测的场景,是物联网的首选接入协议。
HTTP 协议运行在TCP之上,对开发者非常友好。设备可以通过HTTP向云平台发送数据。
HTTP方式简单实用,如果设备资源允许,可以使用HTTPs实现安全传输。但HTTP不如MQTT实时,无法进行命令控制。单纯的数据采集场景可以选择HTTP。
CoAP是一种精简的REST风格协议,运行在UDP上,更适合低功耗设备使用。
CoAP除了更轻量之外,与HTTP使用方式高度相似。如果设备资源有限,可以考虑使用CoAP。
SagooIOT也支持基于TCP的自定义协议接入。比如很多DTU设备采用TCP透传方式。
TCP方式可以高度定制,但需要自主开发通信格式解析。也可以在云平台进行格式转换,以适应不同设备。
设备可根据资源情况、实时性需求、安全需求等,选择MQTT、HTTP、CoAP或TCP接入协议。
无论采用何种协议,都需要进行格式解析、身份验证等处理。SagooIOT提供不同协议的接入方式,以及后端的数据处理与转换功能。
来源:SagooIOT 官网文档
六、源码地址
评论