当前位置: 首页 > news >正文

数据中台架构设计

由于当前项目需要对接多个不同的数据源,同时涉及到多端处理,而且需要考虑海量数据处理,还有总部与分部架构部署问题,因而整体技术栈倾向于大数据和分表分库式处理数据层接入问题。

简单讲,项目分为数据中台业务中台两个子系统,其中数据中台主要对接不同数据源,提供数据聚合,统一的数据报表。业务中台分为基础服务和业务服务,基础服务主要是提供统一网关,统一权限,日志,定时任务等服务。

一、关键功能需求

1、实时查询统计结果(妙级返回亿级海量数据查询)
2、支持离线数据按日生成统计报告,查询的时候直接查询生成好的报告,按5分钟或者其他固定时间片生成报告。
3、支持后续的系统架构扩展,支持dubbo框架和容器化技术。
4、支持总部和分部的数据对接。
5、支持自动化运维技术。

二、关键性能需求

1、接口s级返回查询结果。
2、遵循CAP原理。
3、支持TB级别消息和海量数据存入kafka

三、架构图参数

主要数据采集使用到技术栈为:Hive/Hbase/Hadoop+Flink(Spark Streaming/Struct Streaming),其中数据层分为两块,一块是数据采集层,一块是数据服务层。数据采集层需要对接多个不同的数据源。
1、来自总部的数据源。
2、来自于plc硬件采集的数据源。
3、来自于各个不同业务子系统接口。

数据采集层架构图参考

总部数据源对接: 总部和数据层主要通过消息队列kafka传递数据,也可以访问总部的接口,或者总部的消息队列,或者总部调用我们的接口数据,其中采用redis作为缓存,kafka作为内部消息队列,Flink/Spark stream/Struct Streaming数据解析kafka消息队列入库到hbasekafka高性能高可靠性目前是业内的一种主流技术用来解决不同系统之间的耦合问题。

plc对接服务: 这一块主要是通过netty服务来接收处理plc的上传数据,然后把数据写入到消息队列,通过flink实时解析,提供实时服务接口,并且通过分表分库插件写入关系数据库,kafka消息队列,redis作为缓存。

子系统对接服务: 通过统一restful风格接口对接不同的数据源,落盘到大数据系统和关系数据库,kafka作为消息队列,redis作为缓存。

统一基础服务层: 基于spring cloud技术栈,同时支持子系统未来改造服务系统。

业务层: 前段展示和业务报表等

四、关键质量需求

1、满足海量数据处理秒级返回。
2、超期数据能够妥善处理。
3、架构保持稳定性和伸缩性。

安全性:
1、防止基本SQL注入和XSS,CSRF漏洞。
2、密文传输。
3、使用https和白名单。

五、开发架构

类型可选技术
主机PC Server、IBM/HP小型机
操作系统Cendos7
应用服务器Spring Boot
Web服务器Nginx
负载均衡slob/Feign
消息中间件kafka
数据库Hbase Mysql
版本管理SVN
组件管理Maven
IDEIntelij
MVCSpring MVC
页面FreeMarker、SiteMesh
JSJquery、Jquery UI
容器Spring
持久化MyBatis、JdbcTemplate
服务Hessian、CXF
调度xxlJob
缓存Redis
日志SLF4J、Logback
XMLDom4j、Xstream

1、可控性:在短期时间内,架构师能够精通,开发人员能够掌握。
2、可扩展:考虑非功能性需求,在特定的场景下便于扩展。
3、高可用:选择框架、定制化框架必须要保证质量。
4、高效率:框架本身处理效率高,尽可能减少重复开发工作量,易于做性能调优。
5、低成本:在满足以上原则前提下,学习成本低,有较完善的手册文档。


http://www.mrgr.cn/news/9787.html

相关文章:

  • 设计模式 7 桥接模式
  • 【RabbitMQ高级特性】消息可靠性原理
  • 又一家建筑公司遭勒索袭击
  • C语言-有两个磁盘文件A和B,各存放一行字母,今要求把这两个文件的信息合并(按字母顺序排列),输出到一个新文件C中去-深度代码解析
  • 【hot100篇-python刷题记录】【腐烂的橘子】
  • VirtualBox下安装Centos7.9虚拟机的踩坑记录
  • 大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
  • MongoDB 创建数据库
  • 使用redis设计延迟队列
  • 梧桐数据库(WuTongDB):数据库技术中LR算法详解
  • 使用npm配置vue项目历程
  • BLE mesh model 汇总
  • SSD Fresh:固态硬盘优化专家
  • Android笔试面试题AI答之Kotlin补充考点
  • STM32标准库HAL库——MPU6050原理和代码
  • ABAP 程序间传递数据
  • Unity实现异步的三种方法
  • CSS的font-stretch属性与字符胖瘦控制
  • Kubernetes中etcd备份与恢复
  • 学习WebGl基础知识