一款基于 Spring Cloud 的 100% 完全开源、分布式的物联网平台

钓友宝(微信小程序):一款专门为钓友开发的免费分享钓点地图与实时天气的软件,地图中标记了所有野钓、钓场、公共水域等的精确位置,支持导航、预测钓鱼位置的鱼等功能。

DC3 是一个强大的开源物联网 (IoT) 平台,基于Spring Cloud构建,旨在为开发者提供快速、高效的物联设备接入解决方案。该平台支持分布式架构,能够轻松扩展以满足亿级设备的接入需求。

通过 DC3,开发者可以专注于业务逻辑的实现,而无需担心底层架构的复杂性。借助其强大的生态系统和社区支持,用户可以轻松集成各种物联网设备和服务。

项目地址:

https://gitee.com/pnoker/iot-dc3

082f48bd9874e536c84cb1a65873e8e9.png

开源协议:IOT DC3 开源平台遵循Apache 2.0 协议。允许商业使用,但务必保留类作者,Copyright 信息。

DC3架构设计

6aaa776c48bac19514f9a80ce0f7e7a1.png

DC3 提供了一整套物联系统解决方案,包括设备管理、数据采集、实时监控和分析等功能。无论是小型项目还是大规模企业应用,DC3 都能帮助用户快速开发和部署物联设备接入项目,提升业务效率和灵活性。

DC3 平台的架构设计采用了微服务架构,充分利用了Spring Cloud的优势,以实现高可用性、可扩展性和灵活性。以下是 DC3 的主要架构组件及其功能描述:

1. 服务注册与发现:使用 Eureka 作为服务注册与发现的中心,所有微服务在启动时会向 Eureka 注册,其他服务可以通过 Eureka 查询到可用的服务实例。

2. API 网关:采用Zuul 或Spring Cloud Gateway作为 API 网关,负责处理所有外部请求。网关提供统一的入口,进行请求路由、负载均衡、身份验证和安全控制,简化了客户端与后端服务的交互。

3. 配置管理:使用Spring Cloud Config 进行集中化的配置管理,所有微服务的配置文件存储在 Git 仓库中,支持动态刷新和版本管理,确保配置的一致性和可追溯性。

4. 消息队列:引入Kafka 或RabbitMQ 作为消息中间件,支持异步通信和事件驱动架构。通过消息队列,服务之间可以解耦,提高系统的可靠性和可扩展性。

5. 数据存储:根据不同的业务需求,DC3 支持多种数据存储方案,包括关系型数据库(如MySQL )和非关系型数据库(如MongoDB )。数据层采用分布式存储,确保数据的高可用性和一致性。

6. 监控与日志:集成Prometheus 和macOGrafana 进行系统监控,实时收集各个服务的性能指标,帮助开发者及时发现和解决问题。同时,使用 ELK栈进行日志管理,便于日志的收集、分析和可视化。

7. 安全性:采用OAouth2 和JWT 进行身份验证和授权,确保系统的安全性。所有服务之间的通信通过 HTTPS 加密,保护数据传输的安全。

8. 容器化与编排:使用 Docker 容器化部署各个微服务,并通过 Kubernetes 进行容器编排,支持自动扩展、负载均衡和故障恢复,提升系统的运维效率。

通过以上架构设计,DC3 平台能够高效地支持亿级设备的接入与管理,满足企业级物联网应用的需求。

DC3 技术实现

DC3 平台基于Spring Cloud架构开发,构成了一系列松耦合且开源的微服务集合。该微服务集合由四个微服务层和两个增强的基础系统服务组成,能够提供从物理域数据采集到信息域数据处理的全方位服务。通过这种架构,DC3 平台实现了高效的数据管理和灵活的服务扩展,满足物联网应用的多样化需求。

5ca1dc758c17e8328a7b2b402b525d23.png

模块划分

  • 驱动层:驱动层提供标准化和私有协议的 SDK,用于连接物理设备。该层负责南向设备的数据采集和指令控制,支持快速开发和集成驱动。通过 SDK,开发者可以高效地实现设备驱动的定制化,简化了与各种设备的交互过程。

  • 数据层:数据层专注于设备数据的收集和存储,确保数据的高效入库。该层还提供数据管理接口服务,支持数据的查询、更新和删除操作,确保数据的完整性和一致性。

  • 管理层:管理层是系统的核心部分,负责微服务的注册与发现、设备指令接口、设备注册与关联配对,以及数据管理中心的功能。该层管理各类配置数据,并对外提供接口服务,确保所有微服务之间的高效交互和协调。

  • 应用层(部分完成):应用层提供数据开放、任务调度、报警与消息通知、日志管理等功能,具备与第三方平台的对接能力。该层旨在为用户提供灵活的应用场景,支持多种业务需求的实现,提升系统的整体价值。

安装使用

前提条件

  • 运行内存:系统要求至少 8GB 的运行内存,以确保在处理高并发请求和大规模数据时,能够保持良好的性能和响应速度。

  • Chrome 浏览器:推荐使用最新版本的 Google Chrome 浏览器,以获得最佳的用户体验和性能。

  • Git:Git 是一个分布式版本控制系统,广泛用于代码管理和协作开发。

  • Docker:Docker 是一个开源的容器化平台,允许开发者将应用及其依赖打包成轻量级的容器。

务必先查看驱动使用说明中的 前置概念 ,了解驱动的基本概念,否则可能会造成使用上的困惑。

https://doc.dc3.site/docs/driver/0-driver.html

启动命令

# 下载iot-dc3源码
git clone https://gitee.com/pnoker/iot-dc3.git
cd iot-dc3/dc3/demo
# 启动容器
docker-compose up -d

应用访问

在访问网页时,如果遇到无法加载的情况,请首先检查 Docker 服务是否正常启动。通常情况下,建议耐心等待一段时间,服务启动后网页会恢复正常。

一旦所有相关服务成功启动,您可以通过访问 http://localhost:8080 进入登录页面。

账号信息:默认账号和密码均为 dc3,对于 Web 页面,访问密码为 dc3dc3dc3。

如果遇到任何未提及的账号或密码不匹配的问题,请及时联系开源项目发布者以获取支持。确保拥有正确的凭据,以便顺利访问系统。

预览界面

e50aec40c75905f509d237464cd46902.png

c6e5bfbbad0730900e818f1f7c004234.png

984cf1fab88a146ad466209befdc9aab.png

技术文档:

https://doc.dc3.site/docs/function/0-directory.html

插播一下Java精选面试题(微信小程序):5000+道面试题和选择题,包含Java基础、并发、JVM、线程、MQ系列、Redis、Spring系列、Elasticsearch、Docker、K8s、Flink、Spark、架构设计、大厂真题等,在线随时刷题!

公众号“Java精选”所发表内容注明来源的,版权归原出处所有(无法查证版权的或者未注明出处的均来自网络,系转载,转载的目的在于传递更多信息,版权属于原作者。如有侵权,请联系,笔者会第一时间删除处理!

最近有很多人问,有没有读者交流群!加入方式很简单,公众号Java精选,回复“加群”,即可入群!

------ 特别推荐 ------

特别推荐:专注分享最前沿的技术与资讯,为弯道超车做好准备及各种开源项目与高效率软件的公众号,「大咖笔记」,专注挖掘好东西,非常值得大家关注。点击下方公众号卡片关注

点击“阅读原文”,了解更多精彩内容!

文章有帮助的话,点在看,转发吧!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值