CN111614733A - 一种分布式多分片集群的部署方法、装置及存储介质 - Google Patents
一种分布式多分片集群的部署方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111614733A CN111614733A CN202010358133.1A CN202010358133A CN111614733A CN 111614733 A CN111614733 A CN 111614733A CN 202010358133 A CN202010358133 A CN 202010358133A CN 111614733 A CN111614733 A CN 111614733A
- Authority
- CN
- China
- Prior art keywords
- server
- configuration
- servers
- routing
- node
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- 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/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种分布式多分片集群的部署方法、装置及存储介质,该方法包括:配置服务器的配置步骤,基于配置服务器的IP将配置服务器配置为不同的服务类型并创建配置文件;分片服务器的配置步骤,基于分片服务器的数量将一个分片服务器上的主节点、副本集节点和仲裁节点分别设置属于不同的服务器节点上;路由服务器的配置步骤,用于建立路由服务与分片服务之间的对应关系。本发明利用循环算法,将一个分片的副本集配置成非本机节点,如果循环到最后一个分片,他的副本集就是第一个分片,使得数据在不同的节点有个备份,确保了数据的完整性。从而实现了高效、快速地部署服务,适用于在分布式、多分片以及副本集配置的场景。
Description
技术领域
本发明涉及分布式数据处理技术领域,具体涉及一种分布式多分片集群的部署方法、装置及存储介质。
背景技术
随着社会的发展,科技的进步,传统的单机架构模式已经远远的不能满足我们日益增长的数据存储需求。为了满足数据的高效存储和查询,我们数据库模式从单机到主从,然后到分布式架构最后又衍生出了多分片和副本集的集群模式。现如今4G普及5G到来的互联网趋势下,大量实时数据的高速增长,尤其是互联网的实时访问数据、日志数据等,如今社交数据、企业内容、交易与应用数据等新数据源的兴起,传统数据源的局限被打破,企业越发需要有效的信息来确保其真实性及安全性,越发需要合理、安全、高性能的集群模式来保证数据的可靠性和可用性,以及出现故障之后确保及时的进行故障修复。
在实际的生产环境中,为了保证数据的安全性、并发性、可用性、完整性和及时的故障恢复,目前采用的主要技术是分布式+多分片+副本集的集群模式。但是,分布式+多分片+副本集集群模式的部署面临很大的挑战,目前采用最多的方式就是手动为每个节点创建分片、创建目录、创建配置文件、选择端口号、分片节点副本集的分配、不同角色的选择、分片集的初始化等一系列复杂的操作。
目前部署分布式+多分片+副本集的集群,需要在安装之前进行详细的规划,如考虑分片的副本集,设计目录结构,规划每个实例的端口号,即使是在安装之前进行详细的规划也避免不了在手动创建文件、创建目录的时候出错,导致一个分片上来自不同副本集节点的混乱。手动操作这样的错误是很难避免的,同时出了问题也是很难发现的,他会直接导致数据的分派不均,影响数据的安全性和完整性。如果是在集群规模大,分片数量多的情况下,手动规划安装部署就变得不可能。
发明内容
本发明针对上述现有技术中的缺陷,提出了如下技术方案。
一种分布式多分片集群的部署方法,该方法包括:
配置服务器的配置步骤,基于配置服务器的IP将配置服务器配置为不同的服务类型并创建配置文件;
分片服务器的配置步骤,基于分片服务器的数量将一个分片服务器上的主节点、副本集节点和仲裁节点分别设置属于不同的服务器节点上;
路由服务器的配置步骤,用于建立路由服务与分片服务之间的对应关系。
更进一步地,所述集群为MongoDB分布式数据库集群,所述MongoDB分布式集群由配置服务器、分片服务器和路由服务器组成,所述配置服务器为至少一台配置服务器configserver,所述分片服务器为多个分片服务器shard,所述路由服务器为多个路由服务器mongos。
更进一步地,所述将配置服务器配置为不同的服务类型并创建配置文件的操作为:解析配置服务器的IP,根据IP数目确定配置服务器的数目,在每一台配置服务器configserver中创建配置服务的配置文件,所述配置文件包含了数据目录、日志目录和服务端口号;如果配置服务器的数目为1,则登录MongoDB分布式数据将该一台配置服务器初始化为主节点;如果配置服务器的数目为2,则登录MongoDB分布式数据将该一台配置服务器初始化为主节点和备节点;如果配置服务器的数目为3,则登录MongoDB分布式数据将该一台配置服务器初始化为主节点、备节点和仲裁节点。
更进一步地,所述分片服务器的配置步骤的操作为:
解析每一个分片服务器的IP,并创建分片服务器的数组sinos用于每一个分片服务器的IP,根据所述数组sinos中的IP计算分片服务器的数量num,定义变量startpos=0,记录数组sinos的起始位置;定义变量port记录分片服务器端口号的开始值,使用port+1循环处理为其他的分片服务器配置端口号;定义变量post=1,用于记录当前已处理的分片服务器的数目;
定义变量flag=0,用来记录数组sinos的下标;
循环构建副本集,总共循环3次,记录一个分片服务器上分配的主节点、备份节点和仲裁节点:定义变量subscript记录数组sinos的下标,初始值为0,判断如果subscript小于分片服务器的数量num,则取数组sinos中下标为subscript的值记录在变量sship中,否则取数组sinos中下标为flag的值记录在变量sship中,之后flag+1;远程到IP地址为sship的分片服务器上创建数据目录、日志目录以及启动的配置文件,定义一个变量array数组用来记录一个分片服务器上的主节点、备份节点和仲裁节点的IP地址,该数组的值用于在初始化副本集的时候读取;
远程登录到IP地址为sinos[post]的分片服务器,登录MongoDB,读取array数组中的IP地址来初始化副本集,并定义变量数组arrayShardServer,存储每个分片的信息,用于在初始化路由服务器的时候串联路由服务器和分片服务器;然后startpos+1,post+1,对其余的分片服务器进行配置,直到post大于num,完成所有分片服务器的配置。
更进一步地,所述建立路由服务与分片服务之间的对应关系的操作为:解析所有路由服务器的IP地址,登录每一个IP地址在每一个路由服务器创建相关目录和配置文件;循环arrayShardServer数组中分片服务器,使用其中之一的路由服务器登录MongoDB,串联路由服务器和分片服务器以建立路由服务与分片服务之间的对应关系。
本发明还提出了一种分布式多分片集群的部署装置,该装置包括:
配置服务器的配置单元,基于配置服务器的IP将配置服务器配置为不同的服务类型并创建配置文件;
分片服务器的配置单元,基于分片服务器的数量将一个分片服务器上的主节点、副本集节点和仲裁节点分别设置属于不同的服务器节点上;
路由服务器的配置单元,用于建立路由服务与分片服务之间的对应关系。
更进一步地,所述集群为MongoDB分布式数据库集群,所述MongoDB分布式集群由配置服务器、分片服务器和路由服务器组成,所述配置服务器为至少一台配置服务器configserver,所述分片服务器为多个分片服务器shard,所述路由服务器为多个路由服务器mongos。
更进一步地,所述将配置服务器配置为不同的服务类型并创建配置文件的操作为:解析配置服务器的IP,根据IP数目确定配置服务器的数目,在每一台配置服务器configserver中创建配置服务的配置文件,所述配置文件包含了数据目录、日志目录和服务端口号;如果配置服务器的数目为1,则登录MongoDB分布式数据将该一台配置服务器初始化为主节点;如果配置服务器的数目为2,则登录MongoDB分布式数据将该一台配置服务器初始化为主节点和备节点;如果配置服务器的数目为3,则登录MongoDB分布式数据将该一台配置服务器初始化为主节点、备节点和仲裁节点。
更进一步地,所述分片服务器的配置单元的操作为:
解析每一个分片服务器的IP,并创建分片服务器的数组sinos用于每一个分片服务器的IP,根据所述数组sinos中的IP计算分片服务器的数量num,定义变量startpos=0,记录数组sinos的起始位置;定义变量port记录分片服务器端口号的开始值,使用port+1循环处理为其他的分片服务器配置端口号;定义变量post=1,用于记录当前已处理的分片服务器的数目;
定义变量flag=0,用来记录数组sinos的下标;
循环构建副本集,总共循环3次,记录一个分片服务器上分配的主节点、备份节点和仲裁节点:定义变量subscript记录数组sinos的下标,初始值为0,判断如果subscript小于分片服务器的数量num,则取数组sinos中下标为subscript的值记录在变量sship中,否则取数组sinos中下标为flag的值记录在变量sship中,之后flag+1;远程到IP地址为sship的分片服务器上创建数据目录、日志目录以及启动的配置文件,定义一个变量array数组用来记录一个分片服务器上的主节点、备份节点和仲裁节点的IP地址,该数组的值用于在初始化副本集的时候读取;
远程登录到IP地址为sinos[post]的分片服务器,登录MongoDB,读取array数组中的IP地址来初始化副本集,并定义变量数组arrayShardServer,存储每个分片的信息,用于在初始化路由服务器的时候串联路由服务器和分片服务器;然后startpos+1,post+1,对其余的分片服务器进行配置,直到post大于num,完成所有分片服务器的配置。
更进一步地,所述建立路由服务与分片服务之间的对应关系的操作为:解析所有路由服务器的IP地址,登录每一个IP地址在每一个路由服务器创建相关目录和配置文件;循环arrayShardServer数组中分片服务器,使用其中之一的路由服务器登录MongoDB,串联路由服务器和分片服务器以建立路由服务与分片服务之间的对应关系。
本发明还提出了一种计算机可读存储介质,所述存储介质上存储有计算机程序代码,当所述计算机程序代码被计算机执行时执行上述之任一的方法。
本发明的技术效果在于:本发明的一种分布式多分片集群的部署方法,其特征在于,该方法包括:配置服务器的配置步骤,基于配置服务器的IP将配置服务器配置为不同的服务类型并创建配置文件;分片服务器的配置步骤,基于分片服务器的数量将一个分片服务器上的主节点、副本集节点和仲裁节点分别设置属于不同的服务器节点上;路由服务器的配置步骤,用于建立路由服务与分片服务之间的对应关系。本发明利用循环算法,将一个分片的副本集配置成非本机节点,如果循环到最后一个分片,他的副本集就是第一个分片,使得数据在不同的节点有个备份,确保了数据的完整性。从而实现了高效、快速地部署服务,适用于在分布式、多分片以及副本集配置的场景。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显。
图1是根据本发明的实施例的一种分布式多分片集群的部署方法的流程图。
图2是根据本发明的实施例的一种分布式多分片集群的部署装置的结构图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了本发明的一种分布式多分片集群的部署方法,该方法包括:
配置服务器的配置步骤S101,基于配置服务器的IP将配置服务器配置为不同的服务类型并创建配置文件。
分片服务器的配置步骤S102,基于分片服务器的数量将一个分片服务器上的主节点、副本集节点和仲裁节点分别设置属于不同的服务器节点上。
路由服务器的配置步骤S103,用于建立路由服务与分片服务之间的对应关系。
优选地,本发明以MongoDB集群的部署为例,详细的说明了类似分布式+多分片+副本集模式的集群的部署方法。本方法主要解决MongoDB集群部署的问题,实现集群模式简洁、快速、高效的安装。主要过程是实现自动化路由服务、配置服务、分片服务配置文件的创建,初始化副本集,串联路由服务器与分配副本集等操作。比如,本发明的所述集群为MongoDB分布式数据库集群,所述MongoDB分布式集群由配置服务器、分片服务器和路由服务器组成,所述配置服务器为至少一台配置服务器configserver,所述分片服务器为多个分片服务器shard,所述路由服务器为多个路由服务器mongos。
在一个实施例中,所述将配置服务器配置为不同的服务类型并创建配置文件的操作为:解析配置服务器的IP,根据IP数目确定配置服务器的数目,在每一台配置服务器configserver中创建配置服务的配置文件,所述配置文件包含了数据目录、日志目录和服务端口号;如果配置服务器的数目为1,则登录MongoDB分布式数据将该一台配置服务器初始化为主节点;如果配置服务器的数目为2,则登录MongoDB分布式数据将该一台配置服务器初始化为主节点和备节点;如果配置服务器的数目为3,则登录MongoDB分布式数据将该一台配置服务器初始化为主节点、备节点和仲裁节点。configserver在集群中和mongos相互连接,为其提供服务。配置服务器(configserver)并不存储数据资源,而是存储数据分片服务器(也可以简称为分片、分片服务、shard等)以及数据块(chunk)的具体信息,在集群运行的时候将这些信息提供给mongos路由服务器。通过上述操作,可以自动的将configserver完成配置,实现高效、快速的配置。在MongoDB分布式集群中,shard可以由单个的mongodb进程构成,也可以是多个mongodb组成的副本集(Replica Set)构成。副本集是一种特殊的主从复制集群,副本集没有固定的主节点,可以根据集群具体运行状态,随时选定出主节点,而其余节点中存储主节点的备份数据,因此副本集拥有良好的自动故障恢复功能,这是本发明的重要发明点之一。
在一个实施例中,所述分片服务器的配置步骤S102的操作具体为:
解析每一个分片服务器的IP,并创建分片服务器的数组sinos用于每一个分片服务器的IP,根据所述数组sinos中的IP计算分片服务器的数量num,定义变量startpos=0,记录数组sinos的起始位置;定义变量port记录分片服务器端口号的开始值,使用port+1循环处理为其他的分片服务器配置端口号;定义变量post=1,用于记录当前已处理的分片服务器的数目;
定义变量flag=0,用来记录数组sinos的下标;
循环构建副本集,总共循环3次,记录一个分片服务器上分配的主节点、备份节点和仲裁节点:定义变量subscript记录数组sinos的下标,初始值为0,判断如果subscript小于分片服务器的数量num,则取数组sinos中下标为subscript的值记录在变量sship(表示要登录到IP地址sship为那台分片服务器进行操作)中,否则取数组sinos中下标为flag的值记录在变量sship中,之后flag+1;远程到IP地址为sship的分片服务器上创建数据目录、日志目录以及启动的配置文件,定义一个变量array数组用来记录一个分片服务器上的主节点、备份节点和仲裁节点的IP地址,该数组的值用于在初始化副本集的时候读取。且每个分片的端口号是不同的,目录和文件的名称为shard$[startpos+1],假设有n个分片服务,创建的目录就是shard1到shardn,这样就很清晰的知道一个集群有多少个分片,也可以知道本主机上存在的副本集属于哪个分片。此时还需要定义一个变量array数组用来记录一个分片上主节点、备份节点和仲裁节点的IP,该数组的值需要在初始化副本集的时候读取。此时结束3次循环结束,处理的操作是分别远程到三个分片服务器上创建了分片1的相关配置。
远程登录到IP地址为sinos[post]的分片服务器,登录MongoDB,读取array数组中的IP地址来初始化副本集,并定义变量数组arrayShardServer,存储每个分片的信息(包含分片名称、IP和分片的端口号),用于在初始化路由服务器的时候串联路由服务器和分片服务器,即开始的时候,post=1,完成分片1的第一层的循环结束,第一个分片shard1的所有信息处理完成,然后startpos+1(其含义为startpos=startpos+1,即加一),post+1(其含义为post=post+1,即加一),对其余的分片服务器进行配置,直到post大于num,完成所有分片服务器的配置。
以上是本发明的两重循环算法,其实现了一个分片上的主节点、副本集节点和仲裁节点配置分别属于不同的服务器节点上,这样的设置,保证了备份的数据在不同的节点上,如果主节点出现故障,备份节点可以马上将主节点的业务接管过来进行工作,保证数据的安全性,这是本发明的重要发明点之一。
在一个实施例中,所述建立路由服务与分片服务之间的对应关系的操作为:解析所有路由服务器的IP地址,登录每一个IP地址在每一个路由服务器创建相关目录和配置文件;循环arrayShardServer数组中分片服务器,使用其中之一的路由服务器登录MongoDB,串联路由服务器和分片服务器以建立路由服务与分片服务之间的对应关系。mongos是集群中的路由服务器,集群通过mongos连接客户端和服务器,客户端发出的不同请求,会由mongos分发给集群中的不同服务器。在路由器的选择中,可以根据负载算法从多个mongos中选择其中之一进行相应的操作,这是本发明的重要发明点之另一。
本发明实现了高效、快速、简介的MongoDB集群部署方法,减少繁琐的规划过程和创建分片目录过程。只需要给路由服务器、配置服务器、分片服务器三个角色分配IP,将其作为参数传递给脚本,就可以实现方便、快速、可控的服务部署;实现了MongoDB分片加副本集的部署模式,使得每个分片数据在其他节点都保存了一份副本集,更好的保证了数据的完整性;实现了不同角色配置文件的自动生成,数据目录、日志目录的灵活创建,同一主机上不同角色的统一启动,停止。对MongoDB的启动和停止提供了很便利的操作。本发明适用于在大数据环境下,所有需要基于分布式+多分片+副本集技术来部署集群的情况。
图2示出了本发明的本发明的一种分布式多分片集群的部署装置,该装置包括:
配置服务器的配置单元201,基于配置服务器的IP将配置服务器配置为不同的服务类型并创建配置文件。
分片服务器的配置单元202,基于分片服务器的数量将一个分片服务器上的主节点、副本集节点和仲裁节点分别设置属于不同的服务器节点上。
路由服务器的配置单元203,用于建立路由服务与分片服务之间的对应关系。
优选地,本发明以MongoDB集群的部署为例,详细的说明了类似分布式+多分片+副本集模式的集群的部署方法。本装置主要解决MongoDB集群部署的问题,实现集群模式简洁、快速、高效的安装。主要过程是实现自动化路由服务、配置服务、分片服务配置文件的创建,初始化副本集,串联路由服务器与分配副本集等操作。比如,本发明的所述集群为MongoDB分布式数据库集群,所述MongoDB分布式集群由配置服务器、分片服务器和路由服务器组成,所述配置服务器为至少一台配置服务器configserver,所述分片服务器为多个分片服务器shard,所述路由服务器为多个路由服务器mongos。
在一个实施例中,所述将配置服务器配置为不同的服务类型并创建配置文件的操作为:解析配置服务器的IP,根据IP数目确定配置服务器的数目,在每一台配置服务器configserver中创建配置服务的配置文件,所述配置文件包含了数据目录、日志目录和服务端口号;如果配置服务器的数目为1,则登录MongoDB分布式数据将该一台配置服务器初始化为主节点;如果配置服务器的数目为2,则登录MongoDB分布式数据将该一台配置服务器初始化为主节点和备节点;如果配置服务器的数目为3,则登录MongoDB分布式数据将该一台配置服务器初始化为主节点、备节点和仲裁节点。configserver在集群中和mongos相互连接,为其提供服务。配置服务器(configserver)并不存储数据资源,而是存储数据分片服务器(也可以简称为分片、分片服务、shard等)以及数据块(chunk)的具体信息,在集群运行的时候将这些信息提供给mongos路由服务器。通过上述操作,可以自动的将configserver完成配置,实现高效、快速的配置。在MongoDB分布式集群中,shard可以由单个的mongodb进程构成,也可以是多个mongodb组成的副本集(Replica Set)构成。副本集是一种特殊的主从复制集群,副本集没有固定的主节点,可以根据集群具体运行状态,随时选定出主节点,而其余节点中存储主节点的备份数据,因此副本集拥有良好的自动故障恢复功能,这是本发明的重要发明点之一。
在一个实施例中,所述分片服务器的配置单元202的操作具体为:
解析每一个分片服务器的IP,并创建分片服务器的数组sinos用于每一个分片服务器的IP,根据所述数组sinos中的IP计算分片服务器的数量num,定义变量startpos=0,记录数组sinos的起始位置;定义变量port记录分片服务器端口号的开始值,使用port+1循环处理为其他的分片服务器配置端口号;定义变量post=1,用于记录当前已处理的分片服务器的数目;
定义变量flag=0,用来记录数组sinos的下标;
循环构建副本集,总共循环3次,记录一个分片服务器上分配的主节点、备份节点和仲裁节点:定义变量subscript记录数组sinos的下标,初始值为0,判断如果subscript小于分片服务器的数量num,则取数组sinos中下标为subscript的值记录在变量sship(表示要登录到IP地址sship为那台分片服务器进行操作)中,否则取数组sinos中下标为flag的值记录在变量sship中,之后flag+1;远程到IP地址为sship的分片服务器上创建数据目录、日志目录以及启动的配置文件,定义一个变量array数组用来记录一个分片服务器上的主节点、备份节点和仲裁节点的IP地址,该数组的值用于在初始化副本集的时候读取。且每个分片的端口号是不同的,目录和文件的名称为shard$[startpos+1],假设有n个分片服务,创建的目录就是shard1到shardn,这样就很清晰的知道一个集群有多少个分片,也可以知道本主机上存在的副本集属于哪个分片。此时还需要定义一个变量array数组用来记录一个分片上主节点、备份节点和仲裁节点的IP,该数组的值需要在初始化副本集的时候读取。此时结束3次循环结束,处理的操作是分别远程到三个分片服务器上创建了分片1的相关配置。
远程登录到IP地址为sinos[post]的分片服务器,登录MongoDB,读取array数组中的IP地址来初始化副本集,并定义变量数组arrayShardServer,存储每个分片的信息(包含分片名称、IP和分片的端口号),用于在初始化路由服务器的时候串联路由服务器和分片服务器,即开始的时候,post=1,完成分片1的第一层的循环结束,第一个分片shard1的所有信息处理完成,然后startpos+1(其含义为startpos=startpos+1,即加一),post+1(其含义为post=post+1,即加一),对其余的分片服务器进行配置,直到post大于num,完成所有分片服务器的配置。
以上是本发明的两重循环算法,其实现了一个分片上的主节点、副本集节点和仲裁节点配置分别属于不同的服务器节点上,这样的设置,保证了备份的数据在不同的节点上,如果主节点出现故障,备份节点可以马上将主节点的业务接管过来进行工作,保证数据的安全性,这是本发明的重要发明点之一。
在一个实施例中,所述建立路由服务与分片服务之间的对应关系的操作为:解析所有路由服务器的IP地址,登录每一个IP地址在每一个路由服务器创建相关目录和配置文件;循环arrayShardServer数组中分片服务器,使用其中之一的路由服务器登录MongoDB,串联路由服务器和分片服务器以建立路由服务与分片服务之间的对应关系。mongos是集群中的路由服务器,集群通过mongos连接客户端和服务器,客户端发出的不同请求,会由mongos分发给集群中的不同服务器。在路由器的选择中,可以根据负载算法从多个mongos中选择其中之一进行相应的操作,这是本发明的重要发明点之另一。
本发明实现了高效、快速、简介的MongoDB集群部署装置,减少繁琐的规划过程和创建分片目录过程。只需要给路由服务器、配置服务器、分片服务器三个角色分配IP,将其作为参数传递给脚本,就可以实现方便、快速、可控的服务部署;实现了MongoDB分片加副本集的部署模式,使得每个分片数据在其他节点都保存了一份副本集,更好的保证了数据的完整性;实现了不同角色配置文件的自动生成,数据目录、日志目录的灵活创建,同一主机上不同角色的统一启动,停止。对MongoDB的启动和停止提供了很便利的操作。本发明适用于在大数据环境下,所有需要基于分布式+多分片+副本集技术来部署集群的情况。
本发明的为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的装置。
最后所应说明的是:以上实施例仅以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
Claims (11)
1.一种分布式多分片集群的部署方法,其特征在于,该方法包括:
配置服务器的配置步骤,基于配置服务器的IP将配置服务器配置为不同的服务类型并创建配置文件;
分片服务器的配置步骤,基于分片服务器的数量将一个分片服务器上的主节点、副本集节点和仲裁节点分别设置属于不同的服务器节点上;
路由服务器的配置步骤,用于建立路由服务与分片服务之间的对应关系。
2.根据权利要求1所述的方法,其特征在于,所述集群为MongoDB分布式数据库集群,所述MongoDB分布式集群由配置服务器、分片服务器和路由服务器组成,所述配置服务器为至少一台配置服务器configserver,所述分片服务器为多个分片服务器shard,所述路由服务器为多个路由服务器mongos。
3.根据权利要求2所述的方法,其特征在于,所述将配置服务器配置为不同的服务类型并创建配置文件的操作为:解析配置服务器的IP,根据IP数目确定配置服务器的数目,在每一台配置服务器configserver中创建配置服务的配置文件,所述配置文件包含了数据目录、日志目录和服务端口号;如果配置服务器的数目为1,则登录MongoDB分布式数据将该一台配置服务器初始化为主节点;如果配置服务器的数目为2,则登录MongoDB分布式数据将该一台配置服务器初始化为主节点和备节点;如果配置服务器的数目为3,则登录MongoDB分布式数据将该一台配置服务器初始化为主节点、备节点和仲裁节点。
4.根据权利要求3所述的方法,其特征在于,所述分片服务器的配置步骤的操作为:
解析每一个分片服务器的IP,并创建分片服务器的数组sinos用于每一个分片服务器的IP,根据所述数组sinos中的IP计算分片服务器的数量num,定义变量startpos=0,记录数组sinos的起始位置;定义变量port记录分片服务器端口号的开始值,使用port+1循环处理为其他的分片服务器配置端口号;定义变量post=1,用于记录当前已处理的分片服务器的数目;
定义变量flag=0,用来记录数组sinos的下标;
循环构建副本集,总共循环3次,记录一个分片服务器上分配的主节点、备份节点和仲裁节点:定义变量subscript记录数组sinos的下标,初始值为0,判断如果subscript小于分片服务器的数量num,则取数组sinos中下标为subscript的值记录在变量sship中,否则取数组sinos中下标为flag的值记录在变量sship中,之后flag+1;远程到IP地址为sship的分片服务器上创建数据目录、日志目录以及启动的配置文件,定义一个变量array数组用来记录一个分片服务器上的主节点、备份节点和仲裁节点的IP地址,该数组的值用于在初始化副本集的时候读取;
远程登录到IP地址为sinos[post]的分片服务器,登录MongoDB,读取array数组中的IP地址来初始化副本集,并定义变量数组arrayShardServer,存储每个分片的信息,用于在初始化路由服务器的时候串联路由服务器和分片服务器;然后startpos+1,post+1,对其余的分片服务器进行配置,直到post大于num,完成所有分片服务器的配置。
5.根据权利要求4所述的方法,其特征在于,所述建立路由服务与分片服务之间的对应关系的操作为:解析所有路由服务器的IP地址,登录每一个IP地址在每一个路由服务器创建相关目录和配置文件;循环arrayShardServer数组中分片服务器,使用其中之一的路由服务器登录MongoDB,串联路由服务器和分片服务器以建立路由服务与分片服务之间的对应关系。
6.一种分布式多分片集群的部署装置,其特征在于,该装置包括:
配置服务器的配置单元,基于配置服务器的IP将配置服务器配置为不同的服务类型并创建配置文件;
分片服务器的配置单元,基于分片服务器的数量将一个分片服务器上的主节点、副本集节点和仲裁节点分别设置属于不同的服务器节点上;
路由服务器的配置单元,用于建立路由服务与分片服务之间的对应关系。
7.根据权利要求6所述的装置,其特征在于,所述集群为MongoDB分布式数据库集群,所述MongoDB分布式集群由配置服务器、分片服务器和路由服务器组成,所述配置服务器为至少一台配置服务器configserver,所述分片服务器为多个分片服务器shard,所述路由服务器为多个路由服务器mongos。
8.根据权利要求7所述的装置,其特征在于,所述将配置服务器配置为不同的服务类型并创建配置文件的操作为:解析配置服务器的IP,根据IP数目确定配置服务器的数目,在每一台配置服务器configserver中创建配置服务的配置文件,所述配置文件包含了数据目录、日志目录和服务端口号;如果配置服务器的数目为1,则登录MongoDB分布式数据将该一台配置服务器初始化为主节点;如果配置服务器的数目为2,则登录MongoDB分布式数据将该一台配置服务器初始化为主节点和备节点;如果配置服务器的数目为3,则登录MongoDB分布式数据将该一台配置服务器初始化为主节点、备节点和仲裁节点。
9.根据权利要求8所述的装置,其特征在于,所述分片服务器的配置单元的操作为:
解析每一个分片服务器的IP,并创建分片服务器的数组sinos用于每一个分片服务器的IP,根据所述数组sinos中的IP计算分片服务器的数量num,定义变量startpos=0,记录数组sinos的起始位置;定义变量port记录分片服务器端口号的开始值,使用port+1循环处理为其他的分片服务器配置端口号;定义变量post=1,用于记录当前已处理的分片服务器的数目;
定义变量flag=0,用来记录数组sinos的下标;
循环构建副本集,总共循环3次,记录一个分片服务器上分配的主节点、备份节点和仲裁节点:定义变量subscript记录数组sinos的下标,初始值为0,判断如果subscript小于分片服务器的数量num,则取数组sinos中下标为subscript的值记录在变量sship中,否则取数组sinos中下标为flag的值记录在变量sship中,之后flag+1;远程到IP地址为sship的分片服务器上创建数据目录、日志目录以及启动的配置文件,定义一个变量array数组用来记录一个分片服务器上的主节点、备份节点和仲裁节点的IP地址,该数组的值用于在初始化副本集的时候读取;
远程登录到IP地址为sinos[post]的分片服务器,登录MongoDB,读取array数组中的IP地址来初始化副本集,并定义变量数组arrayShardServer,存储每个分片的信息,用于在初始化路由服务器的时候串联路由服务器和分片服务器;然后startpos+1,post+1,对其余的分片服务器进行配置,直到post大于num,完成所有分片服务器的配置。
10.根据权利要求9所述的装置,其特征在于,所述建立路由服务与分片服务之间的对应关系的操作为:解析所有路由服务器的IP地址,登录每一个IP地址在每一个路由服务器创建相关目录和配置文件;循环arrayShardServer数组中分片服务器,使用其中之一的路由服务器登录MongoDB,串联路由服务器和分片服务器以建立路由服务与分片服务之间的对应关系。
11.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序代码,当所述计算机程序代码被计算机执行时执行权利要求1-5之任一的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010358133.1A CN111614733B (zh) | 2020-04-29 | 2020-04-29 | 一种分布式多分片集群的部署方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010358133.1A CN111614733B (zh) | 2020-04-29 | 2020-04-29 | 一种分布式多分片集群的部署方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111614733A true CN111614733A (zh) | 2020-09-01 |
CN111614733B CN111614733B (zh) | 2022-08-02 |
Family
ID=72199757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010358133.1A Active CN111614733B (zh) | 2020-04-29 | 2020-04-29 | 一种分布式多分片集群的部署方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111614733B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112202601A (zh) * | 2020-09-23 | 2021-01-08 | 湖南麒麟信安科技股份有限公司 | 副本集模式运行的两物理节点mongo集群的应用方法 |
CN112306863A (zh) * | 2020-10-15 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 环境治理方法和装置、计算机装置和计算机可读存储介质 |
CN112650630A (zh) * | 2020-12-31 | 2021-04-13 | 广州技象科技有限公司 | 一种智能电表运行参数的分布式备份方法及装置 |
CN112685232A (zh) * | 2021-01-11 | 2021-04-20 | 河南大学 | 一种计算机备份数据监测方法及系统 |
CN113238864A (zh) * | 2021-05-17 | 2021-08-10 | 上海中通吉网络技术有限公司 | 基于Python的MongoDB集群部署方法和系统 |
CN113918821A (zh) * | 2021-10-29 | 2022-01-11 | 平安银行股份有限公司 | 交易明细查询方法、装置、电子设备及可读存储介质 |
CN114443057A (zh) * | 2022-01-25 | 2022-05-06 | 北京百度网讯科技有限公司 | 对话模型的部署和对话方法、装置、电子设备及存储介质 |
CN116112499A (zh) * | 2023-04-13 | 2023-05-12 | 国能日新科技股份有限公司 | 数据采集系统的构建方法及数据采集方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120166390A1 (en) * | 2010-12-23 | 2012-06-28 | Dwight Merriman | Method and apparatus for maintaining replica sets |
US20170286516A1 (en) * | 2010-12-23 | 2017-10-05 | Eliot Horowitz | Systems and methods for managing distributed database deployments |
CN108052622A (zh) * | 2017-12-15 | 2018-05-18 | 郑州云海信息技术有限公司 | 一种基于非关系型数据库的存储方法、装置以及设备 |
CN108199882A (zh) * | 2017-12-29 | 2018-06-22 | 东软集团股份有限公司 | 分布式数据库的节点分配方法、装置、储存介质和设备 |
CN108829805A (zh) * | 2018-06-06 | 2018-11-16 | 福建南威软件有限公司 | 一种基于MongoDB的分片存储方法 |
CN108920489A (zh) * | 2018-05-14 | 2018-11-30 | 北京辰森世纪科技股份有限公司 | 数据库的部署方法、装置及设备 |
US20190020722A1 (en) * | 2012-05-29 | 2019-01-17 | Openet Telecom Ltd. | System and Method for Using VoLTE Session Continuity Information using Logical Scalable Units |
-
2020
- 2020-04-29 CN CN202010358133.1A patent/CN111614733B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120166390A1 (en) * | 2010-12-23 | 2012-06-28 | Dwight Merriman | Method and apparatus for maintaining replica sets |
US20170286516A1 (en) * | 2010-12-23 | 2017-10-05 | Eliot Horowitz | Systems and methods for managing distributed database deployments |
US20190020722A1 (en) * | 2012-05-29 | 2019-01-17 | Openet Telecom Ltd. | System and Method for Using VoLTE Session Continuity Information using Logical Scalable Units |
CN108052622A (zh) * | 2017-12-15 | 2018-05-18 | 郑州云海信息技术有限公司 | 一种基于非关系型数据库的存储方法、装置以及设备 |
CN108199882A (zh) * | 2017-12-29 | 2018-06-22 | 东软集团股份有限公司 | 分布式数据库的节点分配方法、装置、储存介质和设备 |
CN108920489A (zh) * | 2018-05-14 | 2018-11-30 | 北京辰森世纪科技股份有限公司 | 数据库的部署方法、装置及设备 |
CN108829805A (zh) * | 2018-06-06 | 2018-11-16 | 福建南威软件有限公司 | 一种基于MongoDB的分片存储方法 |
Non-Patent Citations (2)
Title |
---|
熊峰等: "基于MongoDB的数据分片与分配策略研究", 《计算机与数字工程》 * |
白玉杰等: "基于MongoDB的文件存储系统的设计与实现", 《衡水学院学报》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112202601A (zh) * | 2020-09-23 | 2021-01-08 | 湖南麒麟信安科技股份有限公司 | 副本集模式运行的两物理节点mongo集群的应用方法 |
CN112202601B (zh) * | 2020-09-23 | 2023-03-24 | 湖南麒麟信安科技股份有限公司 | 副本集模式运行的两物理节点mongo集群的应用方法 |
CN112306863A (zh) * | 2020-10-15 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 环境治理方法和装置、计算机装置和计算机可读存储介质 |
CN112650630A (zh) * | 2020-12-31 | 2021-04-13 | 广州技象科技有限公司 | 一种智能电表运行参数的分布式备份方法及装置 |
CN112685232A (zh) * | 2021-01-11 | 2021-04-20 | 河南大学 | 一种计算机备份数据监测方法及系统 |
CN113238864A (zh) * | 2021-05-17 | 2021-08-10 | 上海中通吉网络技术有限公司 | 基于Python的MongoDB集群部署方法和系统 |
CN113918821A (zh) * | 2021-10-29 | 2022-01-11 | 平安银行股份有限公司 | 交易明细查询方法、装置、电子设备及可读存储介质 |
CN114443057A (zh) * | 2022-01-25 | 2022-05-06 | 北京百度网讯科技有限公司 | 对话模型的部署和对话方法、装置、电子设备及存储介质 |
CN116112499A (zh) * | 2023-04-13 | 2023-05-12 | 国能日新科技股份有限公司 | 数据采集系统的构建方法及数据采集方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111614733B (zh) | 2022-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111614733B (zh) | 一种分布式多分片集群的部署方法、装置及存储介质 | |
JP5254611B2 (ja) | 固定内容分散データ記憶のためのメタデータ管理 | |
US11321291B2 (en) | Persistent version control for data transfer between heterogeneous data stores | |
EP3745269B1 (en) | Hierarchical fault tolerance in system storage | |
US20090144338A1 (en) | Asynchronously replicated database system using dynamic mastership | |
US10929247B2 (en) | Automatic creation of application-centric extended metadata for a storage appliance | |
US10230567B2 (en) | Management of a plurality of system control networks | |
CN105373340A (zh) | 用于提供安全多租赁的系统、装置和方法 | |
US7069270B1 (en) | Automated method and mechanism for converting a single instance application to a multiple instance application | |
CN111274004B (zh) | 进程实例管理方法、装置及计算机存储介质 | |
US11288003B2 (en) | Cross-platform replication of logical units | |
CN107391303B (zh) | 数据处理方法、装置、系统、服务器及计算机存储介质 | |
CN116233146A (zh) | 实现跨分布式存储集群的缓存一致性的技术 | |
US20090144333A1 (en) | System for maintaining a database | |
US10587685B2 (en) | Cross-platform replication of logical units | |
EP3349416B1 (en) | Relationship chain processing method and system, and storage medium | |
US11093465B2 (en) | Object storage system with versioned meta objects | |
US20200401313A1 (en) | Object Storage System with Priority Meta Object Replication | |
US8862544B2 (en) | Grid based replication | |
CN109154880B (zh) | 在分散存储网络中一致的存储数据 | |
CN115587141A (zh) | 一种数据库同步方法和装置 | |
CN111770158B (zh) | 云平台恢复方法、装置、电子设备及计算机可读存储介质 | |
CN112286538B (zh) | 一种Greenplum数据库自动化安装方法及装置 | |
US11074002B2 (en) | Object storage system with meta object replication | |
CN106844058B (zh) | 一种虚拟化资源的管理方法和装置 |
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 |