iot-iita是一个由铱塔智联(openiita)提供的开源物联网平台项目。该平台为物联网及相关业务开发提供了丰富的基础功能,旨在帮助用户快速搭建自己的物联网相关业务平台。
以下是对iot-iita的详细介绍:
一、平台功能
iot-iita平台包含了多个核心模块,以满足物联网应用的不同需求:
- 品类与物模型:支持定义和管理物联网设备的品类及物模型,为设备数据的处理和分析提供基础。
- 消息转换:实现不同协议和格式之间的消息转换,确保设备间通信的顺畅。
- 插件管理:支持多种插件,如MQTT插件、EMQX插件、HTTP插件、TCP插件、Modbus插件等,方便用户根据需求进行选择和配置。
- 设备管理:提供设备注册、接入、监控、配置等功能,确保设备的稳定运行和高效管理。
- 设备分组:支持对设备进行分组管理,便于批量操作和维护。
- 规则引擎:通过规则引擎,用户可以定义复杂的业务逻辑,实现设备间的联动和数据处理。
- 第三方平台接入:支持接入第三方平台,实现数据的共享和集成。
- 数据流转:支持HTTP、MQTT、Kafka等多种数据流转方式,确保数据的实时性和可靠性。
- 数据可视化:提供数据可视化工具,帮助用户直观了解设备状态和数据分析结果。
- 告警中心:实时监控设备状态和数据分析结果,一旦发现异常情况,及时发出告警通知。
二、平台优势
- 低配服务器万级设备接入能力:通过优化设计和实现,iot-iita平台能够在低配服务器上支持万级设备的接入和管理。
- 低学习门槛:平台提供了详细的文档和教程,降低了用户的学习成本,即使是没有物联网开发经验的小白也能快速上手。
- 主流数据库支持:支持多种主流数据库,包括关系型数据库(如MySQL、PostgreSQL等)和时序数据库(如Elasticsearch、TDengine等),满足用户的不同需求。
- 模块化设计:平台采用模块化设计,各模块之间松耦合,易于扩展和替换。
三、软件架构
iot-iita平台采用Spring Boot、JPA、Vert.x、Redis、H2、MySQL、Elasticsearch、TDengine、RocketMQ、sa-token等框架和第三方软件构建而成。中间件采用模块化无侵入集成方式,非常容易扩展和替换。默认使用内置的Redis、H2数据库、Elasticsearch时序数据库、Vert.x消息总线和OSS以减小启动难度,可实现零配置一键启动。
四、使用与部署
用户可以通过源码或Docker镜像的方式部署iot-iita平台。在配置好相应的JDK环境后,用户可以使用IDEA等IDE工具拉取代码并运行项目。同时,平台也提供了Docker镜像供用户快速部署。
准备docker-compose.yml配置文件:
version: "3.4"
services:
mysql:
container_name: iot-mysql
image: mysql:8
restart: unless-stopped
tty: true
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: ${MYSQL_DATABASE:-iotkit}
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-123456}
volumes:
- mysql:/var/lib/mysql/
redis:
container_name: iot-redis
image: redis:6-alpine
restart: unless-stopped
ports:
- "6379:6379"
volumes:
- redis:/data
server:
container_name: iot-server
build:
context: .
image: iot-server
restart: unless-stopped
ports:
- "8089:8086"
- "8088:8082"
environment:
# https://github.com/polovyivan/docker-pass-configs-to-container
SPRING_PROFILES_ACTIVE: mysql
SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_URL: ${MASTER_DATASOURCE_URL:-jdbc:mysql://iot-mysql:3306/iotkit?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true}
SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_USERNAME: ${MASTER_DATASOURCE_USERNAME:-root}
SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_PASSWORD: ${MASTER_DATASOURCE_PASSWORD:-123456}
# SPRING_DATASOURCE_DYNAMIC_DATASOURCE_SLAVE_URL: ${SLAVE_DATASOURCE_URL:-jdbc:mysql://iot-mysql:3306/iotkit?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true}
# SPRING_DATASOURCE_DYNAMIC_DATASOURCE_SLAVE_USERNAME: ${SLAVE_DATASOURCE_USERNAME:-root}
# SPRING_DATASOURCE_DYNAMIC_DATASOURCE_SLAVE_PASSWORD: ${SLAVE_DATASOURCE_PASSWORD:-123456}
SPRING_REDIS_HOST: ${REDIS_HOST:-iot-redis}
SPRING_REDIS_PORT: 6379
JAVA_OPTS:
${JAVA_OPTS:-
-Xms512m
-Xmx512m
-Djava.security.egd=file:/dev/./urandom
-DdisabledEmbeddedRedis=true
}
volumes:
- ./data/dist:/usr/share/nginx/html
depends_on:
- redis
- mysql
volumes:
mysql:
driver: local
redis:
driver: local
运行docker-compose up -d 命令启动即可。
五、总结
iot-iita是一个功能丰富、易于使用、易于扩展的开源物联网平台。它提供了从设备接入到数据可视化、告警通知等全链条的解决方案,帮助用户快速搭建自己的物联网相关业务平台。无论是对于物联网行业的从业者还是对于想要了解物联网技术的爱好者来说,iot-iita都是一个值得尝试和关注的平台。