# 物联网云平台ithings
iThings是一个基于golang开发的轻量级云原生微服务物联网平台.
定位于:
* 高性能 -- 使用golang编写,选用高性能组件(emqx,nats,tdengine),基于gozero微服务框架高性能的同时保证服务的稳定性
* 云原生易拓展 -- 一套代码同时支持k8s,docker,微服务及单体模式部署,便于业务从单体到微服务的切换
* 易部署 -- 一键安装所有依赖,一键运行iThings
* 易集成 -- 可以通过http,grpc,甚至直接将iThings作为包集成进自己系统
git地址:
* 后端github地址:[https://github.com/i-Things/iThings](https://github.com/i-Things/iThings)
* 后端gitee地址:[https://gitee.com/i-Things/iThings](https://gitee.com/i-Things/iThings)
* 前端github地址:[https://github.com/i-Things/iThings-admin-react](https://github.com/i-Things/iThings-admin-react)
## 产品架构
iThings物联网平台提供跨不同设备和数据源的通用接入及管理平台,在整个物联网架构中起到承上启下的中介作用,
联动感知层及应用层之间的所有交互——向下连接、管理物联网设备端并完成感知数据的归集与存储,
向上为应用开发商与系统集成商提供应用开发的统一数据接口及共性模块工具。
应用厂商可以通过http,grpc,及golang包引入的方式快速集成进自己的系统中,迅速获取物联网平台的能力,轻量而高效.
- <img style="width:300px;" src="./doc/assets/iThings架构图.png">
## 产品价值
| 平台价值 | 描述 |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 拓展能力强 | 公司发展有不同的阶段,应用场景也有不同的需要,iThings同时支持单体和微服务便于开发者不需要维护两套代码同时单体不足以满足公司需要时也可以很便捷的切换为微服务架构 |
| 高性能 | 使用golang开发,依赖的第三方服务很少,对于性能要求不高的场景甚至可以部署到低性能的arm上 |
| 数据价值 | 私有化部署,所有数据都可以自己去管理,不用担心公有云停服及收费高的问题 |
| 解决方案底座 | 可做为行业解决方案的数字底座,支持多行业解决方案共用同一个物联网平台底座,为企业沉淀更多行业经验和产品方案。 |
## 产品特性
* 设备接入:通过行业标准物联网协议(MQTT、CoAP 和 HTTP)实现海量设备连接,也可以通过规则引擎接入自定义协议。
* 远程控制:使用http api可以实现服务器对设备的精准控制和设备主动向服务器发送请求通知。
* 物模型:支持标准物模型,有效管理设备的属性,事件及行为。
* RBAC权限:权限控制采用 RBAC,基于角色的访问控制。封装完善的用户、角色、菜单等基础权限功能。
* 应用支撑:提供http,grpc或golang直接导入包的形式将数据流转至业务层面,屏蔽了物联网层面的复杂特性,让企业专注业务应用开发,缩短物联网解决方案的上市周期,为企业节省大量研发时间和成本。
* 自主可控:私有云、公有云、边缘部署.
* 快速开发及维护: 提供设备云端调试日志,设备本地日志,在线设备调试 快速开发及调试问题
## 产品功能
| 功能 | 描述 |
| ---------- | ---------------------------------------------------------------------------------- |
| 后台管理 | 独立后台,提供用户管理,角色管理,菜单管理 |
| 设备管理 | 包含设备信息维护、数据收集等基础功能,支持设备参数配置、模型配置、在线调试等功能。 |
| 产品管理 | 支持产品管理,物模型管理,远程配置管理 |
| 设备分组 | 支持设备最多三级分组 |
| 网关子设备 | 完整网关子设备功能 |
## 技术架构
### 后端架构
#### 技术栈
1. 微服务框架:[go-zero](https://go-zero.dev/)
2. 高性能缓存:[redis](https://redis.io/)
3. 高性能消息队列:[nats](https://docs.nats.io/)
4. 关系型数据库:[mysql(请使用mariaDB或mysql5.7)](https://mariadb.com/)或pgsql
5. 微服务注册中心(单体可不使用):`etcd`
6. 云原生轻量级对象存储:[minio](https://min.io/)
7. 开源、高性能、云原生,极简的时序数据处理平台:[tdengine](https://www.taosdata.com/)
8. 大规模可弹性伸缩的云原生分布式物联网MQTT消息服务器:[emqx](https://docs.emqx.com/zh/enterprise/v4.4/getting-started/install-ee.html)
### 代码结构
> [src模块简介、编译及启动方式.readme.md](./src/README.md)
```shell
- deploy #部署时 相关配置
- conf
- emqx #mtqq组件 相关配置
- data
- loaded_plugins
- etc
- plugins
- emqx.conf #mtqq组件 主要服务配置文件
- emqx_auth_http.conf #mtqq组件 鉴权服务配置文件
- ithings #本项目服务 相关配置
- apisvr
- etc #部署时 各服务 配置文件
- api.yaml #api网关接口代理模块配置
- dd.yaml #设备数据处理模块配置
- di.yaml #设备交互模块配置
- dm.yaml #设备管理模块配置
- sys.yaml #系统管理模块配置
- mysql #本项目SQL文件
- sql
- dmsvr.sql #设备管理模块SQL
- rulesvr.sql #协议规则引擎模块SQL
- syssvr.sql #系统管理模块SQL
- nats #nats组件 相关配置
- nats-server.conf # #nats配置文件
- doc #项目文档
- assets #一些逻辑流程图、架构图、二维码
- v2 #v2版本架构设计思路
- shared #公共服务、DTO、Client
- clients #mqtt/nats/TDengine client
- conf #配置文件内 部分对象的 DTO
- def #常量、结构体 通用定义
- devices #此负责提供 和设备相关的 公用的操作函数
- domain #此包用于封装 跨服务共享的 领域对象
- application #此包负责定义 应用层推送的 结构体
- deviceAuth
- schema #此包负责 物模型定义及相关逻辑
- errors #程序错误对象、错误码的定义
- events #此包负责提供事件的封装及解包(如topic、常量、结构体、封解方法)
- oss #对象存储SDK
- proto #公共proto定义
- result #apisvr网关模块 响应结果处理 的封装
- store
- third #第三方SDK对接
- traces #链路追踪方法封装
- users #jwt方法封装
- utils #工具类函数封装
- verify #验证码函数封装
- src #项目主要代码(go-zero rest)
- apisvr #api网关接口代理模块
- etc #单体部署 运行时 各服务 配置文件
- api.yaml #api网关接口代理模块配置
- dd.yaml #设备数据处理模块配置
- di.yaml #设备交互模块配置
- dm.yaml #设备管理模块配置
- sys.yaml #系统管理模块配置
- apidirect
- direct.go #加载配置、协程启动dd服务、构造单例上下文(含根据配置判断连接其他子服务)
- ddsvr #设备数据处理模块(go-zero rest)
- etc
- dd.yaml #独立部署 运行时 当前服务 配置文件
- dddirect
- direct.go #加载配置、构造单例上下文、注册消费者Handle
- di
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
iThings是一个基于golang开发的轻量级云原生微服务物联网平台. 定位于: 高性能 -- 使用golang编写,选用高性能组件(emqx,nats,tdengine),基于gozero微服务框架高性能的同时保证服务的稳定性 云原生易拓展 -- 一套代码同时支持k8s,docker,微服务及单体模式部署,便于业务从单体到微服务的切换 易部署 -- 一键安装所有依赖,一键运行iThings 易集成 -- 可以通过http,grpc,甚至直接将iThings作为包集成进自己系统. 价值:拓宽能力强、高性能、数据价值、解决方案的底座 产品特性:设备接入、远程控制、物模型、RBAC权限、应用支撑、自主可控、快速开发及维护。 功能:后台管理、设备管理、产品管理、设备分组、网关子设备
资源推荐
资源详情
资源评论
收起资源包目录
iThings是一个基于golang开发的轻量级云原生微服务物联网平台 (832个子文件)
info.api 10KB
msg.api 8KB
info.api 6KB
interact.api 6KB
user.api 5KB
group.api 5KB
schema.api 4KB
log.api 4KB
api.api 3KB
auth.api 3KB
log.api 3KB
role.api 3KB
info.api 2KB
menu.api 2KB
info.api 2KB
common.api 2KB
remoteConfig.api 2KB
gateway.api 2KB
dealRecord.api 2KB
info.api 2KB
auth5.api 2KB
auth.api 1KB
common.api 1KB
custom.api 1KB
scene.api 908B
oss.api 687B
device.api 510B
system.api 480B
product.api 391B
things.api 365B
rule.api 336B
dd.api 214B
api.api 198B
group.api 186B
pack.bat 374B
updateFront.bat 160B
buildFront.bat 107B
packLinux.bat 86B
emqx.conf 68KB
emqx_auth_http.conf 6KB
nats-server.conf 78B
Dockerfile 693B
xshell端口映射文件.fwr 1KB
.gitignore 657B
.gitkeep 0B
.gitkeep 0B
.gitkeep 0B
.gitmodules 95B
dm.pb.go 205KB
sys.pb.go 154KB
di.pb.go 98KB
rule.pb.go 94KB
dm_grpc.pb.go 67KB
sys.pb.go 61KB
types.go 55KB
sys_grpc.pb.go 45KB
rule_grpc.pb.go 39KB
modelMigrate.go 30KB
di_grpc.pb.go 24KB
schemaInfo.pb.go 21KB
minetype.go 20KB
routes.go 20KB
thing.go 14KB
sys_grpc.pb.go 12KB
model.go 12KB
schema_test.go 12KB
productManage.go 12KB
validate.go 11KB
appDevice_test.go 10KB
deviceManage.go 10KB
model.go 10KB
alarmCenter.go 9KB
parser.go 9KB
deviceGroup.go 9KB
gateway.go 8KB
propertyData.go 7KB
minio.go 7KB
deviceInteract.go 7KB
common.pb.go 7KB
param.go 7KB
role.go 6KB
serviceContext.go 6KB
remoteConfig.go 6KB
deviceAuth.go 6KB
user.go 6KB
mqtt.go 6KB
deviceMsg.go 6KB
productInfoCreateLogic.go 5KB
loginAuthLogic.go 5KB
productManage.go 5KB
main.go 5KB
method.go 5KB
multiImportLogic.go 5KB
spec.go 5KB
sceneLinkage.go 5KB
assemble.go 5KB
gateway_test.go 5KB
suncalc.go 5KB
deviceRegisterLogic.go 5KB
model.go 5KB
共 832 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
十小大
- 粉丝: 9152
- 资源: 2553
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功