构建一个支撑10万设备的虚拟电厂IoT高效的平台

news/2025/9/24 18:43:46/文章来源:https://www.cnblogs.com/slgkaifa/p/19109788

构建一个支撑10万设备的虚拟电厂IoT高效的平台

构建一个支撑10万设备的虚拟电厂IoT平台

本文通过实践经验以及构想设计分析基于虚拟电厂业务的IoT平台该如何去设计。首先我们先介绍一下IoT平台详细设计的内容,然后我们来分析一下IoT平台的技术架构的性能指标以及不同体量的IoT平台需要如何进化。

一、IoT平台详细设计

1. 技术栈选择

硬件层

传感器和设备:用于收集各种能源材料,如太阳能板、风力发电机、储能体系等。

网关:用于连接传感器和设备到网络,如Modbus (RTU/TCP)、DL/T645、IEC 102、IEC 104等。

软件层

消息队列:如EMQX(用于处理设备消息),支持MQTT协议。

数据库:如TDengine(用于存储和分析时间序列数据)。

后端服务:Spring Cloud微服务架构,用于处理业务逻辑,如资源调度、优化算法等。

云平台

云服务:如阿里云、AWS、Azure等,提供计算资源、存储、网络等基础设施。

2. 系统架构设计

2.1 数据采集与传输

设备接入:通过网关和传感器将数据实时传输到IoT平台。

协议支持:确保支持多种通信协议,如MQTT、CoAP等。

2.2 信息存储与管理

时间序列数据库:使用TDengine存储大量的时间序列数据,协助快速查询和分析。

信息清洗与预处理:在数据入库前进行清洗和预处理,确保信息质量。

2.3 数据处理与分析

实时数据处理:利用流处理框架(如Flink)进行实时数据分析。

高级分析:使用机器学习模型进行能源预测和优化调度。

2.4 业务逻辑与调度

微服务架构:采用Spring Cloud构建微服务,实现资源的调度和优化。

调度算法:开发或集成先进的调度算法,如遗传算法、模拟退火算法等,以达成最优的能源分配。

二、IoT平台的技术架构

回顾了过去iot平台设计和实践经验,以及调研了市面上的开源iot平台,最终发现iot实际上解决方案大同小异,iot平台核心定义就是由感知层、网络层、应用层组成,虽说各层技能栈选型存在些许差异,只是总体上都是类似的,如下图所示是我抽象设计的一款iot平台架构:

这里感知层和网络层就是协议适配解析网关模块,应用层就是业务系统,iot平台的特性就是多协议支持和适配、海量材料上传以及数据时效性高、海量素材实时计算。这里网关层就是设计用来满足第一特性的,基于数据的海量特性这里选用了Kafka、Flink、TDengine、hive,接下来我将分别介绍一下技术选型的和架构设计的思考。

Kafka

开源的分布式流数据平台,特性是高可扩展、高吞吐量与低延迟、持久性与可靠性,而且kafka在大数据领域实践案例丰富,单机性能可以达到10万级别吞吐量。

Flink

开源的流处理分布式计算框架,具备低延迟、高吞吐、高可用等特性,通过和市面上Apache Spark Streaming进行不同维度对比之后选用。

TDengine

目前应用场景较多,另外由于我们做电网业务,TDEngine正好是国产化同类型数据库里面BeachMark结果较好的,于是进行了选用,有如下特性:

hive

建立在Hadoop上的数据仓库软件,用于查询和管理存储分布式环境的大规模材料集。可以轻松处理PB级别的数据。一个设计良好的Flink作业,在匹配的硬件和数据源/接收器帮助下,达到每秒数百万至数千万条消息的吞吐量是常规操作。而要冲击每秒亿级的吞吐,则需要对上述每一个环节进行极致的优化。

以上分别简单描述了核心组件的选型分析以及能够支撑的业务体量,由上面数据许可初步得出这套架构配合相应的服务器资源能够轻松达到10万级别吞吐量,如果集群和分布式模式百万级也能够实现、数据体量实际上没有限制。

总结

本文结合自己iot方面的经验对iot平台的设计进行了初步的描述其中包括技术选型,使用到的技术栈,抽象架构图,业界iot平台实际上都大同小异,而虚拟电厂平台属于电网业务,在网关层面有行业特点,整体架构和核心设计思路没有太大区别,大家设计过程中开源收集开源产品以及各大厂商取长补短,能够很快的设计出一款适合自身业务的iot平台。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/916101.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

B1I、B1C、B2a双频北斗卫星定位芯片AT9850B-F7N-22

型号:AT9850B-F7N-22 卫星系统:B1I、B1C、B2a双频 芯片等级:工规 工作温度℃:-40~85 AT9850B-F7N-22是一款高性能低功耗双频单北斗卫星导航接收机SOC单芯片,芯片集成射频前端和数字基带、多模式卫星信号处理引擎…

2025 国产代码托管新局:Gitee 领跑本土生态 - 实践

2025 国产代码托管新局:Gitee 领跑本土生态 - 实践2025-09-24 18:36 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; disp…

Wi-Fi技能——网络安全

Wi-Fi技能——网络安全pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &quo…

石家庄手机网站建设公司教您如何申请企业邮箱

目录 什么是文件包含漏洞? 文件包含的环境要求 常见的文件包含函数 PHP伪协议 file://协议 php://协议 php://filter php://input zip://、bzip2://、zlib://协议 zip:// bzip2:// zlib:// data://协议 文件包含漏洞演示 案例1:php://inp…

idea打开properties文件中文乱码问题

1 修改file encoding配置 2 修改成utf8后,发现==号后面的中文还是显示的字母, 把transparent Native-to-ascii conversion的勾勾打上就可以了。

完整教程:【开源】基于STM32的智能车尾灯

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

专业模板网站制作网站维护中页面设计

模块的引入方式:1.import 模块名:导入模块中的所有内容(引入多个用逗号分隔)import random,time2.from 模块名 import 函数名1,函数名2...导入部分模块(导入部分的话直接使用)3.from 模块名 imp…

机动数据集ESA

机动数据集ESA哨兵1卫星 S1 处理 POD的卫星参数,提供了质量和机动的历史文件。不过好像是用于轨道确定的,我要怎么用它还要再琢磨一下。 哥白尼门户网站提供的 哨兵1卫星 的数据 哨兵-1 |哥白尼数据空间生态系统 我国…

人机共生:AI如何重塑招聘全流程,赋能HR战略升级

当前,中国 AI 招聘市场已从 “技术概念” 成为 HR 应对招聘痛点的 “刚需工具”。那么,让我们聚焦更具实操价值的 “全流程场景落地” 与 “行业挑战突破”,结合 HR 日常工作中的真实痛点,分析 AI 如何渗透招聘各环…

hot100题简单题

力扣136题 只出现一次的数字采用异或的方法class Solution { public:int singleNumber(vector<int>& nums) {int x = 0;for(int num:nums){ //1.遍历 numx执行异或运算x ^= num;}return x; …

python自动化操作PDF

一、模块安装pip install pypdf2 -i https://pypi.tuna.tsinghua.edu.cn/simple #模块主要作用: 读取、写入、分割、合并PDF文件 pip install pdfplumber -i https://pypi.tuna.tsinghua.edu.cn/simple #模块主要作用…

注意事项

线段树调用 build 的时候注意是否 \(l>r\),否则会爆。 写 __int128 之类的输出判断值为 0。

完整教程:【数据结构】 ArrayList深入解析

完整教程:【数据结构】 ArrayList深入解析pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

完整教程:PyCharm 在 Linux 上的安装指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

产品经理如何借力项目管理软件,驾驭复杂项目并准时上线?

在缺乏专职项目经理的团队中,产品经理常需身兼数职,确保项目按时交付。本文将以敏捷项目管理思维为纲,结合PMP等经典理论,拆解项目启动、实施、收尾三大阶段的核心要点,并详解如何利用PJMan项目进度管理软件将方法…

网站死循环上海比较好的服装外贸公司

在Linux操作系统下进行开发&#xff0c;编写Makefile似乎是不可缺少的事情。但是对于一个比较大的工程&#xff0c;编写一个符合规范的Makefile并非易事。而且由于Makefile的各种显式&#xff0c;隐式规则&#xff0c;加之平时并不经常编写Makefile&#xff0c;导致我们写一个M…

朝阳网站开发联系电话网站备案信息核验单

简介&#xff1a; ![img](https://img.alicdn.com/tfs/TB1ZTW4VEY1gK0jSZFMXXaWcVXa-2304-1194.png) **越高级别的程序员往往越看重代码质量。** 本篇文章主要聊一下在团队开发过程中&#xff0c;如何做到代码质量的管控与提升。首先需要有一套规范&#xff0c;定义什么是好的代…

分布式 ID 生成方案实战指南:从选型到落地的全场景避坑手册(二) - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

公钥密码与可证安全概述

公钥密码与可证安全概述 Generated By 小艺(doge公钥密码与可证安全摘要:本报告系统阐述了公钥密码学与可证安全理论的核心关系及其演进。公钥密码学基于非对称密钥机制(公钥加密、私钥解密/签名),其安全性根植于…