首页> 中国专利> 访问嵌入式数据库的方法、装置、计算机设备及存储介质

访问嵌入式数据库的方法、装置、计算机设备及存储介质

摘要

本申请公开了一种访问嵌入式数据库的方法、装置、计算机设备及存储介质,该访问嵌入式数据库的方法包括获取针对多个Docker容器中的第一Docker容器的嵌入式数据库的访问请求,访问请求为针对嵌入式数据库中的第一数据的访问请求;根据访问请求,确定第一Docker容器对应的第一宿主机telnet端口;根据第一宿主机telnet端口、第一Docker容器内部的第一telnet命令端口及第一telnet服务,获取嵌入式数据库中的第一数据,实现了宿主机对Docker容器中的嵌入式数据库的访问,方便查看Docker容器内数据,从而便于对嵌入式数据库进行维护。

著录项

  • 公开/公告号CN112199435A

    专利类型发明专利

  • 公开/公告日2021-01-08

    原文格式PDF

  • 申请/专利号CN202011397375.8

  • 发明设计人 方建;邓超;

    申请日2020-12-04

  • 分类号G06F16/25(20190101);G06F16/28(20190101);G06F9/455(20060101);

  • 代理机构44570 深圳紫藤知识产权代理有限公司;

  • 代理人何志军

  • 地址 430074 湖北省武汉市东湖新技术开发区软件园中路4号光谷软件园六期2栋4层01室、5层01室、6层01室

  • 入库时间 2023-06-19 09:30:39

说明书

技术领域

本申请涉及通信技术领域,具体涉及一种访问嵌入式数据库的方法、装置、计算机设备及存储介质。

背景技术

Docker容器是一个开源的容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了Docker引擎的服务器上(包括流行的Linux机器,windows机器),允许多个容器共享同一个内核的情况下完全隔离运行,它对于操作系统没有要求,可以实现轻量级的虚拟环境。Docker容器完全使用沙箱机制,相互之间不会有任何接口(类似iphone的app),几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

当使mysql嵌入式数据库作为Docker容器服务存储的功能时,由于Docker容器内的telnet服务本身已经在访问mysql嵌入式数据库,此时,不管是在Docker容器内部,还是在宿主机端,都无法查看到mysql嵌入式数据库内部的数据,只有将Docker容器内的进程停掉,才能实现对mysql嵌入式数据库的查看,从而导致对于mysql嵌入式数据库的维护不便。

发明内容

本申请实施例提供一种访问嵌入式数据库的方法、装置、计算机设备及存储介质,宿主机能够获取并访问Docker容器内部的mysql嵌入式数据库,便于对mysql嵌入式数据库进行维护。

一方面,本申请提供一种访问嵌入式数据库的方法,应用于宿主机,所述宿主机中包括多个Docker容器及多个宿主机telnet端口,每个Docker容器对应一个宿主机telnet端口,每个Docker容器内部包括嵌入式数据库、访问所述嵌入式数据库的telnet服务以及telnet命令端口,每个Docker容器内部的telnet命令端口与对应的一个宿主机telnet端口具有映射关系,所述方法包括:

获取针对多个所述Docker容器中的第一Docker容器的嵌入式数据库的访问请求,所述访问请求为针对所述嵌入式数据库中的第一数据的访问请求;

根据所述访问请求,确定所述第一Docker容器对应的第一宿主机telnet端口;

根据所述第一宿主机telnet端口、所述第一Docker容器内部的第一telnet命令端口及第一telnet服务,获取所述嵌入式数据库中的第一数据。

在本申请一些实施方案中,在所述获取针对所述Docker容器中的第一Docker容器的嵌入式数据库的访问请求之前,所述方法还包括:

建立所述第一Docker容器内部的第一telnet命令端口与对应的所述第一宿主机telnet端口的映射关系。

在本申请一些实施方案中,所述建立所述第一Docker容器内部的第一telnet命令端口与对应的所述第一宿主机telnet端口的映射关系,包括:

在所述宿主机中配置所述第一Docker容器时,在所述第一Docker容器内部配置所述第一telnet命令端口;

在所述多个宿主机telnet端口中,确定与所述第一telnet命令端口对应的第一宿主机telnet端口;

将所述第一宿主机telnet端口和所述第一telnet命令端口绑定,建立所述第一telnet命令端口与对应的所述第一宿主机telnet端口的映射关系。

在本申请一些实施方案中,所述方法还包括:

在获取针对多个所述Docker容器中的第一Docker容器的嵌入式数据库中的访问请求之后,若监测到所述第一Docker容器发生故障,查找获得所述多个Docker容器的嵌入式数据库包含所述第一数据的第二Docker容器;

根据所述访问请求,确定所述第二Docker容器对应的第二宿主机telnet端口;

根据所述第二宿主机telnet端口、第二Docker容器内部的第二telnet命令端口及第二telnet服务,获取所述第二Docker容器的嵌入式数据库中的第一数据。

在本申请一些实施方案中,所述获取针对所述多个Docker容器中第二Docker容器中的嵌入式数据库的访问请求之前,所述方法还包括:

建立所述第二Docker容器内部的第二telnet命令端口与对应的所述第二宿主机telnet端口的映射关系。

在本申请一些实施方案中,所述建立所述第二Docker容器内部的第二telnet命令端口与对应的所述第二宿主机telnet端口的映射关系,包括:

在所述宿主机中配置所述第二Docker容器时,在所述第二Docker容器内部配置所述第二telnet命令端口;

在所述多个宿主机telnet端口中,确定与所述第二telnet命令端口对应的第二宿主机telnet端口;

将所述第二宿主机telnet端口和所述第二telnet命令端口绑定,建立所述第二telnet命令端口与对应的所述第一宿主机telnet端口的映射关系。

在本申请一些实施方案中,所述方法还包括:

预先设置备用Docker容器,所述备用Docker容器内部包括与所述第一Docker容器中的第一数据内容相同的备用嵌入式数据库,所述备用Docker容器内部的telnet命令端口与所述第一宿主机telnet端口预先建立了映射关系;

在获取针对多个所述Docker容器中的第一Docker容器的嵌入式数据库的访问请求之后,若监测到所述第一Docker容器发生故障时;

根据所述访问请求,确定所述备用Docker容器对应的第一宿主机telnet端口;

根据所述第一宿主机telnet端口、所述备用Docker容器内部的备用telnet命令端口及备用telnet服务,获取所述备用嵌入式数据库中的第一数据。

另一方面,本申请提供一种访问嵌入式数据库的装置,应用于宿主机,所述宿主机中包括多个Docker容器及多个宿主机telnet端口,每个Docker容器对应一个宿主机telnet端口,每个Docker容器内部包括嵌入式数据库、访问所述嵌入式数据库的telnet服务以及telnet命令端口,每个Docker容器内部的telnet命令端口与对应的所述宿主机telnet端口一一映射,所述装置包括:

获取模块,应用于宿主机,所述宿主机中包括多个Docker容器及多个宿主机telnet端口,每个Docker容器对应一个宿主机telnet端口,每个Docker容器内部包括嵌入式数据库、访问所述嵌入式数据库的telnet服务以及telnet命令端口,每个Docker容器内部的telnet命令端口与对应的一个宿主机telnet端口具有映射关系,所述方法包括:

获取模块,获取针对多个所述Docker容器中的第一Docker容器的嵌入式数据库的访问请求,所述访问请求为针对所述嵌入式数据库中的第一数据的访问请求;

确定模块,用于根据所述访问请求,确定所述第一Docker容器对应的第一宿主机telnet端口;

访问模块,用于根据所述第一宿主机telnet端口、所述第一Docker容器内部的第一telnet命令端口及第一telnet服务,获取所述嵌入式数据库中的第一数据。

另一方面,本申请还提供一种计算机设备,所述计算机设备包括:

一个或多个处理器;

存储器;以及

一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现第一方面中任一项所述的访问嵌入式数据库的方法。

第四方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行第一方面任一项所述的访问嵌入式数据库的方法中的步骤。

本申请通过将每个Docker容器内部的telnet命令端口与对应的所述宿主机telnet端口一一映射,获取针对多个Docker容器中的第一Docker容器的嵌入式数据库的访问请求,访问请求为针对嵌入式数据库中的第一数据的访问请求;根据访问请求,确定第一Docker容器对应的第一宿主机telnet端口;根据第一宿主机telnet端口、第一Docker容器内部的第一telnet命令端口及第一telnet服务,获取嵌入式数据库的中的第一数据,实现了宿主机对Docker容器中的嵌入式数据库的访问,方便查看Docker容器内数据,从而便于对嵌入式数据库进行维护。

附图说明

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

图1是本申请实施例提供的嵌入式数据库访问系统的场景示意图;

图2是本申请实施例中的宿主机的一个实施例的结构示意图;

图3是本申请实施例中包含有步骤201至步骤203的访问嵌入式数据库的方法的一个实施例流程示意图;

图4是本申请实施例中包含有步骤301至步骤303的访问嵌入式数据库的方法的实施例流程示意图;

图5本申请实施例中包含有步骤401至步骤403的访问嵌入式数据库的方法的实施例流程示意图;

图6是本申请实施例中包含有步骤501至步骤503的访问嵌入式数据库的方法的实施例流程示意图;

图7是本申请实施例中包含有步骤601至步骤604的访问嵌入式数据库的方法的实施例流程示意图;

图8是本申请实施例中提供的访问嵌入式数据库的装置的一个实施例结构示意图;

图9是本申请实施例中提供的计算机设备的一个实施例结构示意图。

具体实施方式

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

在本申请的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

在本申请中,“示例性”一词用来表示“用作例子、例证或说明”。本申请中被描述为“示例性”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本申请,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本申请。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本申请的描述变得晦涩。因此,本申请并非旨在限于所示的实施例,而是与符合本申请所公开的原理和特征的最广范围相一致。

需要说明的是,本申请实施例方法由于是在宿主机中执行,各宿主机的处理对象均以数据或信息的形式存在,例如时间,实质为时间信息,可以理解的是,后续实施例中若提及尺寸、数量、位置等,均为对应的数据存在,以便宿主机进行处理,具体此处不作赘述。

本申请实施例提供一种访问嵌入式数据库的方法、装置、计算机设备及存储介质,以下分别进行详细说明。

请参阅图1,图1为本申请实施例所提供的嵌入式数据库访问系统的场景示意图,该嵌入式数据库访问系统可以包括计算机设备100,计算机设备100中集成有访问嵌入式数据库的装置,如图1中的计算机设备。

本申请实施例中计算机设备100主要用于进行嵌入式数据库的访问。

关于Docker的特点详述:

Docker是Dot Cloud开源的一个基于LXC(Linux Container)的容器引擎,它具有高隔离性,高性能,文件存储优化等几个显著特点。

高隔离性体现在Docker采用沙箱机制,任意两个Docker容器之间存在系统级隔离,且相互之间不存在接口。

高性能体现在Docker基于LXC的轻量级虚拟化机制,相对于VMware虚拟机、KVM(Kernel-based Virtual Machine)等硬件级虚拟化而言,Docker的启动速度快,系统占用少;对于同样一台服务器来说,可启动的Docker容器数量远大于可启动的虚拟机数量。

文件存储优化指Docker镜像采用分层存储模式,不同Docker镜像可以使用同样的基础镜像,故,基础镜像的可复用性节省存储空间。Docker镜像可以封装不同的运行环境,且彼此隔离。

本申请实施例中,该计算机设备100可以是独立的服务器,也可以是服务器组成的服务器网络或服务器集群,例如,本申请实施例中所描述的计算机设备100,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云服务器。其中,云服务器由基于云计算(Cloud Computing)的大量计算机或网络服务器构成。

另外,如图1所示,该嵌入式数据库访问系统还可以包括存储器200,用于存储数据。

本领域技术人员可以理解,图1中示出的应用环境,仅仅是与本申请方案一种应用场景,并不构成对本申请方案应用场景的限定,其他的应用环境还可以包括比图1中所示更多或更少的计算机设备,例如图1中仅示出1个计算机设备,可以理解的,该嵌入式数据库访问系统还可以包括一个或多个其他服务,具体此处不作限定。

需要说明的是,图1所示的嵌入式数据库访问系统的场景示意图仅仅是一个示例,本申请实施例描述的嵌入式数据库访问系统以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着嵌入式数据库访问系统的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

首先,本申请实施例中提供一种访问嵌入式数据库的方法,该访问嵌入式数据库的方法的执行主体为访问嵌入式数据库的装置,该访问嵌入式数据库的装置应用于宿主机,如图2所示,所述宿主机中包括多个Docker容器及多个宿主机telnet端口,每个Docker容器对应一个宿主机telnet端口,每个Docker容器内部包括嵌入式数据库、访问所述嵌入式数据库的telnet服务以及telnet命令端口,每个Docker容器内部的telnet命令端口与对应的一个宿主机telnet端口具有映射关系,所述方法包括:获取针对多个所述Docker容器中的第一Docker容器的嵌入式数据库的访问请求,所述访问请求为针对所述嵌入式数据库中的第一数据的访问请求;根据所述访问请求,确定所述第一Docker容器对应的第一宿主机telnet端口;根据所述第一宿主机telnet端口、所述第一Docker容器内部的第一telnet命令端口及第一telnet服务,获取所述嵌入式数据库中的第一数据。

如图3所示,为本申请实施例中访问嵌入式数据库的方法的一个实施例流程示意图,该访问嵌入式数据库的方法包括:

步骤201:获取针对多个所述Docker容器中的第一Docker容器的嵌入式数据库的访问请求,所述访问请求为针对所述嵌入式数据库中的第一数据的访问请求。

所述访问请求由宿主机发出,多个所述Docker容器中存储有不同数据内容的嵌入式数据库,第一Docker容器中存储有嵌入式数据库中的第一数据。所述步骤201可以由一容器服务模块实现,容器服务模块正常运行,接收来自宿主机的访问请求,容器服务模块根据所述访问请求查找确定第一Docker容器,所述容器服务模块中存储有多个Docker容器与嵌入式数据库中的数据的对应关系。所述嵌入式数据库是指mysql嵌入式数据库。

步骤202:根据所述访问请求,确定所述第一Docker容器对应的第一宿主机telnet端口。

每个Docker容器对应有一个宿主机telnet端口,根据每个Docker容器内部的telnet命令端口与对应的一个宿主机telnet端口的映射关系,可以确定所述第一Docker容器对应的第一宿主机telnet端口。同样地,所述步骤202同样可以由步骤201中的容器服务模块实现,容器服务模块中同样存储有多个Docker容器与多个宿主机telnet端口的对应关系,或者说,容器服务模块中存储有多个Docker容器内部的telnet命令端口与多个宿主机telnet端口的对应关系。容器服务模块接收到所述访问请求后,根据所述访问请求获取与所述第一Docker容器内部的第一telnet命令端口对应的第一宿主机telnet端口。

步骤203:根据所述第一宿主机telnet端口、所述第一Docker容器内部的第一telnet命令端口及第一telnet服务,获取所述嵌入式数据库中的第一数据。

由于第一Docker容器内部的第一telnet命令端口与第一宿主机telnet端口具有映射关系,宿主机能够通过第一宿主机telnet端口和所述第一Docker容器内部的第一telnet命令端口及第一telnet服务进行查看第一Docker容器内部的嵌入式数据库中的第一数据,从而便于对嵌入式数据库进行维护。

本申请实施例在现有技术中无法对Docker容器中的嵌入式数据库的数据进行查看的前提下,通过建立每个Docker容器内部的telnet命令端口与对应的所述宿主机telnet端口一一映射,能够实现宿主机对Docker容器中的嵌入式数据库的数据的访问,从而便于对嵌入式数据库进行维护。

在本申请一些实施例中,在所述获取针对所述Docker容器中的第一Docker容器的嵌入式数据库的访问请求之前,所述方法还包括:

建立所述第一Docker容器内部的第一telnet命令端口与对应的所述第一宿主机telnet端口的映射关系。

具体地,所述第一Docker容器内部的第一telnet命令端口与对应的所述第一宿主机telnet端口为一一对应的关系,也就是说,一个telnet命令端口仅对应一个宿主机telnet端口,一个宿主机telnet端口也仅对应一个telnet命令端口,避免访问出现冲突。

如图4所示,在本申请一些实施例中,所述建立所述第一Docker容器内部的第一telnet命令端口与对应的所述第一宿主机telnet端口的映射关系,包括:

步骤301:在所述宿主机中配置所述第一Docker容器时,在所述第一Docker容器内部配置所述第一telnet命令端口;

步骤302:在所述多个宿主机telnet端口中,确定与所述第一telnet命令端口对应的第一宿主机telnet端口;

步骤303:将所述第一宿主机telnet端口和所述第一telnet命令端口绑定,建立所述第一telnet命令端口与对应的所述第一宿主机telnet端口的映射关系。

容器服务装置中储存有各个Docker容器的地址和各个Docker容器的端口映射,并对外提供查询地址,能够根据一个Docker容器的IP地址查询到对应容器所在宿主机地址和该Docker容器的端口映射信息,Docker容器的端口映射信息是指第一Docker容器中的第一telnet命令端口与对应的所述第一宿主机telnet端口之间的映射关系。或者,也可以给每一Docker容器进行编号,容器服务装置可以根据访问请求确定第一Docker容器的编号,从而确定第一telnet命令端口,并根据映射关系确定针对所述第一Docker容器中的嵌入式数据库中的第一数据的访问请求。

如图5所示,在本申请一些实施例中,所述方法还包括:

步骤401:在获取针对多个所述Docker容器中的第一Docker容器的嵌入式数据库的的访问请求之后,若监测到所述第一Docker容器发生故障,查找获得所述多个Docker容器的嵌入式数据库包含所述第一数据的第二Docker容器;

步骤402:根据所述访问请求,确定所述第二Docker容器对应的第二宿主机telnet端口;

步骤403:根据所述第二宿主机telnet端口、第二Docker容器内部的第二telnet命令端口及第二telnet服务,获取所述第二Docker容器的嵌入式数据库中的第一数据。

可以理解的是,当容器服务装置或者第一Docker容器内部的第一telnet服务监测到第一Docker容器发生故障时,宿主机无法正常访问第一Docker容器内的嵌入式数据库的第一数据,此时,容器服务装置可以查找宿主机中的其它Docker容器是否储存有相同的嵌入式数据库中的第一数据,如果是,则将查找到的该Docker容器作为第二Docker容器,与宿主机访问第一Docker容器内的嵌入式数据库中的第一数据的方法相似,宿主机重新获取针对所述第二Docker容器中的所述嵌入式数据库的访问请求,所述访问请求为针对所述嵌入式数据库中数据的访问请求,并根据访问请求确定第二telnet命令端口,通过第二宿主机telnet端口与第二telnet命令端口之间的映射关系,实现对第二Docker容器中所述嵌入式数据库中的第一数据,从而避免当多个Docker容器中的其中一个出现故障时,无法及时查看故障Docker容器中的嵌入式数据库的数据。

例如,编号为10001的Docker容器的telnet命令端口与编号为20001的宿主机telnet端口一一映射,编号为10002的Docker容器的telnet命令端口与编号为20002的宿主机telnet端口一一映射,当编号为10001的Docker容器出现故障,查找确定编号为10002的Docker容器存储的嵌入式数据库与编号为10001的Docker容器存储的嵌入式数据库中的数据相同,则宿主机将针对编号10001的Docker容器中嵌入式数据库的访问请求停掉,转而发送针对编号为10002的Docker容器中嵌入式数据库的访问请求,从而获取编号为10002的Docker容器中嵌入式数据库中的数据,也即是编号为10001的Docker容器中嵌入式数据库中的数据。

同样地,在本申请一些实施例中,所述获取针对所述多个Docker容器中第二Docker容器中的嵌入式数据库的访问请求之前,所述方法还包括:

建立所述第二Docker容器内部的第二telnet命令端口与对应的所述第二宿主机telnet端口的映射关系。

如图6所示,在本申请一些实施例中,所述建立所述第二Docker容器内部的第二telnet命令端口与对应的所述第二宿主机telnet端口的映射关系,包括:

步骤501:在所述宿主机中配置所述第二Docker容器时,在所述第二Docker容器内部配置所述第二telnet命令端口;

步骤502:在所述多个宿主机telnet端口中,确定与所述第二telnet命令端口对应的第二宿主机telnet端口;

步骤503:将所述第二宿主机telnet端口和所述第二telnet命令端口绑定,建立所述第二telnet命令端口与对应的所述第二宿主机telnet端口的映射关系。

需要说明的是,对于建立所述第二Docker容器内部的第二telnet命令端口与对应的所述第一宿主机telnet端口的映射关系的方法,与上述实施例中的建立所述第一Docker容器内部的第一telnet命令端口与对应的所述第一宿主机telnet端口的映射关系的方法相似,具体可参考上述实施例,在此不再赘述。

如图7所示,在本申请一些实施例中,所述方法还包括:

步骤601:预先设置备用Docker容器,所述备用Docker容器内部包括与所述第一Docker容器中的第一数据内容相同的备用嵌入式数据库,所述备用Docker容器内部的telnet命令端口与所述第一宿主机telnet端口预先建立了映射关系;

步骤602:在获取针对多个所述Docker容器中的第一Docker容器的嵌入式数据库的访问请求之后,若监测到所述第一Docker容器发生故障时;

步骤603:根据所述访问请求,确定所述备用Docker容器对应的第一宿主机telnet端口;

步骤604:根据所述第一宿主机telnet端口、所述备用Docker容器内部的备用telnet命令端口及备用telnet服务,获取所述备用嵌入式数据库中的第一数据。

可以理解的是,当容器服务装置或者第一Docker容器内部的第一telnet服务监测到第一Docker容器发生故障时,宿主机无法正常访问第一Docker容器内的嵌入式数据库的第一数据,此时,容器服务装置可以查找宿主机中的其它Docker容器是否储存有相同的嵌入式数据库中的第一数据,如果否,则启动备用Docker容器,宿主机重新获取针对所述备用Docker容器中的所述嵌入式数据库的访问请求,备用Docker容器中存储有与第一Docker容器中嵌入式数据库相同的第一数据,所述访问请求为针对所述嵌入式数据库中的第一数据的访问请求,并根据访问请求确定备用Docker容器内的备用telnet命令端口,通过第一宿主机telnet端口与备用telnet命令端口之间的映射关系,实现对备用Docker容器中所述嵌入式数据库中的第一数据的访问,也即是实现对第一Docker容器中所述嵌入式数据库中的第一数据的访问,从而避免当多个Docker容器中的其中一个出现故障时,无法及时查看故障Docker容器中嵌入式数据库中的数据。

例如,编号为10001的Docker容器的telnet命令端口与编号为20001的宿主机telnet端口一一映射,编号为10003的Docker容器为备用Docker容器,编号为10003的Docker容器存储的嵌入式数据库与编号为10001的Docker容器存储的嵌入式数据库相同,当编号为10001的Docker容器出现故障,则宿主机将针对编号10001的Docker容器中嵌入式数据库的访问请求停掉,建立编号为10003的Docker容器的telnet命令端口与编号为20001的宿主机telnet端口一一映射,转而发送针对编号为10003的Docker容器中嵌入式数据库的访问请求,从而获取编号为10003的Docker容器中嵌入式数据库中的数据,也即是编号为10001的Docker容器中嵌入式数据库中的数据。

采用预先设置的备用Docker容器,宿主机访问备用Docker容器中的嵌入式数据库中的第一数据的方法,相比通过查找并确定访问第二Docker容器中嵌入式数据库中的第一数据的方法,宿主机无需重新为备用Docker容器设置备用宿主机telnet端口,能够增加效率。

如图8所示,为了更好实施本发明实施例中访问嵌入式数据库的方法,在访问嵌入式数据库的方法基础之上,本发明实施例中还提供一种访问嵌入式数据库的装置800,应用于宿主机,所述宿主机中包括多个Docker容器及多个宿主机telnet端口,每个Docker容器对应一个宿主机telnet端口,每个Docker容器内部包括嵌入式数据库、访问所述嵌入式数据库的telnet服务以及telnet命令端口,每个Docker容器内部的telnet命令端口与对应的所述宿主机telnet端口具有映射关系,所述装置800包括:

获取模块801,获取针对多个所述Docker容器中的第一Docker容器的嵌入式数据库的访问请求,所述访问请求为针对所述嵌入式数据库中的第一数据的访问请求;

确定模块802,用于根据所述访问请求,确定所述第一Docker容器对应的第一宿主机telnet端口;

访问模块803,用于根据所述第一宿主机telnet端口、所述第一Docker容器内部的第一telnet命令端口及第一telnet服务,获取所述嵌入式数据库中的第一数据。

本申请实施例还提供一种计算机设备,其集成了本申请实施例所提供的任一种访问嵌入式数据库的装置,所述计算机设备包括:

一个或多个处理器;

存储器;以及

一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行上述访问嵌入式数据库的方法实施例中任一实施例中所述的访问嵌入式数据库的方法中的步骤。

本申请实施例还提供一种计算机设备,其集成了本申请实施例所提供的任一种访问嵌入式数据库的装置。如图9所示,其示出了本申请实施例所涉及的计算机设备的结构示意图,具体来讲:

该计算机设备可以包括一个或者一个以上处理核心的处理器901、一个或一个以上计算机可读存储介质的存储器902、电源903和输入单元904等部件。本领域技术人员可以理解,图9中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器901是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器902内的软件程序和/或模块,以及调用存储在存储器902内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理器901可包括一个或多个处理核心;优选的,处理器901可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器901中。

存储器902可用于存储软件程序以及模块,处理器901通过运行存储在存储器902的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器902可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器902还可以包括存储器控制器,以提供处理器901对存储器902的访问。

计算机设备还包括给各个部件供电的电源903,优选的,电源903可以通过电源管理系统与处理器901逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源903还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

该计算机设备还可包括输入单元904,该输入单元904可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器901会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器902中,并由处理器901来运行存储在存储器902中的应用程序,从而实现各种功能,如下:

获取针对多个所述Docker容器中的第一Docker容器的嵌入式数据库的访问请求,所述访问请求为针对所述嵌入式数据库中的第一数据的访问请求;

根据所述访问请求,确定所述第一Docker容器对应的第一宿主机telnet端口;

根据所述第一宿主机telnet端口、所述第一Docker容器内部的第一telnet命令端口及第一telnet服务,获取所述嵌入式数据库中的第一数据。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本申请实施例提供一种计算机可读存储介质,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行本申请实施例所提供的任一种访问嵌入式数据库的方法中的步骤。例如,所述计算机程序被处理器进行加载可以执行如下步骤:

获取针对多个所述Docker容器中的第一Docker容器的嵌入式数据库的访问请求,所述访问请求为针对所述嵌入式数据库中的第一数据的访问请求;

根据所述访问请求,确定所述第一Docker容器对应的第一宿主机telnet端口;

根据所述第一宿主机telnet端口、所述第一Docker容器内部的第一telnet命令端口及第一telnet服务,获取所述嵌入式数据库中的第一数据。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对其他实施例的详细描述,此处不再赘述。

具体实施时,以上各个单元或结构可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元或结构的具体实施可参见前面的方法实施例,在此不再赘述。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

以上对本申请实施例所提供的一种访问嵌入式数据库的方法、装置、计算机设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号