数据存储装置、系统及方法与流程

专利2022-06-29  62


本申请一般涉及计算机技术领域,具体涉及一种数据存储装置、系统及方法。



背景技术:

软件应用程序的后端,提供本地数据到服务器端的存储的数据存储功能,并且提供存储数据的查询和修改功能。目前,对于软件应用程序的存储功能,是通过后端程序员来开发。对于业务逻辑简单的软件应用程序,在实现数据存储时,可以利用facebook公开开源的parse项目自动生成实现数据存储的代码。

对于一台服务器上运行多个软件应用程序时,或者,软件应用程序复杂时,parse项目无法将多个或一个复杂的软件应用程序的本地数据存储到服务器上,仍需要后端程序员手动开发存储程序,使得后端开发人员的工作量大,工作效率低。



技术实现要素:

鉴于现有技术中的上述缺陷或不足,期望提供一种数据存储装置、系统及方法,以解决实现数据存储时后端开发人员工作量大的问题。

第一方面,本申请实施例提供一种数据存储装置,该装置包括:

该控制服务模块,包括参数接收接口,该接口用于接收待存储数据的存储位置名称,该控制服务模块用于基于该存储位置名称启动该至少一个存储服务模块中的一个;

该存储服务模块,其包括状态请求接口,该接口用于提供该存储服务模块的状态值,该存储服务模块用于动态监听该存储位置名称对应的端口号,并基于该端口号提供请求路径来实现数据存储。

第二方面,本申请实施例提供一种数据存储系统,该系统包括至少一个数据存储服务器,该数据存储服务器包括如第一方面所述的数据存储装置。

第三方面,本申请实施例提供一种数据存储方法,该方法包括:

控制服务模块接收数据存储请求,该数据存储请求包括待存储数据的存储位置名称;

控制服务模块基于该存储位置名称启动该至少一个存储服务模块中的一个,该存储服务模块,其包括状态请求接口用于提供该存储服务模块的状态值,该存储服务模块用于动态监听该存储位置名称对应的端口号,并基于该端口号提供请求路径来实现数据存储。

第四方面,本申请实施例提供一种数据存储方法,该方法包括:本地服务器发送数据存储请求,该数据存储请求包括待存储数据的存储位置名称,该待存储位置名称对应至少两个数据存储服务器;

本地服务器选择该至少两个数据存储服务器中的目标数据存储服务器;

本地服务器将该选择结果发送至反向代理服务器,该反向代理服务器将该选择结果路由至目标存储服务器,

该目标存储服务器的控制服务模块接收该选择结果,该选择结果包括待存储数据的存储位置名称;

控制服务模块基于该存储位置名称启动该目标存储服务器的存储服务模块,该存储服务模块,其包括状态请求接口用于提供该存储服务模块的状态值,该存储服务模块用于动态监听该存储位置名称对应的端口号,并基于该端口号提供请求路径来实现数据存储。

综上,本申请实施例提供的数据存储装置、系统及方法,通过控制服务模块的参数接收接口来接收待存储数据的存储位置名称,并通过该存储位置名称启动该服务模块,使得该存储服务模块通过动态监听该存储位置名称对应的端口号为用户提供数据存储请求路径,从而实现了待存储数据的自动存储,并通过状态请求接口提供了该存储服务模块当前的状态值,避免了后端开发人员针对软件应用程序来开发存储功能的程序,减少了工作量,提高了工作效率。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1为本申请的实施例提供的数据存储装置的结构示意图;

图2为本申请实施例提供的数据存储系统的结构示意图;

图3为本申请实施例提供的数据存储方法的流程示意图;

图4为本申请另一实施例提供的数据存储方法的流程示意图;

图5为本申请的实施例的服务器的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关申请,而非对该申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与申请相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

可以理解,本申请实施例提供的数据存储装置、系统及方法,可适用于如下场景:

在一台服务器上运行有多个软件应用程序,即在一台服务器上,同时实现多个软件应用程序的本地数据的存储。

多台服务器上运行一个复杂的软件应用程序,即在多台服务器上实现该软件应用程序本地数据库的同时存储。

为了便于理解和说明,下面通过图1至图5详细解释本申请实施例提供的数据存储装置、系统及方法。

图1所示为本申请的实施例提供的数据存储装置的结构示意图。如图1所示,该装置可以用于一台服务器上运行有多个软件应用程序场景下的数据存储,该装置100可以包括布置在存储服务器上的控制服务模块110及至少一个存储服务模块120:

该控制服务模块110,包括参数接收接口111,该参数接收接口用于接收待存储数据的存储位置名称,该控制服务模块用于基于该存储位置名称启动该至少一个存储服务模块中的一个。该存储服务模块120,其包括第一状态请求接口121,该第一状态请求接口用于提供该存储服务模块的状态值,该存储服务模块用于动态监听该存储位置名称对应的端口号,并基于该端口号提供请求路径来实现数据存储。

具体的,本申请实施例提供的数据存储装置,可以在数据存储服务器上配置控制服务模块110及至少一个存储服务模块120。

该控制服务模块110用于启动存储服务模120,该控制服务模块可以包括参数接收接口111,该参数接收模接口可以接收待存储数据的存储位置名称,以根据该存储位置名称来启动存储服务模块。例如,该参数接收接口为配置的start接口,该start接口可以接收用户发送的数据存储请求消息,该请求消息中携带该存储位置名称,如alias参数。

该存储服务模块120可以为配置在存储服务器上的存储服务进程,该存储服务模块在启动后,可以动态监听存储位置名称对应的端口号。例如,可以监听控制服务模块传递的端口号,并基于该端口号提供数据存储的请求路径,来实现数据的存储。

在数据存储过程中,存储服务模块还可以利用第一状态请求接口121,接收本地服务器发送的状态请求消息,并向本地服务器返回该存储服务的当前状态。例如,alive接口,如果存储服务模块的存储进程正常,则可以返回ok,否则,可以切换至备份的存储服务模块上,以确保数据的正常存储。

优选的,本申请实施例提供的数据存储装置,该参数接收接口111还可以包括:

第一读取单元101,用于基于该存储位置名称,从其他数据库读取与该存储位置名称对应的相关数据,该相关数据包括基于该存储位置名称预先分配的端口号。

例如,可以根据该存储位置名称,从mysql数据库中读取与该存储位置名称对应的相关数据,该相关数据可以包括基于该存储位置名称预先分配的端口号,还可以包括主密钥(masterkey)、客户端秘钥(clientkey)、预留api参数、待存储数据的数据库连接地址及javascriptkey等。

可选的,该端口号可以根据该服务器上当前启动的存储服务模块的个数来确定,可以用个数加上偏移值,生成一个不重复的端口号。

第二读取单元102,用于读取预先配置的配置参数。

该配置参数可以包括该存储服务器的参数,如ip地址及当前的可用空间等。

生成单元103,用于基于该相关数据和配置参数生成读取文件。

例如,该生成单元可以将读取的上述数据组合成a.json文件,并保存在该存储服务器。

启动单元104,用于基于该读取文件启动该至少一个存储服务模块中的一个。

具体的,在将读取的数据保存后,可以利用pm2启动一个存储服务模块,即pm2读取a.json文件中的数据,并传递给存储服务模块,使得存储服务模块可以提供一个数据存储的请求路径,该请求路径的地址包括该端口号及该ip地址。例如,服务器ip为127.0.0.1,端口号为1300,则提供存储服务的地址为127.0.0.1:1300/1300。

优选的,本申请实施例提供的数据存储装置,该控制服务模块还可以包括:

停止接口112,其用于停止所述存储服务;和/或第二状态请求接口113,其用于请求该存储服务模块返回该状态值。

具体的,在存储服务模块启动后,控制服务模块可以通过停止接口112接收本地服务器发送的停止请求,以停止当前的数据存储进程。还可以通过第二状态请求接口接收本地服务器发送的状态检测请求,以向该存储服务模块的第一状态请求接口请求当前的存储服务模块状态,并接收存储服务模块返回的状态值,以向本地服务器反馈当前状态。

实际应用中,该控制服务模块处于启动状态,则在该控制服务模块接收到存储位置名称后,可以基于该存储位置名称启动该存储服务器上的一个或多个存储服务模块,使得被启动的存储服务模块可以动态监听该存储名称对应的端口号,并根据该端口号为用户提供数据存储的请求路径,即使得用户利用该路径发起数据存储,以完成数据的存储。

可以理解,本申请实施例提供的数据存储装置,为了使得控制服务模块能够根据存储位置名称启动存储服务模块,且提供请求路径来实现数据存储,在存储服务器上建立控制服务模块及存储服务模块后,还需要对存储服务模块做相应修改,使得存储服务模块在启动时可以读取指定文件,即a.json文件,并且使得初始化的条件根据该a.json文件指定,如根据a.json文件中的ip地址及秘钥等,初始化该存储服务模块;对alive接口进行修改,使得请求该接口时,返回存储服务模块当前的状态值,即当请求控制服务模块的alive接口时,即通过控制服务模块请求存储服务模块的alive接口,以返回存储服务模块当前的状态值。另外,还可以将存储服务模块的监听端口号修改为动态的,从而可以实现多次调用,为不同的软件应用程序提供存储服务。

还可以理解,在本申请实施例提供的数据存储装置,存储位置名称对应的相关数据可以通过接口服务器来提前分配。

例如,该接口服务器可以提供create,build,list,info接口。当请求create接口时,即接收用户输入的alias参数,即存储位置名称,表示用户需要开通存储服务,接口服务器可以将该alias参数保存到mysql数据库中。进一步的,当请求build接口时,表示要创建一个数据库,则接口服务器可以根据该alias的值在用户数据库中(如mongodb)中建立一个同名的数据库。创建成功后,会生成数据库连接地址,并可以读取当前启动的存储服务模块个数,用个数加上偏移值,生成一个不重复的端口号,并随机生成masterkey,随机生成clientkey,随机生成restapikey,随机生成javascriptkey,最后可以将上述存储位置名称对应的相关数据存储至其他服务器,如mysql数据库中。

该接口服务器还用于提供返回存储数据的至少一个接口,该接口用于接收该存储服务模块返回的存储数据。例如,当请求list接口的时,该接口服务器会返回多个数据存储服务的数据,当请求info接口时,会返回特定的数据存储服务的数据。

本申请实施例提供的数据存储装置,在存储服务器上运行控制服务模块及存储服务模块,通过控制服务模块的参数接收接口接收用户的待存储数据的存储位置名称,并利用该存储位置名称启动存储服务模块,使得该存储服务模块根据存储位置名称提供请求路径来实现数据的存储,避免了后端开发人员针对不同的软件应用程序开发存储代码,减少了工作量,提高了工作效率。

另一方面,本申请还提供一种数据存储系统。可以理解,该系统可用于一个软件应用程序运行在多台服务器的场景下,即当软件应用程序复杂时,可以利用多台服务器同时运行一个存储服务模块,实现该软件应用程序的本地数据的存储。

图2所示为本申请实施例提供的数据存储系统的结构示意图,如图2所示,该系统200可以包括如上述实施例所述的多个存储服务器210。

可以理解,该系统的每个存储服务器上运行有控制服务模块及存储服务模块。

优选的,本申请实施例提供的数据存储系统还可以包括反向代理服务器220,其用于转发存储位置名称至与该存储位置名称关联的至少一个数据存储服务器。

具体的,该反向代理服务器220(nginx服务器)可以用于对来自用户的数据存储请求进行转发。

还可以理解,为了方便管理,可以在软件应用程序的前端提供一个管理页面,该管理页面中显示有该系统中的服务器。用户可以点击其中的服务器按钮,可以向该存储服务器发送数据存储请求,以调用start接口,即表示需要在该服务器上启动一个存储服务,以将本地数据存储该服务器上。

可以理解,为了使得该nginx服务器能够根据用户的数据存储请求中的存储位置名称,将该数据存储请求消息转发至相应的服务器,可以对该nginx服务器进行配置,使得该nginx服务器上存储有系统内每个服务器的参数,以实现消息的路由。

例如,可以对该nginx服务器进行以下配置:

upstreamstorage1300{

server服务器ip1

server服务器ip2

}

upstreamstorage1301{

server服务器ip1

server服务器ip2

}

可以预先埋若干个,如1300~1400,

添加

location/1300/{

proxy_set_headerhost$host;

proxy_set_headerx-real-ip$remote_addr;

proxy_set_headerx-forwarded-forproxy_add_x_forwarded_for;

proxy_passhttp://store1300;

}

location/1301/{

proxy_set_headerhost$host;

proxy_set_headerx-real-ip$remote_addr;

proxy_set_headerx-forwarded-for$proxy_add_x_forwarded_for;

proxy_passhttp://store1300;

}

在通过上述配置后,在本地服务器将数据存储请求发送到该反向代理服务器后,该反向代理服务器可以根据上述配置,将数据存储请求路由至对应的存储服务器,实现在多台服务器上启动相同的存储服务模块。

优选的,本申请实施例提供的数据存储系统接口服务器230,其用于预先分配存储位置名称对应的相关数据;并将该存储位置名称与相关数据存储至其他服务器;还用于提供返回存储数据的至少一个接口,所述接口用于接收该存储服务模块返回的该存储数据。

本申请实施例提供的数据存储系统,通过反向代理服务器,将存储数据的用户请求路由到该系统中的一台或多台存储服务器上,使得该存储服务器上的控制服务模块启动存储服务模块,进行数据存储,实现了复杂软件应用程序的本地数据在多台服务器上的自动存储。

如图3所示,本申请实施例还提供了一种数据存储的方法,该方法用于一台服务器上运行多个存储服务模块的场景下,可以由上述实施例中运行在存储服务器上的控制服务模块及存储服务模块执行。

可以理解,在执行该方法之前,每个存储服务器上的控制服务模块处于启动状态,且对每个存储服务模块做了相应的修改,使得存储服务模块能够读取指定的文件,且能够根据指定的文件完成自身配置。

还可以理解,在执行该方法之前,用户可以在接口服务器上申请开通存储服务,即使得用户数据库及后台服务器(如mysql)数据库中存储有待存储数据的存储位置名称及其他相关数据。

如图3所示,该方法可以包括:

s310,控制服务模块接收数据存储请求。

具体的,存储服务器上的控制服务模块可以接收本地服务器发送的数据存储请求,即向控制服务模块的参数接收接口发送数据存储请求,以调用start接口。该数据存储请求包括待存储数据的存储位置名称,如alias参数。

s320,控制服务模块基于该存储位置名称启动该至少一个存储服务模块中的一个。

具体的启动过程,可以通过如下方式实现:

s321,基于该存储位置名称,从其他数据库读取与该存储位置名称对应的相关数据,该相关数据包括基于该存储位置名称预先分配的端口号。

s322,读取预先配置的配置参数。

s323,基于该相关数据和配置参数生成读取文件。

s324,基于该读取文件启动该至少一个存储服务模块中的一个。

具体的,在控制服务模块的参数接收接口接收到本地服务器提供的存储位置名称后,可以在其他服务器,如mysql数据库中读取与该存储位置名称对应的相关数据,例如端口号、masterkey、clientkey、restapikey及javascriptkey等。并读取预先配置的该存储服务器的参数,如该存储服务器的ip地址及可用的存储空间等。进而可以将读取到的上述数据组合在一起,生成一个新的文件,如a.json文件,并存储在该存储服务器上。

在生成新的文件后,可以利用启动工具启动一个存储服务模块,如pm2来启动存储服务模块,在启动存储服务模块时,读取a.json文件中的数据,并传递给该存储服务模块。则该存储服务模块可以根据传递过来的数据,即监听该存储位置的端口号,生成该存储服务的路径,以为本地服务器提供数据存储服务。例如,服务器ip为127.0.0.1,端口号为1300,则提供存储服务的地址为127.0.0.1:1300/1300。

s330,控制服务模块接收检测请求,该检测请求用于请求检测该存储服务模块的当前运行状态。

具体的,在控制服务模块启动存储服务模块后,还可以接收本地服务器发送的状态检测请求,即该控制服务模块的第二状态请求接口来接收状态检测请求,在接收该状态检测请求后,控制服务模块可以继续向存储服务模块的第一状态请求接口请求,使得该存储服务模块返回当前的运行状态。

另一方面,如图4所示,本申请另一实施例还提供了适用于一个软件应用程序运行在多台服务器上的数据存储方法。该方法可以由本地服务器、反向代理服务器及目标存储服务器执行。

可以理解,在执行该方法之前,该反向代理服务器进行了如上述实施例中所描述的配置,该本地服务器上配置有服务器管理列表,与该反向代理服务器关联的所有存储服务器上运行有控制服务模块及存储服务模块,且控制服务模块处于启动状态。

还可以理解,在执行该方法之前,用户可以在接口服务器上申请开通存储服务,即使得用户数据库及后台服务器(如mysql)数据库中存储有待存储数据的存储位置名称及其他相关数据。

如图4所示,该方法可以包括:

s410,本地服务器发送数据存储请求,该数据存储请求包括待存储数据的存储位置名称,该待存储位置名称对应至少两个数据存储服务器。

s420,本地服务器选择该至少两个数据存储服务器中的目标数据存储服务器。

s430,本地服务器将该选择结果发送至反向代理服务器。

s440,该反向代理服务器将该选择结果路由至目标存储服务器,

s450,该目标存储服务器的控制服务模块接收该选择结果,该选择结果包括待存储数据的存储位置名称。

具体的,对于多台服务器上运行一个软件应用程序,在需要将本地数据同时存储在多台服务器中的至少一台时,本地服务器发送的数据存储请求中包括的存储位置名称对应一个或多个数据存储服务器。

例如,可以在本地服务器上提供一个管理页面,在该管理页面的列表中有存储系统中所有存储服务器,则可以在该列表中选择一个或多个存储服务器作为目标存储服务器。即在发送数据存储请求时,可以在对应的目标存储服务器上完成选择,并将选择结果发送到反向代理服务器。则该反向代理器接收到数据存储请求后,可以根据存储位置名称将该请求转发至对应的一个或多个目标存储服务器上,以请求该目标存储服务器上的start接口。

s460,该目标存储服务器的控制服务模块基于该存储位置名称启动该目标存储服务器的存储服务模块,该存储服务模块,其包括状态请求接口用于提供该存储服务模块的状态值,该存储服务模块用于动态监听该存储位置名称对应的端口号,并基于该端口号提供请求路径来实现数据存储。

上述控制服务模块启动存储服务模块的具体实现方法与上述实施例中的相应步骤的实现过程一致,此处不再赘述。

下面参考图5,其示出了适于用来实现本申请实施例的服务器的计算机系统500的结构示意图。

如图5所示,计算机系统500包括中央处理单元(cpu)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储部分508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram503中,还存储有系统500操作所需的各种程序和数据。cpu501、rom502以及ram503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。

以下部件连接至i/o接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至i/o接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。

特别地,根据本公开的数据存储的实施例,上文参考图3及图4描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,该计算机程序包含用于执行图3或图4的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种数据存储实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括控制服务模块及存储服务模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,控制服务模块还可以被描述为“用于基于该存储位置名称启动至少一个存储服务模块中的一个的模块”。

作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中前述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,前述程序被一个或者一个以上的处理器用来执行描述于本申请的数据存储,具体包括:控制服务模块接收数据存储请求,该数据存储请求包括待存储数据的存储位置名称;控制服务模块基于该存储位置名称启动该至少一个存储服务模块中的一个,该存储服务模块,其包括第一状态请求接口,该第一状态请求接口用于提供该存储服务模块的状态值,该存储服务模块用于动态监听该存储位置名称对应的端口号,并基于该端口号提供请求路径来实现数据存储。

综上所述,本申请实施例提供的数据存储装置、系统及方法,该装置包括控制服务模块及至少一个存储服务模块,该控制服务模块用于通过参数接收接口接收待存储数据的存储位置名称,并通过该存储位置名称启动该服务模块,使得该存储服务模块通过动态监听该存储位置名称对应的端口号为用户提供数据存储请求路径,从而实现了待存储数据的自动存储,并通过状态请求接口提供了该存储服务模块当前的状态值,避免了后端开发人员针对软件应用程序来开发存储功能的程序,减少了工作量,提高了工作效率。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。


技术特征:

1.一种数据存储装置,其特征在于,所述装置包括控制服务模块和至少一个存储服务模块,包括:

所述控制服务模块,包括参数接收接口,所述参数接收接口用于接收待存储数据的存储位置名称,所述控制服务模块用于基于所述存储位置名称启动所述至少一个存储服务模块中的一个;

所述存储服务模块,其包括第一状态请求接口,所述第一状态请求接口用于提供所述存储服务模块的状态值,所述存储服务模块用于动态监听所述存储位置名称对应的端口号,并基于所述端口号提供请求路径来实现数据存储。

2.根据权利要求1所述的数据存储装置,其特征在于,所述参数接收接口包括:

第一读取单元,用于基于所述存储位置名称,从其他数据库读取与所述存储位置名称对应的相关数据,所述相关数据包括基于所述存储位置名称预先分配的端口号;

第二读取单元,用于读取预先配置的配置参数;

生成单元,用于基于所述相关数据和配置参数生成读取文件;

启动单元,用于基于所述读取文件启动所述至少一个存储服务模块中的一个。

3.根据权利要求1所述的数据存储装置,其特征在于,所述控制服务模块还包括:

停止接口,其用于停止所述存储服务模块;和/或

第二状态请求接口,其用于请求所述存储服务模块返回所述状态值。

4.一种数据存储系统,其特征在于,所述系统包括至少一个数据存储服务器,所述数据存储服务器包括如权利要求1-3任一项所述数据存装置。

5.根据权利要求4所述的数据存储系统,其特征在于,所述系统还包括反向代理服务器,其用于转发所述存储位置名称至与所述存储位置名称关联的至少一个数据存储服务器。

6.根据权利要求4所述的数据存储系统,其特征在于,所述系统还包括:

接口服务器,其用于预先分配所述存储位置名称对应的相关数据;并将所述存储位置名称与所述相关数据存储至所述其他服务器;还用于提供返回存储数据的至少一个接口,所述接口用于接收所述存储服务模块返回的所述存储数据。

7.一种数据存储方法,其特征在于,所述方法包括:

控制服务模块接收数据存储请求,所述数据存储请求包括待存储数据的存储位置名称;

控制服务模块基于所述存储位置名称启动所述至少一个存储服务模块中的一个,所述存储服务模块,其包括第一状态请求接口,所述第一状态请求接口用于提供所述存储服务模块的状态值,所述存储服务模块用于动态监听所述存储位置名称对应的端口号,并基于所述端口号提供请求路径来实现数据存储。

8.根据权利要求7所述的数据存储方法,其特征在于,所述基于所述存储位置名称启动所述至少一个存储服务模块中的一个,包括:

基于所述存储位置名称,从其他数据库读取与所述存储位置名称对应的相关数据,所述相关数据包括基于所述存储位置名称预先分配的端口号;

读取预先配置的配置参数;

基于所述相关数据和配置参数生成读取文件;

基于所述读取文件启动所述至少一个存储服务模块中的一个。

9.根据权利要求7所述的数据存储方法,其特征在于,在控制服务模块接收数据存储请求之后,所述方法还包括:

控制服务模块接收检测请求,所述检测请求用于请求检测所述存储服务模块的当前运行状态。

10.一种数据存储方法,其特征在于,包括:

本地服务器发送数据存储请求,所述数据存储请求包括待存储数据的存储位置名称,所述待存储位置名称对应至少两个数据存储服务器;

本地服务器选择所述至少两个数据存储服务器中的目标数据存储服务器;

本地服务器将所述选择结果发送至反向代理服务器,所述反向代理服务器将所述选择结果路由至目标存储服务器,

所述目标存储服务器的控制服务模块接收所述选择结果,所述选择结果包括待存储数据的存储位置名称;

控制服务模块基于所述存储位置名称启动所述目标存储服务器的存储服务模块,所述存储服务模块,其包括第一状态请求接口,所述第一状态请求接口用于提供所述存储服务模块的状态值,所述存储服务模块用于动态监听所述存储位置名称对应的端口号,并基于所述端口号提供请求路径来实现数据存储。

技术总结
本申请公开了一种数据存储装置、系统及方法,该装置包括:控制服务模块及存储服务模块,控制服务模块用于基于存储位置名称启动至少一个存储服务模块,该模块包括参数接收接口,用于接收待存储数据的存储位置名称;存储服务模块用于动态监听存储位置名称对应的端口号,并基于端口号提供请求路径来实现数据存储。本申请实施例通过控制服务模块的参数接收接口接收待存储数据的存储位置名称,进而基于存储位置名称启动存储服务模块,使得存储服务模块通过动态监听存储位置名称对应的端口号为用户提供数据存储请求路径,从而实现了待存储数据的自动存储,避免了后端开发人员针对软件应用程序来开发存储功能的程序,减少了工作量,提高了工作效率。

技术研发人员:邢尧;李中凯;庄森彬;匡凌波
受保护的技术使用者:顺丰科技有限公司
技术研发日:2018.11.30
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-29727.html

最新回复(0)