CN111711710A - 访问MongoDB复制集集群的方法、装置、设备及存储介质 - Google Patents
访问MongoDB复制集集群的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111711710A CN111711710A CN202010462828.4A CN202010462828A CN111711710A CN 111711710 A CN111711710 A CN 111711710A CN 202010462828 A CN202010462828 A CN 202010462828A CN 111711710 A CN111711710 A CN 111711710A
- Authority
- CN
- China
- Prior art keywords
- network address
- message
- mongodb
- server
- set cluster
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2557—Translation policies or rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种访问MongoDB复制集集群的方法、装置、设备及存储介质,涉及云计算领域。其中,方法包括:获取客户端发送的发送报文;发送报文的报文头中包括要访问的MongoDB复制集集群中服务端的虚拟网络地址;根据预先存储的映射数据、发送报文,生成转换后的发送报文;转换后的发送报文的报文头中包括与虚拟网络地址对应的真实网络地址;映射数据用于反映MongoDB复制集集群中各个服务端的虚拟网络地址和对应的真实网络地址之间的映射关系;将转换后的发送报文转发至对应的服务端。这样,无需向客户端提供MongoDB复制集集群中服务端的真实网络地址,即对MongoDB复制集集群中的服务端的真实网络地址进行隐藏,仍可实现客户端对服务端的访问。
Description
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种访问MongoDB复制集集群的方法、装置、设备及存储介质。
背景技术
MongoDB的复制集集群,通常包括一个主节点(通常称之为Primary节点),和至少一个从节点(通常称之为Secondary节点)。客户端向主节点写入数据,从节点从主节点同步主节点所写入的数据,以保持MongoDB的复制集集群内每一节点存储有相同的数据集。这样,通过提供数据的冗余备份,以提高数据的可用性。
目前,客户端在和MongoDB的复制集集群建立网络连接后,在和MongoDB的复制集集群建立数据库连接时,客户端首先向MongoDB的复制集集群中的任一节点发送用于查询MongoDB的复制集集群的网络拓扑的dbIsMaster命令。对应节点在接收到dbIsMaster命令,并在验证通过该dbIsMaster命令之后,向客户端反馈MongoDB的复制集集群的网络拓扑。
由于向客户端反馈的MongoDB的复制集集群的网络拓扑中包含的是MongoDB的复制集集群中每一节点的真实的IP地址和真实的端口号,这样使得,客户端在访问MongoDB的复制集集群的任一节点时,是利用真实的IP地址和真实的端口号进行访问的。而通常在访问数据库所在节点时,处于安全等原因,是希望数据库所在节点能够隐藏自身的真实的IP地址和真实的端口号的。
发明内容
本申请的一个目的是提供一种用于访问MongoDB复制集集群的新技术方案。
根据本申请的第一方面,提供了一种访问MongoDB复制集集群的方法,所述方法应用于网关设备,包括:
获取客户端发送的发送报文;所述发送报文的报文头中包括要访问的MongoDB复制集集群中服务端的虚拟网络地址;
根据预先存储的映射数据、所述发送报文,生成转换后的发送报文;所述转换后的发送报文的报文头中包括与所述虚拟网络地址对应的真实网络地址;所述映射数据用于反映所述MongoDB复制集集群中各个服务端的虚拟网络地址和对应的真实网络地址之间的映射关系;
将所述转换后的发送报文转发至对应的服务端。
可选地,所述方法还包括:
接收所述对应的服务端发送的反馈报文;
根据所述映射数据、所述反馈报文,生成转换后的反馈报文;所述转换后的反馈报文的报文头中包括与所述对应的服务端的真实网络地址对应的虚拟网络地址;
将所述转换后的反馈报文转发至客户端。
可选地,在所述发送报文包含查询所述MongoDB复制集集群的网络拓扑的查询请求的情况下,所述反馈报文的报文体中至少包括所述MongoDB复制集集群中各个服务端的虚拟网络地址和主从角色标识,其中,所述主从角色标识用于表示服务端为所述MongoDB复制集集群的主节点或者从节点。
可选地,在所述根据预先存储的映射数据、所述发送报文,生成转换后的发送报文之前,还包括:
生成所述映射数据;
将所述映射数据进行存储。
可选地,所述根据预先存储的映射数据、所述发送报文,生成转换后的发送报文,包括:
从所述预先存储的映射数据中,查找与所述发送报文的报文头中包含的虚拟网络地址对应的真实网络地址;
将所述发送报文的报文头中包含的虚拟网络地址替换为查找到的所述对应的真实网络地址;
将替换后的发送报文作为转换后的发送报文。
可选地,所述客户端和所述对应的服务端位于不同的计算机网络中。
根据本申请的第二方面,提供了一种访问MongoDB复制集集群的方法,所述方法应用于所述MongoDB复制集集群中的任一服务端,包括:
存储映射数据;所述映射数据用于反映所述MongoDB复制集集群中各个服务端的虚拟网络地址和对应的真实网络地址之间的映射关系;
在接收到查询所述MongoDB复制集集群的网络拓扑的报文的情况下,生成反馈报文;所述反馈报文中至少包括所述MongoDB复制集集群中各个服务端的虚拟网络地址和主从角色标识,其中,所述主从角色标识用于表示服务端为所述MongoDB复制集集群的主节点或者从节点。
根据本申请的第三方面,提供了一种访问MongoDB复制集集群的装置,包括:
第一获取模块,用于获取客户端发送的发送报文;所述发送报文的报文头中包括要访问的MongoDB复制集集群中服务端的虚拟网络地址;
第一生成模块,用于根据预先存储的映射数据、所述发送报文,生成转换后的发送报文;所述转换后的发送报文的报文头中包括与所述虚拟网络地址对应的真实网络地址;所述映射数据用于反映所述MongoDB复制集集群中各个服务端的虚拟网络地址和对应的真实网络地址之间的映射关系;
第一转发模块,用于将所述转换后的发送报文转发至对应的服务端。
可选地,所述装置还包括:
第二获取模块,用于接收所述对应的服务端发送的反馈报文;
第二生成模块,用于根据所述映射数据、所述反馈报文,生成转换后的反馈报文;所述转换后的反馈报文的报文头中包括与所述对应的服务端的真实网络地址对应的虚拟网络地址;
第二转发模块,用于将所述转换后的反馈报文转发至客户端。
可选地,在所述发送报文包含查询所述MongoDB复制集集群的网络拓扑的查询请求的情况下,所述反馈报文的报文体中至少包括所述MongoDB复制集集群中各个服务端的虚拟网络地址和主从角色标识,其中,所述主从角色标识用于表示服务端为所述MongoDB复制集集群的主节点或者从节点。
可选地,还包括存储模块,用于:
生成所述映射数据;
将所述映射数据进行存储。
可选地,第一生成模块还用于:
从所述预先存储的映射数据中,查找与所述发送报文的报文头中包含的虚拟网络地址对应的真实网络地址;
将所述发送报文的报文头中包含的虚拟网络地址替换为查找到的所述对应的真实网络地址;
将替换后的发送报文作为转换后的发送报文。
可选地,所述客户端和所述对应的服务端位于不同的计算机网络中。
根据本申请的第四方面,提供了一种访问MongoDB复制集集群的装置,所述装置包括:
存储数据,用于存储映射数据;所述映射数据用于反映所述MongoDB复制集集群中各个服务端的虚拟网络地址和对应的真实网络地址之间的映射关系;
生成模块,用于在接收到查询所述MongoDB复制集集群的网络拓扑的报文的情况下,生成反馈报文;所述反馈报文中至少包括所述MongoDB复制集集群中各个服务端的虚拟网络地址和主从角色标识,其中,所述主从角色标识用于表示服务端为所述MongoDB复制集集群的主节点或者从节点。
根据本申请的第五方面,提供了一种网关设备,包括如本申请第三方面所述的装置;或者,
包括存储器和处理器,所述存储器用于存储计算机指令,所述处理器用于从所述存储器中调用所述计算机指令,以执行如本申请第一方面所述的方法。
根据本申请的第六方面,提供了一种服务端,包括如本申请第四方面所述的装置;或者,
包括存储器和处理器,所述存储器用于存储计算机指令,所述处理器用于从所述存储器中调用所述计算机指令,以执行如本申请第二方面所述的方法。
根据本申请的第七方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现根据本申请第一方面所述的方法。
在本实施例中,通过获取客户端根据要访问的MongoDB复制集集群中服务端的虚拟网络地址生成的发送报文,然后根据发送报文、映射数据来生成转换后的发送报文。所生成的转换后的发送报文的报文头中包括与虚拟网络地址对应的真实网络地址。此时,按照转换后的发送报文中的真实网络地址,便可将转换后的发送报文成功的转发至对应的服务端。即通过向客户端提供MongoDB复制集集群中服务端的虚拟网络地址,仍可实现客户端对服务端的访问。这样使得,无需向客户端提供MongoDB复制集集群中服务端的真实网络地址,即可对MongoDB复制集集群中的服务端的真实网络地址进行隐藏,这样也仍可实现客户端对服务端的访问。
通过以下参照附图对本申请的示例性实施例的详细描述,本申请的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且连同其说明一起用于解释本申请的原理。
图1是实现本申请实施例提供的一种访问MongoDB复制集集群的方法的电子设备的硬件配置的框图;
图2是本申请实施例提供一种访问MongoDB复制集集群的方法的流程示意图;
图3是本申请实施例提供另一种访问MongoDB复制集集群的方法的流程示意图;
图4是本申请实施例提供的一种访问MongoDB复制集集群的装置的结构示意图;
图5是本申请实施例提供的另一种访问MongoDB复制集集群的装置的结构示意图;
图6是本申请实施例提供的一种网关设备的结构示意图;
图7是本申请实施例提供的一种服务端的结构示意图;
图8是本申请实施例提供的一种MongoDB复制集集群的系统的结构示意图;
图9是本申请实施例提供的另一种MongoDB复制集集群的系统的结构示意图。
具体实施方式
现在将参照附图来详细描述本申请的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本申请及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置实施例>
图1是根据本申请实施例提供的一种实现访问MongoDB复制集集群的方法的电子设备的硬件配置的框图。
电子设备101可以是网关设备,还可以为服务端。服务端也可称之为为服务器。网关设备例如是XGW网关设备,或者其他形式的网关设备。服务器可以是物理机,也可以是虚拟机。
电子设备101的具体配置可以包括但不限于:处理器1011、存储器1012、接口装置1013、通信装置1014、输入装置1015、输出装置1016。处理器1011可以包括但不限于中央处理器CPU、微处理器MCU等。存储器1012可以包括但不限于ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1013可以包括但不限于USB接口、串行接口、并行接口等。通信装置1014例如能够进行有线通信或无线通信,具体地可以包括WiFi通信、蓝牙通信、2G/3G/4G/5G通信等。输入装置1015包括但不限于键盘、鼠标、触摸屏等。输出装置1016包括但不限于显示屏等。尽管电子设备也可以包括扬声器、麦克风等等,但是,这些部件与本公开的实施例无关,故在此省略。
应用于本公开的实施例中,电子设备101的存储器1012用于存储指令,该指令用于控制该处理器1011进行操作以执行本公开实施例提供的任意一项的访问MongoDB复制集集群的方法。
图1所示的电子设备仅仅是说明性的并且绝不意味着对本公开实施例、其应用或使用的任何限制。本领域技术人员应当理解,尽管前面描述了电子设备的多个装置,但是,本公开实施例可以仅涉及其中的部分装置。
本领域技术人员可以根据本公开实施例所公开的方案设计指令。指令如何控制处理器进行操作,是本领域公知技术,故在此不再详细描述。
<方法实施例一>
本实施例提供了一种访问MongoDB复制集集群的方法,该方法应用于电子设备,该电子设备为网关设备。该网关设备可如图1所示。
如图2所示,本实施例提供的访问MongoDB复制集集群的方法包括如下S2100-S2300:
S2100、获取客户端发送的发送报文。
其中,发送报文的报文头中包括要访问的MongoDB复制集集群中服务端的虚拟网络地址。
在本实施例中,客户端可以为1个,也可以为多个。在客户端为多个情况下,客户端可处于不同的计算机网络中。例如,在客户端为2个情况下,这两个客户端分别位于不同的VPC(Virtual Private Cloud;虚拟私有云)网络内。其中,VPC网络指的是公有云上自定义的在逻辑上隔离的网络空间。另外,客户端可以为便携式电脑、平板电脑、掌上电脑等。
需要说明的是,在本实施例中,执行本实施例的访问MongoDB复制集集群的方法的网关设备对于每一客户端发送的发送报文的处理方式均相同,因此,本实施例中以对一个客户端发送的发送报文的处理进行说明。
在本实施例中,发送报文指的是,由客户端欲向服务端发送的报文。在一个示例中,发送报文可以为:socket连接请求的报文、查询MongoDB复制集集群的网络拓扑的dbIsMaster命令的报文、写请求的报文以及读请求的报文中的任一个。
在本实施例中,发送报文中包括两部分,一部分为报文头,一部分为报文体。报文头中包括目的地址,即发送报文到达的目的地的网络地址。在本实施例中,报文头中包括的目的地址为要访问的MongoDB复制集集群中服务端的虚拟网络地址。其中,要访问的MongoDB复制集集群中服务端,为要访问的MongoDB复制集集群中任一个节点。以及,网络地址中包括IP地址和端口号。对应的,虚拟网络地址包括虚拟IP地址和虚拟端口号。另外,服务端可以为服务器。
需要说明的是,客户端事先知道MongoDB复制集集群中的一个节点,或者两个节点的虚拟IP地址和虚拟端口号,并基于该一个或者两个节点的虚拟IP地址和虚拟端口号,建立与MongoDB的复制集集群的网络连接以及数据库连接的。另外,在客户端得到MongoDB的复制集集群的网络拓扑的情况下,客户端可知道MongoDB的复制集集群中每一节点的虚拟IP地址和虚拟端口号。
S2200、根据预先存储的映射数据、发送报文,生成转换后的发送报文。
其中,转换后的发送报文的报文头中,包括与虚拟网络地址对应的真实网络地址,映射数据用于反映MongoDB复制集集群中各个服务端的虚拟网络地址和对应的真实网络地址之间的映射关系。
在一个实施例中,开发人员事先为MongoDB复制集集群中各个服务端配置好一个虚拟网络地址,然后将该虚拟网络地址与对应的真实网络地址之间的映射关系输入至执行本实施例提供的访问MongoDB复制集集群的网关设备中,并由该电子设备进行存储。
在另一个实施例中,开发人员事先设置好一个虚拟网络地址的起始网络地址和一个结束网络地址,将该起始网络地址和结束网络地址输入至执行本实施例提供的访问MongoDB复制集集群的网关设备,由该网关设备按照一定的分配规则,在起始网络地址和结束网络地址之间,为MongoDB复制集集群中各个服务端分配对应的虚拟网络地址。然后,由网关设备将MongoDB复制集集群中各个服务端的真实网络地址和虚拟网络地址之间的映射关系进行存储。
基于上述实施例,本实施例提供的一种访问MongoDB复制集集群的方法在上述S2200之前,还包括如下S2210和S2220:
S2210、生成映射数据。
S2220、将映射数据进行存储。
示例性的,预设的映射关系可示例性如下述内容:
Primary InneIP:port-PrimaryVIP:port;
Secondary InnerIP:port-SecondaryVIP:port。
其中,Primary InneIP:port指的是,作为主节点的服务端的真实IP地址和真实的端口号,即作为主节点的服务端的真实网络地址。
PrimaryVIP:port指的是,作为主节点的服务端的虚拟IP地址和虚拟的端口号,即作为主节点的服务端的虚拟网络地址。
Secondary InnerIP:port指的是,作为从节点的服务端的真实IP地址和真实的端口号,即作为从节点的服务端的真实网络地址。
SecondaryVIP:port指的是,作为从节点的服务端的虚拟IP地址和虚拟的端口号,即作为从节点的服务端的虚拟网络地址。
在一个实施例中,上述的S2200的具体实现可以为如下的S2230-S2250:
S2230、从预先存储的映射数据中,查找与发送报文的报文头中包含的虚拟网络地址对应的真实网络地址。
可以理解的是,发送报文的报文头中的虚拟网络地址为发送报文中目的地址字段对应的网络地址。
S2240、将发送报文的报文头中包含的虚拟网络地址替换为查找到的对应的真实网络地址。
S2250、将替换后的发送报文作为转换后的发送报文。
在本实施例中,通过直接将发送报文的报文头中包含的虚拟网络地址替换为查找到的对应的真实网络地址的方式,来生成转换后的发送报文,这样,可简单且快速的生成转换后的发送报文。
在另一实施例中,上述S2200的具体实现还可以为:提取发送报文中除虚拟网络地址之外的数据,将提取出的数据与对应的真实网络地址按照报文的格式进行重新组合,以得到转换后的发送报文。
在又一种实施例中,上述S2200的具体实现还可以为:在发送报文的虚拟网络地址的前面,或者后面添加对应的真实网络地址。这样,也可简单且快速的生成转换后的发送报文。
S2300、将转换后的发送报文转发至对应的服务端。
在本实施例中,对应的服务端指的是,虚拟网络地址所对应的MongoDB复制集集群中的服务端。
在本实施例中,通过获取客户端根据要访问的MongoDB复制集集群中服务端的虚拟网络地址生成的发送报文,然后根据发送报文生成转换后的发送报文。所生成的转换后的发送报文的报文头中包括与虚拟网络地址对应的真实网络地址。此时,按照转换后的发送报文中的真实网络地址,便可将转换后的发送报文成功的转发至对应的服务端。即通过向客户端提供MongoDB复制集集群中服务端的虚拟网络地址,仍可实现客户端对服务端的访问。这样使得,无需向客户端提供MongoDB复制集集群中服务端的真实网络地址,即可对MongoDB复制集集群中的服务端的真实网络地址进行隐藏,这样也仍可实现客户端对服务端的访问。
在上述任一实施例的基础上,本实施例提供的访问MongoDB复制集集群的方法还包括如下S2400-S2600:
S2400、接收对应的服务端发送的反馈报文。
S2500、根据映射数据、反馈报文,生成反馈报文的转换后的反馈报文。
其中,转换后的反馈报文的报文头中包括与对应的服务端的真实网络地址对应的虚拟网络地址。
S2600、将转换后的反馈报文转发至对应的服务端。
在本实施例中,在对应的服务端接收到网关设备转发的转换后的发送报文后,执行该转换后的发送报文所指示的操作,并基于该操作生成反馈报文。反馈报文的报文头中包括的是对应的服务端的真实网络地址。为了避免真实网络地址暴露。需要基于反馈报文生成转换后的反馈报文。最后再将该转换后的反馈报文转发至对应的服务端。
在一个实施例中,上述S2500的具体实现为:从预先存储的映射数据中,查找与反馈报文的报文头中包含的真实网络地址对应的虚拟网络地址;将反馈报文的报文头中包含的真实网络地址替换为查找到的虚拟网络地址;将替换后的反馈报文作为转换后的反馈报文。可以理解的是,反馈报文中包含的真实网络地址,为反馈报文中源地址字段对应网络地址。
在本实施例中,针对于不同操作的转换后的发送报文,对应有不同的反馈报文。
具体的,在转换后的发送报文为网络连接请求的报文的情况下,反馈报文的报文体中包括应答消息。其中,网络连接请求可以为socket连接请求。以及应答消息对应的为一个确认字符ack。
在发送报文包含查询MongoDB复制集集群的网络拓扑的查询请求的情况下,反馈报文的报文体中至少包括MongoDB复制集集群中各个服务端的虚拟网络地址、主从角色标识。其中,主从角色标识用于表示对应的服务端为MongoDB复制集集群中的主节点还是从节点。
示例性的,上述的查询MongoDB复制集集群的网络拓扑的报文为一个dbIsMaster命令。需要说明的是,MongoDB复制集集群需事先进行配置,以使得MongoDB的复制集集群中的任一服务端,在接收到的转换后的发送报文为dbIsMaster命令的情况下,反馈报文的报文体中至少包含MongoDB复制集集群中各个服务端的虚拟网络地址、主从角色标识。
其中,事先配置MongoDB的复制集集群的具体实现可以为:在MongoDB的复制集集群的作为主节点的服务端的内核中增加如上的映射数据。由于MongoDB的复制集集群的同步功能,这样,MongoDB的复制集集群的每一服务端中将都存储有如上的映射数据。另外,事先配置MongoDB的复制集集群的具体还可以实现为:在MongoDB的复制集集群的各个服务端的内核中增加如上的映射数据。其中,映射数据与上述S2200中涉及到的映射数据一致。
基于上述内容,可以理解的是,MongoDB复制集集群中各个服务端中存储有映射数据;服务端基于查询MongoDB复制集集群的网络拓扑的报文,生成的反馈报文的报文体中至少包括MongoDB复制集集群中各个服务端的虚拟网络地址、主从角色标识。
在转换后的发送报文为读操作或写操作的报文的情况下,反馈报文的报文体中包括对应的写结果或读结果。
其中,写操作包括增加数据、删除数据等引起数据发生变化的操作。对应的写结果可以为写成功或写失败。
读操作包括查询等不会引起数据发生变化的操作。对应的读结果可以为:读取的数据内容,或者读取失败。
需要说明的是,转换后的发送报文还可以为其他操作的报文,对应的,与转换后的发送报文对应的反馈报文中包括对应的操作结果。
在上述任一实施例的基础上,本实施例提供的访问MongoDB复制集集群的方法中所涉及到的客户端和对应的服务端可位于同一计算机网络中,也可以位于不同的计算机网络中。例如,客户端位于VPC网络中,而对应的服务端位于基础Basic网络中。
需要说明的是,在客户端和对应的服务端位于不同的计算机网络中时,本实施例提供的访问MongoDB复制集集群的方法中所涉及到的虚拟网络地址为对应于客户端所在的计算机网络的网络地址。
在本实施例中,在客户端和对应的服务端位于不同的计算机网络中时,客户端仍可实现对服务端的访问。
<方法实施例二>
本实施例提供了一种访问MongoDB复制集集群的方法,该方法的执行主体可以为电子设备。该电子设备为MongoDB复制集集群中的任一服务端。
如图3所示,该方法包括如下S3100和S3200:
S3100、存储映射数据;映射数据用于反映MongoDB复制集集群中各个服务端的虚拟网络地址和对应的真实网络地址之间的映射关系。
在本实施例中,上述S3100的具体实现可以为:在MongoDB的复制集集群的作为主节点的服务端的内核中增加如上的映射数据。由于MongoDB的复制集集群的同步功能,这样,MongoDB的复制集集群的每一服务端中将都存储有如上的映射数据。
另外,上述S3100的具体实现还可以为:在MongoDB的复制集集群的各个服务端的内核中增加如上的映射数据。
需要说明的是,上述S3100中涉及到的映射数据,与上述S2200中涉及到的映射数据完全一致。
S3200、在接收到基于查询MongoDB复制集集群的网络拓扑的报文的情况下,生成反馈报文;反馈报文的报文体中至少包括MongoDB复制集集群中各个服务端的虚拟网络地址、主从角色标识。
在本实施例中,由于反馈报文的报文体中至少包括MongoDB复制集集群中各个服务端的虚拟网络地址、主从角色标识,因此,可以避免MongoDB复制集集群中服务端的网络地址暴露。
<虚拟装置实施例一>
如图4所示,本实施例提供了一种访问MongoDB复制集集群的装置40。该装置包括获取模块41、生成模块42和转发模块43。
第一获取模块41,用于获取客户端发送的发送报文;发送报文的报文头中包括要访问的MongoDB复制集集群中服务端的虚拟网络地址;
第一生成模块42,用于根据预先存储的映射数据、发送报文,生成转换后的发送报文;转换后的发送报文的报文头中包括与虚拟网络地址对应的真实网络地址;映射数据用于反映MongoDB复制集集群中各个服务端的虚拟网络地址和对应的真实网络地址之间的映射关系;
第一转发模块43,用于将转换后的发送报文发送至对应的服务端转换后的发送报文发送至对应的服务端。
在一个实施例中,该装置还包括第二获取模块、第二生成模块和第二转发模块(图中均未示出)。
第二获取模块,用于接收对应的服务端发送的反馈报文。
第二生成模块,用于根据映射数据、反馈报文,生成转换后的反馈报文;转换后的反馈报文的报文头中包括与对应的服务端的真实网络地址对应的虚拟网络地址。
第二转发模块,用于将转换后的反馈报文转发至客户端。
在一个实施例中,在发送报文包含查询MongoDB复制集集群的网络拓扑的查询请求的情况下,反馈报文的报文体中至少包括MongoDB复制集集群中各个服务端的虚拟网络地址和主从角色标识,其中,主从角色标识用于表示服务端为MongoDB复制集集群的主节点或者从节点。
在一个实施例中,该装置还包括存储模块。存储模块用于:生成映射数据;将映射数据进行存储。
在一个实施例中,第一生成模块还用于:从预先存储的映射数据中,查找与发送报文的报文头中包含的虚拟网络地址对应的真实网络地址;将发送报文的报文头中包含的虚拟网络地址替换为查找到的对应的真实网络地址;将替换后的发送报文作为转换后的发送报文。
在一个实施例中,客户端和对应的服务端位于不同的计算机网络中。
<虚拟装置实施例二>
如图5所示,本实施例提供了一种访问MongoDB复制集集群的装置50。该装置包括存储模块51和生成模块52。其中:
存储模块51,用于存储映射数据;映射数据用于反映MongoDB复制集集群中各个服务端的虚拟网络地址和对应的真实网络地址之间的映射关系;
生成模块52,用于在接收到基于查询MongoDB复制集集群的网络拓扑的报文的情况下,生成反馈报文;反馈报文的报文体中至少包括MongoDB复制集集群中各个服务端的虚拟网络地址、主从角色标识。
<设备实施例一>
本实施例提供一种网关设备60。该网关设备60包括如图4所示的访问MongoDB复制集集群的装置40。或者如图6所示,包括存储器61和处理器62,存储器61用于存储计算机指令,处理器62用于从存储器61中调用计算机指令,以执行如上述方法实施例一中描述的方法。
<设备实施例二>
本实施例提供一种服务端70。该网关设备70包括如图5所示的访问MongoDB复制集集群的装置50。或者如图7所示,包括存储器71和处理器72,存储器71用于存储计算机指令,处理器72用于从存储器71中调用计算机指令,以执行如上述方法实施例二中描述的方法。
<系统实施例>
本实施例提供一种访问MongoDB复制集集群的系统80,如图8所示,该系统80中包括:包括如图6所示的网关设备60和MongoDB复制集集群81。MongoDB复制集集群81中包括至少一个如图7的服务端70。
基于上述内容,以网关设备为XGW网关设备为例,如图9所示,本实施例提供了另一种访问MongoDB复制集集群的系统的结构示意图。该系统中包括客户端1和客户端2,客户端1和客户端2位于不同的VPC网络内,MongoDB的复制集集群位于基础Basic网络中。客户端1和客户端2分别通过XGW网关设备与MongoDB的复制集集群中的服务端进行通信。
<存储介质实施例>
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被处理器执行时实现根据上述方法实施例中描述的方法。
本申请可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本申请的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。
这里参照根据本申请实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本申请的范围由所附权利要求来限定。
Claims (17)
1.一种访问MongoDB复制集集群的方法,其特征在于,所述方法应用于网关设备,包括:
获取客户端发送的发送报文;所述发送报文的报文头中包括要访问的MongoDB复制集集群中服务端的虚拟网络地址;
根据预先存储的映射数据、所述发送报文,生成转换后的发送报文;所述转换后的发送报文的报文头中包括与所述虚拟网络地址对应的真实网络地址;所述映射数据用于反映所述MongoDB复制集集群中各个服务端的虚拟网络地址和对应的真实网络地址之间的映射关系;
将所述转换后的发送报文转发至对应的服务端。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述对应的服务端发送的反馈报文;
根据所述映射数据、所述反馈报文,生成转换后的反馈报文;所述转换后的反馈报文的报文头中包括与所述对应的服务端的真实网络地址对应的虚拟网络地址;
将所述转换后的反馈报文转发至客户端。
3.根据权利要求1或2所述的方法,其特征在于,在所述发送报文包含查询所述MongoDB复制集集群的网络拓扑的查询请求的情况下,所述反馈报文的报文体中至少包括所述MongoDB复制集集群中各个服务端的虚拟网络地址和主从角色标识,其中,所述主从角色标识用于表示服务端为所述MongoDB复制集集群的主节点或者从节点。
4.根据权利要求1所述的方法,其特征在于,在所述根据预先存储的映射数据、所述发送报文,生成转换后的发送报文之前,还包括:
生成所述映射数据;
将所述映射数据进行存储。
5.根据权利要求1所述的方法,其特征在于,所述根据预先存储的映射数据、所述发送报文,生成转换后的发送报文,包括:
从所述预先存储的映射数据中,查找与所述发送报文的报文头中包含的虚拟网络地址对应的真实网络地址;
将所述发送报文的报文头中包含的虚拟网络地址替换为查找到的所述对应的真实网络地址;
将替换后的发送报文作为转换后的发送报文。
6.根据权利要求1所述的方法,其特征在于,所述客户端和所述对应的服务端位于不同的计算机网络中。
7.一种访问MongoDB复制集集群的方法,其特征在于,所述方法应用于所述MongoDB复制集集群中的任一服务端,包括:
存储映射数据;所述映射数据用于反映所述MongoDB复制集集群中各个服务端的虚拟网络地址和对应的真实网络地址之间的映射关系;
在接收到查询所述MongoDB复制集集群的网络拓扑的报文的情况下,生成反馈报文;所述反馈报文中至少包括所述MongoDB复制集集群中各个服务端的虚拟网络地址和主从角色标识,其中,所述主从角色标识用于表示服务端为所述MongoDB复制集集群的主节点或者从节点。
8.一种访问MongoDB复制集集群的装置,其特征在于,包括:
第一获取模块,用于获取客户端发送的发送报文;所述发送报文的报文头中包括要访问的MongoDB复制集集群中服务端的虚拟网络地址;
第一生成模块,用于根据预先存储的映射数据、所述发送报文,生成转换后的发送报文;所述转换后的发送报文的报文头中包括与所述虚拟网络地址对应的真实网络地址;所述映射数据用于反映所述MongoDB复制集集群中各个服务端的虚拟网络地址和对应的真实网络地址之间的映射关系;
第一转发模块,用于将所述转换后的发送报文转发至对应的服务端。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于接收所述对应的服务端发送的反馈报文;
第二生成模块,用于根据所述映射数据、所述反馈报文,生成转换后的反馈报文;所述转换后的反馈报文的报文头中包括与所述对应的服务端的真实网络地址对应的虚拟网络地址;
第二转发模块,用于将所述转换后的反馈报文转发至客户端。
10.根据权利要求8或9所述的装置,其特征在于,在所述发送报文包含查询所述MongoDB复制集集群的网络拓扑的查询请求的情况下,所述反馈报文的报文体中至少包括所述MongoDB复制集集群中各个服务端的虚拟网络地址和主从角色标识,其中,所述主从角色标识用于表示服务端为所述MongoDB复制集集群的主节点或者从节点。
11.根据权利要求8所述的装置,其特征在于,还包括存储模块,用于:
生成所述映射数据;
将所述映射数据进行存储。
12.根据权利要求8所述的装置,其特征在于,第一生成模块还用于:
从所述预先存储的映射数据中,查找与所述发送报文的报文头中包含的虚拟网络地址对应的真实网络地址;
将所述发送报文的报文头中包含的虚拟网络地址替换为查找到的所述对应的真实网络地址;
将替换后的发送报文作为转换后的发送报文。
13.根据权利要求8所述的装置,其特征在于,所述客户端和所述对应的服务端位于不同的计算机网络中。
14.一种访问MongoDB复制集集群的装置,其特征在于,所述装置包括:
存储数据,用于存储映射数据;所述映射数据用于反映所述MongoDB复制集集群中各个服务端的虚拟网络地址和对应的真实网络地址之间的映射关系;
生成模块,用于在接收到查询所述MongoDB复制集集群的网络拓扑的报文的情况下,生成反馈报文;所述反馈报文中至少包括所述MongoDB复制集集群中各个服务端的虚拟网络地址和主从角色标识,其中,所述主从角色标识用于表示服务端为所述MongoDB复制集集群的主节点或者从节点。
15.一种网关设备,其特征在于,包括如权利要求8所述的装置;或者,
包括存储器和处理器,所述存储器用于存储计算机指令,所述处理器用于从所述存储器中调用所述计算机指令,以执行如权利要求1-6中任一项所述的方法。
16.一种服务端,其特征在于,包括如权利要求14所述的装置;或者,
包括存储器和处理器,所述存储器用于存储计算机指令,所述处理器用于从所述存储器中调用所述计算机指令,以执行如权利要求7所述的方法。
17.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010462828.4A CN111711710B (zh) | 2020-05-27 | 2020-05-27 | 访问MongoDB复制集集群的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010462828.4A CN111711710B (zh) | 2020-05-27 | 2020-05-27 | 访问MongoDB复制集集群的方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111711710A true CN111711710A (zh) | 2020-09-25 |
CN111711710B CN111711710B (zh) | 2022-11-11 |
Family
ID=72538674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010462828.4A Active CN111711710B (zh) | 2020-05-27 | 2020-05-27 | 访问MongoDB复制集集群的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111711710B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116471109A (zh) * | 2022-12-01 | 2023-07-21 | 黄建邦 | 数据传输方法、系统、第一端及控制设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170149648A1 (en) * | 2015-11-20 | 2017-05-25 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Virtual router cluster, data forwarding method and apparatus |
CN107135242A (zh) * | 2016-02-29 | 2017-09-05 | 阿里巴巴集团控股有限公司 | Mongodb集群访问方法、装置及系统 |
CN108781162A (zh) * | 2015-12-31 | 2018-11-09 | 华为技术有限公司 | 一种网络节点、报文传输方法和网络 |
CN109451084A (zh) * | 2018-09-14 | 2019-03-08 | 华为技术有限公司 | 一种服务访问方法及装置 |
-
2020
- 2020-05-27 CN CN202010462828.4A patent/CN111711710B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170149648A1 (en) * | 2015-11-20 | 2017-05-25 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Virtual router cluster, data forwarding method and apparatus |
CN108781162A (zh) * | 2015-12-31 | 2018-11-09 | 华为技术有限公司 | 一种网络节点、报文传输方法和网络 |
CN107135242A (zh) * | 2016-02-29 | 2017-09-05 | 阿里巴巴集团控股有限公司 | Mongodb集群访问方法、装置及系统 |
CN109451084A (zh) * | 2018-09-14 | 2019-03-08 | 华为技术有限公司 | 一种服务访问方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116471109A (zh) * | 2022-12-01 | 2023-07-21 | 黄建邦 | 数据传输方法、系统、第一端及控制设备 |
WO2023151354A3 (zh) * | 2022-12-01 | 2023-10-05 | 黄建邦 | 数据传输方法、系统、第一端、中间网络设备及控制设备 |
CN116471109B (zh) * | 2022-12-01 | 2024-03-05 | 黄建邦 | 数据传输方法、系统、第一端及控制设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111711710B (zh) | 2022-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11516129B2 (en) | Packet edit processing method and related device | |
JP2022536787A (ja) | ネットワークデータプレーンのエッジデータベース管理 | |
US11516312B2 (en) | Kubernetes as a distributed operating system for multitenancy/multiuser | |
CN116018788A (zh) | 为动态发现的对等体或网络功能配置服务网格联网资源 | |
CN109714188B (zh) | 基于Zookeeper的配置数据管理方法、设备和存储介质 | |
CN109936641B (zh) | 域名解析的方法、虚拟交换机和分布式dns系统 | |
JP7132494B2 (ja) | マルチクラウド運用プログラム、およびマルチクラウド運用方法 | |
CN110727417A (zh) | 一种数据处理方法和装置 | |
CN111711710B (zh) | 访问MongoDB复制集集群的方法、装置、设备及存储介质 | |
EP3107010B1 (en) | Data integration pipeline | |
CN114816225A (zh) | 存储集群的管理方法、装置、电子设备及存储介质 | |
CN112804366B (zh) | 用于解析域名的方法和装置 | |
JP2017538237A (ja) | 仮想マシン名を表示するための方法、装置、およびシステム | |
JP2015159482A (ja) | ネットワーク装置、及び、通信方法 | |
CN108536410B (zh) | 无线传屏方法及系统 | |
CN112994909A (zh) | 管理Kubernetes集群的方法、装置、设备及存储介质 | |
US9456046B2 (en) | Dynamic generation of proxy connections | |
CN107231409B (zh) | Dns数据处理方法、装置、存储介质及计算机设备 | |
US20210144182A1 (en) | Identifying recommended feature sets based on application feature popularity | |
JP2015090511A (ja) | 分散Webアップロードシステム | |
US9787587B2 (en) | Method and apparatus for bidirectional message routing between services running on different network nodes | |
CN115129779A (zh) | 数据库的同步方法、装置及可读介质 | |
CN106993036B (zh) | 运行环境信息处理方法及交换机 | |
CN112269664A (zh) | 云服务器资源管理方法、装置及系统 | |
US10180830B2 (en) | Information processing device, deployment method, and recording medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |