物联网(IoT)技术像一张无形的网,连接着每一个角落,每一个设备,
正迅速成为连接现实世界与数字世界的核心桥梁。
在物联网领域有一个项目正以其独特的魅力和力量,引领着行业的变革——
这就是Go IoT Platform。
Go IoT Platform 是一个基于 Go 语言开发的高效、可扩展的物联网平台,专为企业级物联网应用场景设计,
专注于提供稳定、可靠的 MQTT 客户端管理,以及对 MQTT上报数据的全面处理和分析。
物联网的潜力巨大,但同时也面临着开发复杂、成本高昂的众多挑战。从最初的原型设计,到一次次的迭代更新,再到现在的成熟版本,每一次的版本升级,都是对技术的深入探索和对用户需求的精准把握,Go IoT Platform 不仅克服了这些难题,更是在实践中积累了丰富的经验。
-
数据层:
负责进行物联数据的采集、预处理、转发和存储,为应用层提供数据服务。
-
管理层:
用于提供物联网平台的管理功能,包括设备管理、人员管理、安装管理、产品管理、SIM卡管理(物联网卡管理)、解析脚本管理、发货管理等。
-
应用层:
用于提供快速的业务实现,以配置化的方式快速建设基础业务。
数据从设备上使用MQTT协议将数据推送给MQTT服务集群。
-
MQTT客户端的集群程序在
go-mqtt-manager
中,它是一个基于Redis实现的支持负载均衡、故障转移、高可用的MQTT客户端集群。
-
pre_handler队列: 用于对设备上报的数据进行预处理,包括数据过滤、数据转换等(预处理脚本使用JavaScript进行编写)。
-
waring_handler队列: 用于对预处理后的数据进行告警处理。区别于waring_delay_handler队列,它只能完成单一信号单次的区间判断。
-
waring_delay_handler队列: 用于对预处理后的数据进行告警处理。区别于waring_handler队列,它能够完成的报警模式更加多样化,但是这需要编写报警判断脚本(使用JavaScript进行实现)。
-
transmit_handler队列: 用于将预处理后的数据转发到cassandra、clickhouse、influxdb2、mongo、mysql、kafka、rabbit等
-
定时任务队列集群:这是使用Redis+RabbitMQ实现的定时任务,他能够完成用户定义的复杂计算任务(基于JavaScript编写任务)
-
脚本化配置:
为了让数据的使用变得简单,Go IoT Platform 引入了脚本化配置。用户无需深谙编程之道,便能通过简单的脚本编写,实现数据的灵活处理。大大降低了传统 IT 开发的门槛,提升了项目的开发效率,让更多的创意得以实现。
-
集群化部署:
Go IoT Platform 支持集群化部署,可靠的 MQTT 客户端管理不仅具备负载均衡功能,还能实现动态容错,保证了平台的高可用性,即使在高并发的物联网场景中,平台依然能够保持稳定的服务质量。
-
便捷的数据使用:
不同于传统需要大量代码开发的物联网平台,Go IoT Platform 允许用户通过基础配置和脚本编写,快速完成系统搭建和数据处理。无论是数据采集、处理,还是分析,用户都能以更低的成本、更高的效率完成任务。
-
复杂报警逻辑的实现:
平台内置了多种复杂报警逻辑,可以帮助企业实时监控关键指标,并在出现异常时及时触发报警。企业能够更加主动地管理其物联网设备,降低风险,提升运营效率。
Go IoT Platform的故事还在继续,它的发展和成功案例证明了物联网技术的无限可能。Go IoT Platform 的长期目标和愿景,是成为全球领先的物联网开发平台,推动物联网技术的普及和应用。
Go-IoT-Platform
项目资料获取:
https://gitee.com/pychfarm_admin/go-iot-platform