著录项信息
专利名称 | 一种基于数据库连接的自动路由和负载均衡的方法及系统 |
申请号 | CN201210220053.5 | 申请日期 | 2012-06-29 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2012-12-05 | 公开/公告号 | CN102810116A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 安科智慧城市技术(中国)有限公司;武汉恒亿电子科技发展有限公司 | 申请人地址 | 江苏省南通市海安市曲塘镇工业集中区(胡庄村)
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 茂裕环保科技南通有限公司 | 当前权利人 | 茂裕环保科技南通有限公司 |
发明人 | 王志伟;杨正平;田志勇;胡志雄 |
代理机构 | 广东广和律师事务所 | 代理人 | 章小燕 |
摘要
本发明提供一种基于数据库连接的自动路由和负载均衡的方法和系统,该方法包括:建立各数据库之间的路由配置关系并保存在本地线程池中生成数据库连接路由表,所述数据库连接路由表中至少设置有用于记录各数据库连接权重和被访问次数的标记;当需要对某一数据库进行读写操作时,根据所述数据库连接路由表中的所述数据库连接权重和被访问次数,按照权重访问均衡原则对连接的数据库进行资源调度,实现所述对某一数据库进行读写操作,该方法实现了更为简单的数据连接访问和灵活的数据连接配置,确定了基于读写分离的访问配置,基于权重的和访问次数的路由实现了负载均衡,提高了效率,同时通过对连接的监听,很好地实现了对故障的转移。
1.一种基于数据库连接的自动路由和负载均衡的方法,其特征在于,包括:
建立各数据库之间的路由配置关系并保存在本地线程池中生成数据库连接路由表,所述数据库连接路由表中至少设置有用于记录各数据库连接权重和被访问次数的标记;
当需要对某一数据库进行读写操作时,根据所述数据库连接路由表中的所述数据库连接权重配置和被访问次数,按照预定的权重访问均衡原则对数据库进行资源连接调度,实现所述对某一数据库进行读写操作;
所述连接权重包括读权重和写权重,所述被访问次数包括:读处理次数和写处理次数;
所述权重访问均衡原则为:根据对应数据读写类型和权重以及处理次数按照计算规则获取最大值对应的一个数据库连接,假设数据读写类型为读操作,数据库连接获取最大值计算规则为:读权重/(读处理次数+1),假设数据读写类型为写操作,数据库连接获取最大值计算规则为:写权重/(写处理次数+1)。
2.根据权利要求1所述的基于数据库连接的自动路由和负载均衡的方法,其特征在于:所述数据库连接路由表进一步包括如下参数:数据库ID、数据库连接串、数据库类型、用户名、密码。
3.根据权利要求1所述的基于数据库连接的自动路由和负载均衡的方法,其特征在于:在数据库系统初始化时,根据所述路由配置关系对每个数据库进行初始化,并将所述数据库连接路由表保存在本地线程池中,同时将所述每个数据库连接的读处理次数和写处理次数初始化为0。
4.根据权利要求1或3所述的基于数据库连接的自动路由和负载均衡的方法,其特征在于:当实现所述对某一数据库进行读或写操作时,则将该数据库的读处理次数或写处理次数加1。
5.根据权利要求3所述的基于数据库连接的自动路由和负载均衡的方法,其特征在于:当需要对某一数据库进行读写操作时,首先对执行的数据操作语句进行解析,判定数据库是读操作还是写操作,再根据数据库连接路由表获取相应的连接进行数据处理操作。
6.根据权利要求1所述的基于数据库连接的自动路由和负载均衡的方法,其特征在于:当连接中的某一数据库处于不可用状态时,则从所述数据库连接路由表中删除该数据库的连接,直到其为可用状态,再添加进所述数据库连接路由表。
7.根据权利要求6所述的基于数据库连接的自动路由和负载均衡的方法,其特征在于:启用守护线程对所述数据库连接路由表中的每个数据库的连接进行定期连接测试来判断所述某一数据库是否为可用状态。
8.一种基于数据库连接的自动路由和负载均衡的系统,包括若干相互连接的数据库,其特征在于进一步包括:
数据库连接路由表,保存于本地线程池中,用于建立各数据库之间的路由配置关系,所述数据库连接路由表中至少设置有用于记录各数据库连接权重和被访问次数的标记;
数据库连接调度模块,用于当需要对某一数据库进行读写操作时,根据所述数据库连接路由表中的所述数据库连接权重和被访问次数,按照权重访问均衡原则对连接的数据库进行资源调度,实现所述对某一数据库进行读写操作;
所述连接权重包括读权重和写权重,所述被访问次数包括:读处理次数和写处理次数;
所述权重访问均衡原则为:根据对应数据读写类型和权重以及处理次数按照计算规则获取最大值对应的一个数据库连接,假设数据读写类型为读操作,数据库连接获取最大值计算规则为:读权重/(读处理次数+1),假设数据读写类型为写操作,数据库连接获取最大值计算规则为:写权重/(写处理次数+1)。
9.根据权利要求8所述的基于数据库连接的自动路由和负载均衡的系统,其特征在于,进一步包括:
数据库操作解析模块,用于对执行的数据操作语句进行解析,判定数据库是读操作还是写操作;
数据库连接监听模块,用于启用守护线程对所述数据库连接路由表中的每个数据库的连接进行定期连接测试来判断各数据库是否为可用状态。
一种基于数据库连接的自动路由和负载均衡的方法及系统\n技术领域\n[0001] 本发明属于信息技术领域,更具体地涉及一种基于数据库连接的自动路由和负载均衡的方法及系统。\n背景技术\n[0002] 现代社会已经进入了信息爆炸的时代,地球变得越来越小。比如IBM就提出了“数字地球”的概念,它将通过传感器嵌入和装备到现实生活中的各种物体中,并且被普遍连接,形成所谓“物联网”,然后将“物联网”与现有的互联网整合起来,实现人类社会与物理系统的整合,简而言之,就是将一切“实物”信息化。这形成了一个问题,未来的现实世界,都将会以“信息”的模式存储在庞大的数据库中,这就对数据库的建立和管理等相关技术,提出了更高的要求。\n[0003] 目前,大部分关系型数据库本身都提供了比较完善的数据复制方案,在数据访问层上都是基于连接池和数据库本身的数据集群访问机制来实现。由于关系型数据访问无非是对数据进行增加、删除、修改和查询,对数据的访问基于应用的不同一般实现读写分离,以提高数据的读写速度。在实现读写分离上都基于对已部署数据库对应的地址、用户名、密码进行固定配置去访问,这种固定配置一方面对程序的灵活性有一定的限制,二来不能灵活根据服务器处理性能进行数据处理的合理调配,同时在数据库出现故障时需要手动修改数据库地址配置来访问可用的数据库。\n发明内容\n[0004] 本发明的特征和优点在下文的描述中部分地陈述,或者可从该描述显而易见,或者可通过实践本发明而学习。\n[0005] 为克服现有技术的问题,本发明提供一种基于数据库连接的自动路由和负载均衡的方法,该方法包括:建立各数据库之间的路由配置关系并保存在本地线程池中生成数据库连接路由表,所述数据库连接路由表中至少设置有用于记录各数据库连接权重和被访问次数的标记;当需要对某一数据库进行读写操作时,根据所述数据库连接路由表中的所述数据库连接权重和被访问次数,按照权重访问均衡原则对连接的数据库进行资源调度,实现所述对某一数据库进行读写操作。\n[0006] 进一步地,该数据库连接路由表还包括如下参数:数据库ID、数据库连接串、数据库类型、用户名、密码。\n[0007] 其中,连接权重包括读权重和写权重,所述被访问次数包括:读处理次数和写处理次数。\n[0008] 进一步地,在数据库系统初始化时,根据所述路由配置关系对每个数据库进行初始化,并将该数据库连接路由表保存在本地线程池中,同时将该每个数据库连接的读处理次数和写处理次数初始化为0。\n[0009] 优先地,当实现所述对某一数据库进行读或写操作时,则将该数据库的读处理次数或写处理次数加1。\n[0010] 进一步地,当需要对某一数据库进行读写操作时,首先对执行的数据操作语句进行解析,判定数据库是读操作还是写操作,再根据数据库连接路由表获取相应的连接进行数据处理操作。\n[0011] 进一步地,当连接中的某一数据库处于不可用状态时,则从所述数据库连接路由表中删除该数据库的连接,直到其为可用状态,再添加进所述数据库连接路由表。\n[0012] 进一步地,启用守护线程对所述数据库连接路由表中的每个数据库的连接进行定期连接测试来判断所述某一数据库是否为可用状态。\n[0013] 本发明还提供了一种基于数据库连接的自动路由和负载均衡的系统,包括若干相互连接的数据库,进一步包括:数据库连接路由表,保存于本地线程池中,用于建立各数据库之间的路由配置关系,所述数据库连接路由表中至少设置有用于记录各数据库连接权重和被访问次数的标记;数据库连接调度模块,用于当需要对某一数据库进行读写操作时,根据所述数据库连接路由表中的所述数据库连接权重和被访问次数,按照权重访问均衡原则对连接的数据库进行资源调度,实现所述对某一数据库进行读写操作。\n[0014] 进一步地,还包括:数据库操作解析模块,用于对执行的数据操作语句进行解析,判定数据库是读操作还是写操作;数据库连接监听模块,用于启用守护线程对所述数据库连接路由表中的每个数据库的连接进行定期连接测试来判断各数据库是否为可用状态。\n[0015] 通过本发明技术方案的技术实现,同现有技术相比,至少具备如下优点:实现了更为简单的数据连接访问和灵活的数据连接配置,确定了基于读写分离的访问配置,基于权重的和访问次数的路由实现了负载均衡,提高了效率,同时通过对连接的监听,很好地实现了对故障的转移。\n[0016] 通过阅读说明书,本领域普通技术人员将更好地了解这些技术方案的特征和内容。\n附图说明\n[0017] 下面通过参考附图并结合实例具体地描述本发明,本发明的优点和实现方式将会更加明显,其中附图所示内容仅用于对本发明的解释说明,而不构成对本发明的任何意义上的限制,在附图中:\n[0018] 图1是本发明的总体技术方案流程图;\n[0019] 图2是本发明数据库连接的调度处理流程图;\n[0020] 图3是本发明的系统连接示意图。\n具体实施方式\n[0021] 以下结合附图对本发明的具体实施作进一步的详细描述。\n[0022] 如图1所示,本发明的总体技术方案是:101、在已经实现复制功能的数据库群间,建立各数据库之间的路由配置关系并保存在本地线程池中生成数据库连接路由表,数据库连接路由表中至少设置有用于记录各数据库连接权重和被访问次数的标记;102、当需要对某一数据库进行读写操作时,根据所述数据库连接路由表中的所述数据库连接权重和被访问次数,按照权重访问均衡原则对连接的数据库进行资源调度,实现对某一数据库进行读写操作,进而达到基于数据库连接层的自动路由和负载均衡。\n[0023] 关于数据库之间的路由配置关系,以下表作进一步的说明:\n[0024] \n[0025] 依路由配置关系建立的数据库连接路由表主要参数包括:数据库ID、数据库连接串、数据库类型、用户名、密码、读权重、写权重、读处理次数、写处理次数。\n[0026] 数据库连接路由表以TreeMap形式存储,具体构造如下:\n[0027] \n[0028] 其中,Key对应数据路由配置关系中的key,Value对象中的数据库连接List在初始化时将连接全部建立好,并保存供调用。\n[0029] 为了提高数据库的访问速度,在数据库系统初始化时,首先需要根据数据库路由配置关系对每个数据库连接进行初始化,并保存在本地线程池中,作为数据库连接路由表,同时将每个数据库连接的读处理次数和写处理次数初始化为0,一旦使用该数据库连接进行读写操作,则将相应的读处理次数和写处理次数加1。\n[0030] 为了便于数据库读写分离,将要执行的数据操作语句进行解析,判定数据库是读操作还是写操作,根据读、写操作由数据库连接调度模块根据数据库连接路由表获取相应连接进行数据处理操作。数据库操作解析,按数据库操作语句最前面的一个单词进行数据操作解析,具体规则,请参阅下表:\n[0031] \n 数据操作语句示例 最前面一个单词 解析结果\n select*from tb select 读操作\n insert into tb(a,b,c)values(1,2,3) insert 写操作\n update tb set b=22,c=33 where a=1 update 写操作\n delete from tb where a=1 delete 写操作\n[0032] 对于数据库连接的调度的具体流程,由于一般数据库系统中会有多个数据库连接资源,所以当需要对某一数据库进行读写操作时,根据数据库连接路由表中的数据库连接权重以及当前数据库连接被访问的次数进行比较,按照权重访问均衡原则对连接的数据库进行资源调度,实现对某一数据库进行读写操作,进而达到基于数据库连接层的自动路由和负载均衡。对于所谓的权重,它是一个相对的概念,是针对某一指标而言。某一指标的权重是指该指标在整体评价中的相对重要程度。本文提到的权重是读权重和写权重,都是通过配置决定的,如读权重为一个为1,一个为2,则2比1高。\n[0033] 具体流程,请参阅图2,包括如下步骤:\n[0034] 201、获取数据操作读写类型。\n[0035] 202、遍历数据库连接路由表。\n[0036] 203、根据对应数据读写类型和权重以及处理次数按照计算规则获取最大值对应的一个数据库连接。\n[0037] 204、根据数据读写类型将处理次数加1。\n[0038] 其中,数据库连接获取最大值计算规则为:假设数据读写类型为读操作,读权重/(读处理次数+1)。\n[0039] 如果计算值为0或路由状态为0,则不获取,表示此数据库仅为写数据库或不可用。\n[0040] 此外,在日常使用过程中,由于硬件设备的损坏或维护,导致数据库不能提供服务,一旦数据库连接监听模块发现数据库连接路由表中有坏掉的数据库连接,则从数据库连接路由表中移除该数据库的连接,直到数据库能提供服务,则再次添加到数据库连接路由表中,实现数据库连接故障转移。启用守护线程,负责对数据库路连接由表中每个数据库的连接进行定期连接测试,如果连接可用,则将路由状态置为1,如果连接不可用,则将数据库路由状态置为0。\n[0041] 基于以上方法,如图3所示,本发明还提供了一种基于数据库连接的自动路由和负载均衡的系统,包括若干相互连接的数据库,进一步包括:数据库连接路由表,保存于本地线程池中,用于建立各数据库之间的路由配置关系,所述数据库连接路由表中至少设置有用于记录各数据库连接权重和被访问次数的标记;数据库连接调度模块,用于当需要对某一数据库进行读写操作时,根据所述数据库连接路由表中的所述数据库连接权重和被访问次数,按照权重访问均衡原则对连接的数据库进行资源调度,实现所述对某一数据库进行读写操作。\n[0042] 该系统还包括:数据库操作解析模块,用于对执行的数据操作语句进行解析,判定数据库是读操作还是写操作;数据库连接监听模块,用于启用守护线程对所述数据库连接路由表中的每个数据库的连接进行定期连接测试来判断各数据库是否为可用状态。\n[0043] 以上参照附图说明了本发明的优选实施例,本领域技术人员不脱离本发明的范围和实质,可以有多种变型方案实现本发明。举例而言,作为一个实施例的部分示出或描述的特征可用于另一实施例以得到又一实施例。以上仅为本发明较佳可行的实施例而已,并非因此局限本发明的权利范围,凡运用本发明说明书及附图内容所作的等效变化,均包含于本发明的权利范围之内。
法律信息
- 2019-05-31
专利权人的姓名或者名称、地址的变更
专利权人由广州势必可赢网络科技有限公司变更为广州国音智能科技有限公司
地址由510000 广东省广州市天河区科韵路12号之一整栋(部位705)变更为510000 广东省广州市黄埔区黄埔东路3110号三社大楼二楼2009房
- 2018-01-12
专利权人的姓名或者名称、地址的变更
专利权人由安科智慧城市技术(中国)有限公司变更为安科机器人有限公司
地址由518034 广东省深圳市福田区深南大道特区报业大厦1306房变更为518034 广东省深圳市福田区深南大道特区报业大厦1306房
专利权人由武汉恒亿电子科技发展有限公司变更为武汉恒亿电子科技发展有限公司
- 2018-01-12
专利权的转移
登记生效日: 2017.12.22
专利权人由安科机器人有限公司变更为广州势必可赢网络科技有限公司
地址由518034 广东省深圳市福田区深南大道特区报业大厦1306房变更为510000 广东省广州市天河区科韵路12号之一整栋(部位705)
专利权人由武汉恒亿电子科技发展有限公司变更为空
- 2015-01-07
- 2013-01-30
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201210220053.5
申请日: 2012.06.29
- 2012-12-05
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2008-02-06
|
2007-09-19
| | |
2
| |
2009-02-18
|
2008-09-24
| | |
3
| |
2011-07-20
|
2010-09-20
| | |
4
| |
2012-04-04
|
2011-11-07
| | |
5
| |
2011-12-28
|
2011-08-22
| | |
6
| |
2008-04-30
|
2007-11-21
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |