一种基于引擎的分布式业务数据存取方法

文档序号:9911281阅读:259来源:国知局
一种基于引擎的分布式业务数据存取方法
【技术领域】
[0001]本发明涉及应用软件的性能处理领域,具体地说是一种基于引擎的分布式业务数据存取方法。
【背景技术】
[0002]应用软件的性能是考验系统能力的一个主要指标,现在的应用系统,可以通过扩展应用服务器的方式来分担应用服务器压力,这样性能瓶颈就转移到了数据库服务器上,数据库的性能瓶颈主要包括但不限于吞吐量、存盘队列压力、数据库并发锁等待,一些情况下为了兼容读取和写入,而增加的一些索引造成的性能问题。
[0003]如在ERP产品中,各个业务功能的数据存储到同一数据库中,不仅造成数据存储量大,而且从数据库中读取和写入数据时,很难避免执行冲突,造成数据读取或写入速度慢,甚至无法读取或写入数据。
[0004]专利号为CN105045816A的专利文献公开了一种大量数据的存取方法及系统,所述大量数据的存取方法包括以下步骤:设置数据路由规则;根据所述路由规则对数据库中存储的大量数据进行拆分存储。当所述数据路由规则为分库分表时,则按照原有数据库拆分复制出一个写库和一个读库。但是该专利不能彻底解决数据库存储量大,造成数据库性能差的冋题。
[0005]综上所述,如何解决业务数据读取和写入时的性能冲突是目前急需解决的技术问题。

【发明内容】

[0006]本发明的技术任务是针对以上不足之处,提供一种基于引擎的分布式业务数据存取方法,来解决如何解决业务数据读取和写入时的性能冲突的问题。
[0007]本发明解决其技术问题所采用的技术方案是:一种基于引擎的分布式业务数据存取方法,该方法包括如下步骤:
[0008](1)、不同的业务功能数据存储到不同的数据库中:
[0009]①、在数据库中设置基于业务模块的数据源配置功能;
[0010]②、在数据源管理中新建数据源;
[0011 ]③、将相应功能模块或者功能配置到各自的数据源中;
[0012](2)、相同的功能数据根据类型存储到不同的数据库中:
[0013]①、定义数据类型字段,数据类型字段为枚举类型;
[0014]②、在数据模型上选择数据类型字段;
[0015]③、支持在数据模型上设置每一个类型值对应的数据源;
[0016](3)、业务功能数据将读取和写入数据库分开:
[0017]①、在数据源管理中增加查询库数据源;
[0018]②、在数据模型定义中增加启用读写分离功能;
[0019]③、在数据模型定义中设置读取和写入数据源。
[0020]作为优选,所述步骤(I)中的业务模块采用模块列表,模块列表是基于业务从属关系的树列表,模块列表中包括以下属性:模块ID、模块编号和模块名称。
[0021]作为优选,所述步骤(I)中的数据源配置功能采用数据源配置列表,数据源配置列表是基于模块的数据源配置信息集合,数据源配置列表中每一行数据包括以下属性:数据源ID、数据源名称、数据源编号、数据源执行位置和数据库类型。
[0022]作为优选,所述步骤(I)中的数据源管理是基于主数据库的数据源配置列表,所有的业务应用的数据源都在该列表中。
[0023]作为优选,所述步骤(I)中的每一个模块独立配置相应的数据源,同一个模块内部的各个功能配置不同的数据源。
[0024]作为优选,所述步骤(2)中的数据类型字段包括值、名称和描述。
[0025]作为优选,所述步骤(2)中的每一个类型值均设置有数据源,且支持分库处理的业务数据符合以下要求:未被其他模块依赖,或者依赖只能提供接口 ;业务数据的各个类型之间没有交集。
[0026]作为优选,所述步骤(3)中的查询库数据源的查询性能优于普通数据库。
[0027]作为优选,所述步骤(3)中的读取和写入数据源设置后,根据数据库的类型,自动生成读取库和写入库的后台数据同步脚本、且自动将写入库中相应表的非主键索引删除。其中,如果分库的数据为基础字典(被其他模块依赖),则自动生成数据同步工具。
[0028]本发明的一种基于引擎的分布式业务数据存取方法和现有技术相比,具有以下有益效果:
[0029]1、本发明提供了一种基于引擎的数据库分离方法:第一部分,通过将不同业务模块之间的数据库分离,将业务功能存储分离开,来降低数据库压力;第二部分,同一个业务功能,通过根据数据类型不同将不同的数据保存到不同的数据库,来将同一个功能的数据库压力分解开;第三部分,将读取库和写入库分离开,规避了数据保存和读取的性能冲突,提高系统性能;通过以上三个部分的改造,从最大程度上提高了应用系统的数据库并发能力,而应用服务器的性能也可以直接通过扩展应用服务器的方式来提高,从而提高整个应用系统的性能;
[0030]2、本发明通过将不同的业务功能分配到不同的数据库、相同的业务数据分配到不同的数据库,来将并发压力分配到不同的多个数据库服务器中;通过配置数据库读写分离,保存时将不必要的索引删除,在查询库上增加索引,解决了业务数据读取和写入性能冲突的问题;
[0031]3、通过应用本发明的方法,将ERP产品中的各个业务功能拆分到不同的数据库中,从而降低了数据库的存储大小,将数据分离到不同的数据库服务器或者将数据库的读写分开,这样就可以尽可能的避免应用数据的执行冲突(包括写数据时的冲突、读数据时的冲突、所有业务功能访问同一个数据库的磁盘1压力),进而提高系统的并发性能。
[0032]由此可见,本发明具有设计合理、使用方便、一物多用等特点,因而,具有很好的推广使用价值。
【具体实施方式】
[0033]下面通过具体实施例对本发明作进一步说明。
[0034]实施例1
[0035]本发明的一种基于引擎的分布式业务数据存取方法,该方法包括如下步骤:
[0036](1)、不同的业务功能数据存储到不同的数据库中:
[0037]①、在数据库中设置基于业务模块的数据源配置功能;其中,业务模块采用模块列表,模块列表是基于业务从属关系的树列表,模块列表中包括以下属性:模块ID、模块编号和模块名称。数据源配置采用数据源配置列表,数据源配置列表是基于模块的数据源配置信息集合,数据源配置列表中每一行数据包括以下属性:数据源ID、数据源名称、数据源编号、数据源执行位置和数据库类型。
[0038]②、在数据源管理中新建数据源;其中,数据源管理是基于主数据库的数据源配置列表,所有的业务应用的数据源都在该列表中。
[0039]③、将相应功能模块或者功能配置到各自的数据源中,每一个模块独立配置相应的数据源,同一个模块内部的各个功能配置不同的数据源。
[0040](2)、相同的功能数据根据类型存储到不同的数据库中:
[0041]①、定义数据类型字段,数据类型字段为枚举类型
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1