[发明专利]微服务分库方法、系统和介质在审
申请号: | 202010993544.8 | 申请日: | 2020-09-21 |
公开(公告)号: | CN112148710A | 公开(公告)日: | 2020-12-29 |
发明(设计)人: | 高智意;何伟;李珂辰 | 申请(专利权)人: | 珠海市卓轩科技有限公司 |
主分类号: | G06F16/21 | 分类号: | G06F16/21;G06F16/25 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 叶琦炜 |
地址: | 519000 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 微服 务分库 方法 系统 介质 | ||
本发明公开了一种微服务分库方法、系统和介质,该方法包括以下步骤:扫描数据库中所有的表,创建概要表,所述概要表存储所述所有的表的表名;将所述概要表中的所述表名进行加前后缀处理之后,构建DFA树;扫描微服务的所有配置文件和Java的源代码文件,将得到的表名的字符串通过所述DFA树进行匹配,将匹配完成的表名及其对应的微服务的名称存储到微服务表;对所述微服务表中的数据进行调整处理之后,进行微服务分库处理。本发明至少具有以下有益效果:能够通过程序算法,便捷的查询出微服务使用到的数据库表。
技术领域
本发明涉及业务中台架构领域,特别涉及一种微服务分库方法、系统和介质。
背景技术
目前微服务架构趋势越来越明显,中台领域也逐渐明朗,传统的单个服务已经越来越满足不了高并发,高可用的需求了,公司原有系统的状况为15个微服务都同时访问同一个数据库,为了提高存储的性能,通常情况下会对每个微服务进行拆分成一个库来处理,以减轻存储压力,我们需要把这个数据库中的表格,按照微服务中使用的表格来进行拆分和归类。
现有的分库方法是通过人工去查找每个微服务中所属的表格,这种方式需要对每个微服务中的文件都进行一次排查,工作量大,并且容易出错。找回,也会费一番周折,耗时耗力。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种微服务分库方法,能够通过程序算法,便捷的查询出微服务使用到的数据库表,并进行自动划分微服务,创建数据库,迁移数据表和数据。
本发明还提出一种微服务分库系统。
本发明还提出一种实施上述微服务分库方法的计算机可读存储介质。
根据本发明的第一方面实施例的一种微服务分库方法,所述方法包括以下步骤:S100、扫描数据库中所有的表,创建概要表,所述概要表存储所述所有的表的表名;S200、将所述概要表中的所述表名进行加前后缀处理之后,构建DFA树;S300、扫描微服务的所有配置文件和Java的源代码文件,将得到的表名的字符串通过所述DFA树进行匹配,将匹配完成的表名及其对应的微服务的名称存储到微服务表;S400、对所述微服务表中的数据进行调整处理之后,进行微服务分库处理。
根据本发明实施例的微服务分库方法,至少具有如下有益效果:
(1)通过DFA算法高效的计算出文件中存在的数据表;
(2)多个微服务同时用到一张表,可以通过sql查询很便捷的进行筛选出来;
(3)自动创建数据库,自动表拆分,自动数据迁移,便捷的数据迁移;
(4)分库时程序代替人工处理,在效率上由很大的提升,减少放错的机会。
根据本发明的一些实施例,所述方法还包括:将所有微服务的源代码放置在同一文件夹。
根据本发明的一些实施例,所述步骤S200包括:将单个字符作为前缀添加的到所述表名的前面,作为后缀添加到所述表名的后面,基于添加过所述前缀和后缀的表名构建DFA树。
根据本发明的一些实施例,所述步骤S300包括:S301、逐行扫描一微服务的配置文件或Java的源代码文件,扫描到SQL语句;S302、将所述SQL语句作为输入字符串输入到所述DFA树进行匹配;S303、当匹配到前缀字符时开始基于所述DFA树进行表名匹配;S304、匹配成功后将匹配到的表名和所述微服务的名称存储到所述微服务表中。
根据本发明的一些实施例,所述步骤S400包括:S401、根据各微服务的业务,对所述微服务表中的数据进行调整。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海市卓轩科技有限公司,未经珠海市卓轩科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010993544.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:存储物品全生命周期安全智能管控系统
- 下一篇:模块化权限控制管理方法及系统