热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于springboot注解的mysql通用数据加载方案的简单实现

一、背景在一些工程中,从DB加载数据方式基本都是一样,但是各处分散,互不复用。所以,诞生了一个数据加载通用方案,旨在使用方便,提高开发效率和性能。二、框架简介语言:纯Java开发定

一、背景

在一些工程中,从DB加载数据方式基本都是一样,但是各处分散,互不复用。所以,诞生了一个数据加载通用方案,旨在使用方便,提高开发效率和性能。

二、框架简介

语言:纯Java开发
定位:应用在启动时全量加载DB数据,在运行中增量加载到内存做处理。 一个简单的数据加载框架。

三、工作原理

基于spring boot注解的mysql通用数据加载方案的简单实现

原理描述:

1、基于注解,以及Spring的 BeanPostProcessor完成对象实例化、配置、初始化之后放入内存缓存***第2步使用。
2、基于Spring 的 SmartLifecycle ,当Spring容器加载所有bean并完成初始化之后,会接着回调实现该接口中对应的方法,该方法中便实现了全量加载的逻辑。

四、多机房、多节点数据校验功能

基于spring boot注解的mysql通用数据加载方案的简单实现

原理描述:

1、在每个job数据加载完毕后会往record表中插入一条消息记录,消息内容就是数据加载的:应用ID(applicationID)+应用名(applicationName)+节点(IP)+数据加载类的全路径(classPath)、加载数据数目、加载类型、加载时间、耗时等信息。
2、用户在打开的页面刷新即可获取数据加载详情。
3、采用异步插入的方式是为了不影响应用正常启动的速度。

第三方工程接入系统要求:
应用的application.yml 或者application.properties需要有applicationID以及applicationName两个属性以便在portal系统查看。Pom加入依赖。

六、补充说明

1、关于全量定时加载

因为bean均为Elastic Job的Job实例,所以,在运行中可根据配置的cron表达式进行定时加载,此时前置依赖的关系已经变得不重要了,因为在启动的时候已经有加载过,如果有非常强的实时性依赖,业务中可自行根据业务条件来保证。
(增量定时加载同理)
解决方案:业务自行保证

2、关于全量前置依赖中的异步任务

因为框架设计要简单些,就不嵌入代码到业务类使用观察者模式通知依赖方的模式,所以这个框架无法保证你前置依赖任务中的异步任务是否执行完毕。
解决方案:如果前置依赖中有异步任务,请保证异步任务执行完毕后再return。


推荐阅读
author-avatar
柳辰光
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有