掌桥专利:专业的专利平台
掌桥专利
首页

分布式集群的数据库连接方法及装置

文献发布时间:2023-06-19 12:14:58


分布式集群的数据库连接方法及装置

技术领域

本发明涉及分布式技术领域,尤其涉及一种分布式集群的数据库连接方法及装置。

背景技术

在分布式集群中访问数据库,当任务分发到分布式集群中的任意节点上时,总需要在该节点服务器重新创建一个数据库连接,而任务每次执行完毕连接关闭,下次重新分配到随机节点又创建新的数据库连接,连接频繁。每个任务每个节点都需要创建连接,连接数增加;而且一次任务结束就会断开连接,下次分配到该服务器仍需重复连接数据库,程序执行一次或许会连接成千上百次,这样不仅程序执行重复连接,不仅降低了工作效率,而且也会对数据库访问造成很大的负担。

发明内容

本发明实施例提供一种分布式集群的数据库连接方法,用以提高工作效率,减轻数据库的压力,该方法包括:

根据提交的程序,在分布式集群中分配程序运行所需的至少一个服务器资源;

在程序运行所需的全部服务器节点上创建与mysql数据库的连接;

程序运行的每个任务在对应的服务器节点上执行mysql操作时,调用已经创建好的所述服务器节点对应的与mysql数据库的连接。

具体实施例中的分布式集群的数据库连接方法,还包括:

在程序运行结束后且释放服务器资源前,关闭所有创建的与mysql数据库的连接。

另一具体实施例中所提供的分布式集群的数据库连接方法,还包括:

在分布式集群中配置与mysql数据库连接的配置参数。

具体实施时,程序运行的每个任务在对应的服务器节点上执行mysql操作时,调用已经创建好的所述服务器节点对应的与mysql数据库的连接,包括:

将程序执行分成多个任务;

根据每个任务,确定执行每个任务的服务器IP;

在每个任务在对应的服务器节点上执行mysql操作时,根据每个任务的服务器IP,确定所述服务器节点对应的已经创建好的与mysql数据库的连接,调用所述与mysql数据库的连接。

本发明实施例还提供一种分布式集群的数据库连接装置,用以提高工作效率,减轻数据库的压力,该装置包括:

资源分配模块,用于根据提交的程序,在分布式集群中分配程序运行所需的至少一个服务器资源;

连接创建模块,用于在程序运行所需的全部服务器节点上创建与mysql数据库的连接;

连接调用模块,用于程序运行的每个任务在对应的服务器节点上执行mysql操作时,调用已经创建好的所述服务器节点对应的与mysql数据库的连接。

具体实施例中的分布式集群的数据库连接装置,还包括:

连接关闭模块,用于在程序运行结束后且释放服务器资源前,关闭所有创建的与mysql数据库的连接。

另一具体实施例中的分布式集群的数据库连接装置,还包括:

配置模块,用于在分布式集群中配置与mysql数据库连接的配置参数。

具体地,所述连接调用模块,具体用于:

将程序执行分成多个任务;

根据每个任务,确定执行每个任务的服务器IP;

在每个任务在对应的服务器节点上执行mysql操作时,根据每个任务的服务器IP,确定所述服务器节点对应的已经创建好的与mysql数据库的连接,调用所述与mysql数据库的连接。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述分布式集群的数据库连接方法。

本发明实施例也提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述分布式集群的数据库连接方法的计算机程序。

本发明实施例中,通过根据提交的程序,在分布式集群中分配程序运行所需的至少一个服务器资源;在程序运行所需的全部服务器节点上创建与mysql数据库的连接;程序运行的每个任务在对应的服务器节点上执行mysql操作时,调用已经创建好的服务器节点对应的与mysql数据库的连接。通过提前在程序运行所需要的全部服务器节点上创建与mysql数据库的连接,运行时直接调用,相较于重复连接数据库的现有技术,能够避免程序执行过程中的重复连接,不仅提高程序执行的工作效率,还能够减轻数据库的压力。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中分布式集群的数据库连接方法的示意图。

图2为本发明具体实施例中步骤103的实现方法示意图。

图3为本发明一具体实施例中分布式集群的数据库连接方法的示意图。

图4为本发明另一具体实施例中分布式集群的数据库连接方法的示意图。

图5为本发明实施例中分布式集群的数据库连接装置的示意图。

图6为本发明一具体实施例中分布式集群的数据库连接装置的示意图。

图7为本发明另一具体实施例中分布式集群的数据库连接装置的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了更好地理解本发明实施例,首先对本发明实施例所涉及的专业术语进行解释:

mysql:mysql是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。mysql是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。mysql因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,mysql是管理内容最好的选择。

数据库连接:数据库连接,负责与进行数据库间通讯,SQL执行以及事务处理都是在某个特定Connection环境中进行的。可以产生用以执行SQL的Statement。

Spark:Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab(加州大学伯克利分校的AMP实验室)所开源的类HadoopMapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

分布式集群:分布式平台的基本原理是利用多台计算机来协同解决由单台计算机不能解决的问题,这类问题往往是由于数据规模超出了单机系统存储容量,或者计算量超出了单机系统的计算能力。利用分布式平台提供的资源共享和协同计算的能力,可以很好地解决大规模数据的处理问题。分布式平台在物理构成上,各主机之间通过高速的内部网络进行连接,在此基础上配置分布式管理系统,以对外提供硬件共享、软件共享、数据共享、服务共享等多种资源共享服务。

节点:指的是Spark集群中的driver、executor等服务器。

本发明实施例提供了一种分布式集群的数据库连接方法,用以提高工作效率,减轻数据库的压力,如图1所示,该方法包括:

步骤101:根据提交的程序,在分布式集群中分配程序运行所需的至少一个服务器资源;

步骤102:在程序运行所需的全部服务器节点上创建与mysql数据库的连接;

步骤103:程序运行的每个任务在对应的服务器节点上执行mysql操作时,调用已经创建好的上述服务器节点对应的与mysql数据库的连接。

由图1所示流程可以得知,本发明实施例中,通过根据提交的程序,在分布式集群中分配程序运行所需的至少一个服务器资源;在程序运行所需的全部服务器节点上创建与mysql数据库的连接;程序运行的每个任务在对应的服务器节点上执行mysql操作时,调用已经创建好的服务器节点对应的与mysql数据库的连接。通过提前在程序运行所需要的全部服务器节点上创建与mysql数据库的连接,运行时直接调用,相较于重复连接数据库的现有技术,能够避免程序执行过程中的重复连接,不仅提高程序执行的工作效率,还能够减轻数据库的压力。

具体实施时,首先在程序提交后,根据提交的程序,在分布式集群中分配程序运行所需的至少一个服务器资源,例如将分布式集群(包括服务器A至K共计11个)中的服务器A、B和E分配给当前提交的程序,以供程序执行。

分配服务器资源后,确定了程序运行所需的全部服务器节点,在程序运行所需的全部服务器节点上创建与mysql数据库的连接,并存储在对应的服务器节点上。

全部创建后,程序运行的每个任务在对应的服务器节点上执行mysql操作时,调用已经创建好的服务器节点对应的与mysql数据库的连接。具体实施例中,如图2所示,包括:

步骤201:将程序执行分成多个任务;

步骤202:根据每个任务,确定执行每个任务的服务器IP;

步骤203:在每个任务在对应的服务器节点上执行mysql操作时,根据每个任务的服务器IP,确定该服务器节点对应的已经创建好的与mysql数据库的连接,调用上述与mysql数据库的连接。

一个程序的执行,必定要分成多个任务完成,将程序执行分成多个任务,每个任务将会对应一个服务器节点,确定对应的服务器IP。当每个任务被分配给task(任务),各个task执行mysql数据库相关操作时,直接调用已创建好的数据库连接,不重复创建连接,不浪费数据库连接数和资源。

具体实施例中,为了进一步节省资源,避免浪费,一具体实施例中,提供的分布式集群的数据库连接方法,如图3所示,在图1的基础上,还包括:

步骤301:在程序运行结束后且释放服务器资源前,关闭所有创建的与mysql数据库的连接。

且为了更快更好地建立与mysql数据库的连接,另一具体实施例中,如图4所示,在图1的基础上,还包括:

步骤401:在分布式集群中配置与mysql数据库连接的配置参数。

具体实施过程中,该配置参数可以是地址、IP端口、用户名以及密码等相关参数信息。

下面给出一具体实例说明本发明实施例如何进行分布式集群的数据库连接。本例应用于在分布式系统下的数据库连接,主要应用在大数据集群等此类的分布式系统中,特别是在Spark分布式集群下的数据库连接。

在Spark程序提交,待资源分配完成后,创建Sparksession的同时,创建当前已分配的driver和executor节点与mysql数据库的连接,并存储在各自节点上。

待具体task在对应的executor执行mysql操作时,即调用初期已创建好的连接,不重复创建连接,不浪费数据库连接数和资源。

提前在各个executor和driver节点提前生成,存储在各节点上,使用时直接调用已存在的连接,不必每次创建,每次关闭,处理麻烦,浪费时间,浪费资源。

具体的过程,包括:

创建数据库连接:在ResourceManager分配完资源后确定为当前任务分配的资源后,紧接着就在executor和driver节点上创建与mysql数据库的连接。

管理数据库连接:Spark job执行时具体任务分配到task,各task执行mysql数据库相关操作时,直接调用已建立的数据库连接。

关闭数据库连接:在Spark程序执行最后,Sparkssesion关闭前,关闭建立的与mysql数据库的连接。

通过上述过程,让Spark大数据集群中的mysql数据库不用代码显式执行数据库连接。避免大数据集群中的重复连接、解决大数据计算性能下降,数据库谅解书压力过大等问题。且从集群层面解决mysql的连接问题。

为了实现上述过程,构建相关系统包括:

配置模块:用于在集群中配置mysql连接的相关配置信息,提供mysql连接的相关参数信息。

创建模块:用于为当前已分配到的资源服务器,创建与mysql数据库的连接。

管理模块:用于统一管理并调度创建模块已创建的与mysql数据库的连接,为程序分配任务所需的与mysql数据库的连接,按照当前所在服务器实时分配。

通过增加由集群统一管理的与mysql数据库的连接,程序编写过程中不需要考虑生成mysql连接,减少代码复杂度和冗余。通过增加了在资源分配初期创建mysql连接,程序结束释放资源前关闭mysql连接,程序执行前创建,结束后关闭,保证任务设计的服务器都创建连接,与任务无关的服务器不浪费连接。通过增加了mysql连接的管理模块,负责mysql连接的管理和使用分配。

使在Spark大数据分布式集群的mysql数据库访问更加简单,方便。降低了在使用mysql时的代码开发难度。提高了在使用mysql时的大数据任务执行性能。降低了大数据集群使用mysql时,mysql数据库连接的压力。

上述具体应用的实施仅为举例,其余实施方式不再一一赘述。

基于同一发明构思,本发明实施例还提供一种分布式集群的数据库连接装置,由于分布式集群的数据库连接装置所解决问题的原理与分布式集群的数据库连接方法相似,因此分布式集群的数据库连接装置的实施可以参见分布式集群的数据库连接方法的实施,重复之处不再赘述,具体结构如图5所示:

资源分配模块501,用于根据提交的程序,在分布式集群中分配程序运行所需的至少一个服务器资源;

连接创建模块502,用于在程序运行所需的全部服务器节点上创建与mysql数据库的连接;

连接调用模块503,用于程序运行的每个任务在对应的服务器节点上执行mysql操作时,调用已经创建好的上述服务器节点对应的与mysql数据库的连接。

具体实施例中,如图6所示的分布式集群的数据库连接装置,在图5的基础上,还包括:

连接关闭模块601,用于在程序运行结束后且释放服务器资源前,关闭所有创建的与mysql数据库的连接。

如图7所示的另一具体实施例中的分布式集群的数据库连接装置,在图5的基础上,还包括:

配置模块701,用于在分布式集群中配置与mysql数据库连接的配置参数。

具体实施过程中,连接调用模块503,具体用于:

将程序执行分成多个任务;

根据每个任务,确定执行每个任务的服务器IP;

在每个任务在对应的服务器节点上执行mysql操作时,根据每个任务的服务器IP,确定该服务器节点对应的已经创建好的与mysql数据库的连接,调用上述与mysql数据库的连接。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述分布式集群的数据库连接方法。

本发明实施例也提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述分布式集群的数据库连接方法的计算机程序。

综上所述,本发明实施例提供的分布式集群的数据库连接方法及装置具有如下优点:

通过根据提交的程序,在分布式集群中分配程序运行所需的至少一个服务器资源;在程序运行所需的全部服务器节点上创建与mysql数据库的连接;程序运行的每个任务在对应的服务器节点上执行mysql操作时,调用已经创建好的服务器节点对应的与mysql数据库的连接。通过提前在程序运行所需要的全部服务器节点上创建与mysql数据库的连接,运行时直接调用,相较于重复连接数据库的现有技术,能够避免程序执行过程中的重复连接,不仅提高程序执行的工作效率,还能够减轻数据库的压力。

虽然本发明提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。

本领域技术人员应明白,本说明书的实施例可提供为方法、装置(系统)或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

相关技术
  • 分布式集群的数据库连接方法及装置
  • 一种数据库连接分配方法和装置
技术分类

06120113228951