数据中台架构设计

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

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

一、关键功能需求

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、低成本:在满足以上原则前提下,学习成本低,有较完善的手册文档。

  • 34
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 19
    评论
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿进阶

千言万语都不及一句“谢谢”

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值