物联网平台+业务平台基本架构设计与优化想法

news2024/11/18 11:19:43

前言

      目前的交付底座有点老,而且集成的有点杂,计划是要升级下,先说想法,看领导做不做。

1 业务平台定位

      我们的愿景:通过物联平台赋能,让数据产生价值。
      为客户提供可视化的平台(数据价值依托我们的业务平台展现),客户根据自身品牌定位、业务领域,通过我们的物联平台选择物联设备整合数据,依托我们的物联平台在业务平台端打通上下行,通过规则引擎、计量计费等等将业务信息化、差异化、细分,让数据起飞,帮助客户实现信息化价值。

1.1业务平台的具体定位:

1、 交付底座
2、 业务展示数据支撑
3、 物联网平台“客户端”
4、 硬件、业务配置端、数据展示端
以下简称“交付底座”。

2现状

      经过近10年的行业沉淀、业务发酵、技术成长,交付底座在支持各行各业的业务日积月累中,相关依赖版本、JDK等,没有与时俱进的更新。而且除了主分支,基础代码也在不断分裂。在技术的发展中,很多依赖已经不维护了,甚至有的还爆出了安全漏洞。所以,交付底座到了需要更新的时候、业务到了需要细分的节点。

3优化目标

1、 更新springboot到最新版本
2、 更新相关依赖到最新版本
3、 业务分化上微服务(这点受各种资源限制,可能不太现实,那么退而求其次)
4、 业务细分模块化
5、 大数据模块剥离,数据查询请求数据交换中心(数仓)
6、 关键模块可以考虑重构

4优化思路

4.1架构优化图:

在这里插入图片描述
                                                                        架构图一
在这里插入图片描述
                                                                        架构图二

4.2优化说明

      这里对整体架构理解可能有误,但是不影响本次优化。其实就想优化引入数据交换中心(数仓)模块,方便大数据统一管理,全生命周期记录、各状态大数据分析。
以上2个优化方案,个人倾向方案二,解析层就可以将数据存储入仓,后面可以做数据量比对,或使用flink等流处理引擎从上报源头做实时解析,实现数据全生命周期记录等等,用flink可以做的事情还挺多的。计量、计费、规则、场景驱动等等,真的是可以让数据各维度产生价值。

5优化方案

5.1模块架构拆分设计:

在这里插入图片描述
以上是微服务架构,如果不采用微服务,那模块还是按照服务层拆分,API层统一。

5.2技术优化点

结合目前交付底座,有依赖升级、技术升级、实现升级等等,具体如下:
1、 springboot升级到3
2、 JDK级联升级到17
3、 MybatisPlus升级到最新版本
4、 Websocket前后端信息交互不采用websocket直连,重构为通过stomp协议
5、 升级规则引擎,采用最新且性能更强的js引擎Graalvm
6、 数据源不用阿里的druid,直接用springBoot默认的HikariCP
7、 容器不用内置的tomcat,改用性能更强的undertow
8、 增加连接数据交换中心(数仓)模块
9、 重构ORM使用JPA、tk的业务代码,统一使用MybatisPlus
10、 要么拆分自动任务到LTS或PoewrJob第三方自动任务模块,交付底座只提供API业务接口
11、 如果想自动任务个性化管理,可以自己通过Quartz实现任务配置、调度、执行
12、 不用security安全管理,自己实现token权限机制,区分多端请求(更方便对接)
13、 废除有侵入的swagger接口注释方式,统一编码写javadoc注释。统一采用idea + apifox uploader + apifox方式
14、 Kafka、ES等数据消费都转移到数据交换中心做处理(数据交换中心可以接入flink做处理)
15、 移除ETL,数据计算由数据交换中心承担
16、 信息推送服务移除到信息服务中心处理
17、 如果需要,健康检查用springBoot提供的actuator
18、 相关依赖数据库开启binLog,方便flink使用CDC数据处理

6总结

      实际上,这就是物联网 + 业务交付底座的基本架构,我的想法是要优化成这样,就我们目前的资源看,估计不现实。那位东家有资源,可以参考下。
      就写到这里,希望能帮到大家,uping!!!

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

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

相关文章

【王道数据结构】第二章 | 线性表

目录 2.1线性表的定义 2.2线性表的基础操作 2.3顺序表的定义 2.4顺序表的基本操作 2.5 线性表的链式表示 2.1线性表的定义 线性表是具有相同数据类型的n(n>0)个数据元素的有限序列,其中n为表长,当n0时线性表是一个空表。若用L命名线性表&#xf…

Block底层原理读书笔记-《高级编程- iOS与OS多线程和内存管理》(更新中)

1 一个Block 真正的底层都有些什么? Block会被解析成一个结构体(这里成为Block结构体),这个结构体里有: (1)isa指针(说明Block的本质是一个对象):指向Stack…

动态修改Azure DevOps区域路径或迭代路径的继承权限(Inhertiance)

Contents1. 场景描述2. 解决方案2.1 更改继承的接口:ChangeInhertiance2.2 获取区域路径的接口:ClassificationNodes1. 场景描述客户使用工作项模板,定制了一个设计变更流程,需要在不同的阶段(流程状态)控制工作项的更改权限。我们…

Grafana 系列文章(六):Grafana Explore 中的日志

👉️URL: https://grafana.com/docs/grafana/latest/explore/logs-integration/#labels-and-detected-fields 📝Description: Explore 中的日志 除了指标之外,Explore 还允许你在以下数据源中调查你的日志。 ElasticsearchInfluxDBLoki 在基…

[算法设计与分析考点4] 改进的串匹配算法——KMP算法

算法核心思想 在BF算法的基础上加以改进,BF算法中每次当前字符不相等时,主串S要回溯到其下一个字符处,模式串T要回溯到 j0 位置进行下一趟的匹配。然而,大多数情况下,这种回溯是没有必要的,非常耗时且效率低…

qt入门介绍

1.Qt 是一个跨平台的 C开发库。主要用来开发图形用户界面(GUI)程序。Qt 虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部;Qt 除了可以绘制漂亮的界面(包括控件、布局、交互&…

【css】前端拉下代码后,node-sass sass-loader 与node版本不符怎么办

因为每次node和sass版本匹配都容易出现问题, 所以如果我自己开发,我不使用sass或者less,只用原生css 但如果是拉下来的项目,别人已经成功使用,webview版本 和 sass已经匹配,只需考虑 node版本匹配。 根据…

Hive分析函数系列文章

Hive分析窗口函数(一) SUM,AVG,MIN,MAXhttps://blog.csdn.net/weishuai90/article/details/128843715 Hive分析窗口函数(二) NTILE,ROW_NUMBER,RANK,DENSE_RANKhttps://blog.csdn.net/weishuai90/article/details/128858824 Hive分析窗口函数(三) CUME_DIST,PERCENT_RANKhttp…

Object类有什么作用?怎样使用Object类?

在Java中提供了一个Object类,它是所有类的父类,即每个类都直接或间接继承自该类,因此,Object类通常被称之为超类、基类或根类。当定义一个类时,如果没有使用extends关键字为这个类显示地指定父类,那么该类会…

【微积分易错点总结】函数、极限和连续

🚀write in front🚀 📜所属专栏: 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是对我最大的激励…

DSPE-PEG-DOTA,磷脂聚乙二醇大环配体 二硬脂酰基磷脂酰乙醇胺- 聚乙二醇-四氮杂环配体

中文名称:二硬脂酰基磷脂酰乙醇胺- 聚乙二醇-四氮杂环配体 英文名称:DSPE-PEG-DOTA 别称:1,2-distearoyl-sn-glycero-3-phosphoethanolamine-poly(ethylene glycol)-DOTA PEG分子量:1000、2000、3400、5000等等 用 途&#xf…

《流浪地球2》的现实倒影(一):从量子计算机到MOSS

编者按:跟大家一样,《流浪地球2》的上映让我们感到无比兴奋。作为科技领域的内容创作者,在《流浪地球2》中不仅看到了中国科幻电影与电影工业的崛起,更看到了大量现实中真实存在的科技脉络。由于这部电影在科技方面的基本功非常扎…

RK3568平台开发系列讲解(驱动基础篇)自旋锁详解

🚀返回专栏总目录 文章目录 一、什么是spinlock 自旋锁二、什么是raw_spinlock原始自旋锁三、自旋锁的使用3.1、spinlock 自旋锁相关API3.2、raw_spinlock原始自旋锁相关API沉淀、分享、成长,让自己和他人都能有所收获!😄 📢自旋锁用于处理器之间的互斥,适合保护很短的…

Python枚举类定义和使用

一些具有特殊含义的类,其实例化对象的个数往往是固定的,比如用一个类表示月份,则该类的实例对象最多有 12 个;再比如用一个类表示季节,则该类的实例化对象最多有 4 个。针对这种特殊的类,Python 3.4 中新增…

@WebServlet注解的解释和使用

大家好,今天分享一下WebServlet注解 首先,我们要知道,我们要写一个servlet程序,web,xml里的配置项很重要,里面包含了很多关于类绑定,以及服务器资源的请求路径问题(就是注册) 先把我这个看一遍&#xff0c…

【蓝桥杯】历届真题 完全二叉树的权值(省赛)Java

【资源限制】 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 【问题描述】 给定一棵包含N个节点的完全二叉树,树上每个节点都有一个权值,按从上到下、从左到右的顺序依…

SpringBoot将项目打包成JAR包或者WAR包

SpringBoot将项目打包成JAR包或者WAR包前言打包成JAR包打包成WAR包打包遇到的问题Maven环境问题跳过测试并打包前言 本文开发工具使用IDEA,已配置好Maven环境,如果未配置的可以参考另外一篇文章: Maven如何配置阿里镜像及安装全步骤 打包成JAR包 默认…

【C++】继承——切片、隐藏、默认成员函数、菱形

文章目录一、继承概念及定义二、赋值转换——切片三、继承的作用域——隐藏四、派生类的默认成员函数五、继承与友元六、继承与静态成员七、菱形继承及菱形虚拟继承八、继承与组合九、结语一、继承概念及定义 概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最…

刚毕业小白软考中级什么专业合适?

如果只是想考取软考中级证书,可以考虑比较热门的考试项目,当然具体还是要看和自己的职业发展和需求是否匹配为前提,这样对于自己今后的职业生涯规划也有一定帮助。中级科目介绍:软考中级备考攻略:反正只要认真备考&…

使用PyTorch构建卷积GAN源码(详细步骤讲解+注释版) 02人脸图片生成 上

阅读提示:本篇文章的代码为在普通GAN代码上实现人脸图片生成的修改,文章内容仅包含修改内容,全部代码讲解需结合下面的文章阅读。 相关资料链接为:使用PyTorch构建GAN生成对抗 本次训练代码使用了本地GPU计算。 1 CelebADataset类…