CN109104333B - 基于git的分布式集群的同步方法和装置 - Google Patents

基于git的分布式集群的同步方法和装置 Download PDF

Info

Publication number
CN109104333B
CN109104333B CN201810957269.7A CN201810957269A CN109104333B CN 109104333 B CN109104333 B CN 109104333B CN 201810957269 A CN201810957269 A CN 201810957269A CN 109104333 B CN109104333 B CN 109104333B
Authority
CN
China
Prior art keywords
git
standby
standby machine
host
machine
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.)
Active
Application number
CN201810957269.7A
Other languages
English (en)
Other versions
CN109104333A (zh
Inventor
韩爱东
范渊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dbappsecurity Technology Co Ltd
Original Assignee
Hangzhou Dbappsecurity Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Dbappsecurity Technology Co Ltd filed Critical Hangzhou Dbappsecurity Technology Co Ltd
Priority to CN201810957269.7A priority Critical patent/CN109104333B/zh
Publication of CN109104333A publication Critical patent/CN109104333A/zh
Application granted granted Critical
Publication of CN109104333B publication Critical patent/CN109104333B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明提供了基于GIT的分布式集群的同步方法和装置,应用于主机,包括:在主机和各个备机当前处于工作状态时;如果确定更新GIT工作区文件时;根据列表向各个备机发送更新请求信息;如果接收到各个备机发送的更新的GIT工作区文件,则让外部设备同步更新GIT仓库;如果没有接收到各个备机发送的更新的GIT工作区文件,则确定各个备机中有异常的备机,并让外部设备同步更新GIT仓库;在主机异常工作的情况下,通过虚拟路由冗余协议VRRP从各个备机中选取任一备机作为新主机。通过该方式,可以保证备机集群优先同步更新版本库,使得主机和备机群维持为同一个版本,提高了服务的稳定性与容错性。

Description

基于GIT的分布式集群的同步方法和装置
技术领域
本发明涉及分布式集群同步技术领域,尤其是涉及基于GIT的分布式集群的同步方法和装置。
背景技术
传统模式下,服务器只有一台正常对外提供服务。此时,如果这个服务器出现任何软件还是硬件故障而导致服务停止,用户便无法访问。所以,人们便提出使用多台机器组建集群的办法,使得主机出现故障时,通过多机通信技术,将服务快速的从故障机迁移到集群的机器上,保证服务的正常供应。但是,目前备机中的版本库无法优先和主机维持同一个版本。
发明内容
有鉴于此,本发明的目的在于提供了基于GIT的分布式集群的同步方法和装置,以保证备机集群优先同步更新版本库,使得主机和备机群维持为同一个版本,提高了服务的稳定性与容错性。
第一方面,本发明实施例提供了基于GIT的分布式集群的同步方法,应用于主机,主机包括GIT仓库,该方法包括:在主机正常工作的情况下,通过服务器状态监测软件监测备机群中各个备机的当前状态;根据各个备机的当前状态判断各个备机是否处于工作状态;如果各个备机处于工作状态,则确定是否更新GIT工作区文件;如果更新GIT工作区文件,则根据列表向各个备机发送更新请求信息,以使各个备机对GIT工作区文件进行更新,并确定是否接收到各个备机发送的更新的GIT工作区文件;如果接收到各个备机发送的更新的GIT工作区文件,则让外部设备同步更新GIT仓库;如果没有接收到各个备机发送的更新的GIT工作区文件,则确定各个备机中有异常的备机,并让外部设备同步更新GIT仓库;在主机异常工作的情况下,通过虚拟路由冗余协议VRRP从各个备机中选取任一备机作为新主机,以使新主机根据需求更新GIT仓库。
进一步地,如果各个备机处于工作状态,则确定是否更新GIT工作区文件,包括:如果各个备机处于工作状态,则通过外部数据判定GIT工作区文件是否修改;如果GIT工作区文件修改,则通过请求机制向外部数据请求是否更新GIT工作区文件。
进一步地,根据列表向各个备机发送更新请求信息,以使各个备机对GIT工作区文件进行更新,包括:通过iptables将各个备机的IP地址加入列表中,并锁定列表以外的IP地址;根据列表中的IP地址向各个备机发送更新信息,以使各个备机对GIT工作区文件进行更新,得到更新的GIT工作区文件。
进一步地,如果接收到各个备机发送的更新的GIT工作区文件,则让外部设备同步更新GIT仓库,包括:如果接收到各个备机发送的更新的GIT工作区文件,则打开列表以外的IP地址,以使列表以外的IP地址对应的外部设备同步更新GIT仓库。
进一步地,如果没有接收到各个备机发送的更新的GIT工作区文件,则确定各个备机中有异常的备机,并让外部设备同步更新GIT仓库,包括:如果没有接收到各个备机发送的更新的GIT工作区文件,则判定各个备机出现异常;打开列表以外的IP地址,以使列表以外的IP地址对应的外部设备同步更新GIT仓库,并发出告警信息。
进一步地,还包括:当异常工作的主机恢复工作状态时,将异常工作的主机加入备机群,并发出告警信息。
第二方面,本发明实施例提供的基于GIT的分布式集群的同步装置,应用于主机,主机包括GIT仓库,装置包括:监测模块,用于在主机正常工作的情况下,通过服务器状态监测软件监测备机群中各个备机的当前状态;第一判断模块,用于根据各个备机的当前状态判断各个备机是否处于工作状态;第二判断模块,用于如果各个备机处于工作状态,则确定是否更新GIT工作区文件;第一处理模块,用于如果更新GIT工作区文件,则根据列表向各个备机发送更新请求信息,以使各个备机对GIT工作区文件进行更新;第一同步模块,用于如果接收到各个备机发送的更新的GIT工作区文件,则让外部设备同步更新GIT仓库;第二同步模块,用于如果没有接收到各个备机发送的更新的GIT工作区文件,则确定各个备机中有异常的备机,并让外部设备同步更新GIT仓库;第二处理模块,用于在主机异常工作的情况下,通过虚拟路由冗余协议VRRP从各个备机中选取任一备机作为新主机,以使新主机根据需求更新GIT仓库。
进一步地,第二判断模块,还用于:如果各个备机处于工作状态,则通过外部数据判定GIT工作区文件是否修改;如果GIT工作区文件修改,则通过请求机制向外部数据请求是否更新GIT工作区文件。
进一步地,第一处理模块,还用于:通过iptables将各个备机的IP地址加入列表中,并锁定列表以外的IP地址;根据列表中的IP地址向各个备机发送更新信息,以使各个备机对GIT工作区文件进行更新,得到更新的GIT工作区文件。
进一步地,还包括:恢复模块,用于当异常工作的主机恢复工作状态时,将异常工作的主机加入备机群,并发出告警信息。
本发明实施例带来了以下有益效果:
本发明实施例提供了基于GIT的分布式集群的同步方法和装置,应用于主机,主机包括GIT仓库,该方法包括:在主机正常工作的情况下,通过服务器状态监测软件监测备机群中各个备机的当前状态;根据各个备机的当前状态判断各个备机是否处于工作状态;如果各个备机处于工作状态,则确定是否更新GIT工作区文件;如果更新GIT工作区文件,则根据列表向各个备机发送更新请求信息,以使各个备机对GIT工作区文件进行更新,并确定是否接收到各个备机发送的更新的GIT工作区文件;如果接收到各个备机发送的更新的GIT工作区文件,则让外部设备同步更新GIT仓库;如果没有接收到各个备机发送的更新的GIT工作区文件,则确定各个备机中有异常的备机,并让外部设备同步更新GIT仓库;在主机异常工作的情况下,通过虚拟路由冗余协议VRRP从各个备机中选取任一备机作为新主机,以使新主机根据需求更新GIT仓库。通过该方式,可以保证备机集群优先同步更新版本库,使得主机和备机群维持为同一个版本,提高了服务的稳定性与容错性。
本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于GIT的分布式集群的同步方法的流程图;
图2为本发明实施例提供的另一基于GIT的分布式集群的同步方法的流程图;
图3为本发明实施例提供的基于GIT的分布式集群的同步装置的结构示意图;
图4为本发明实施例提供的另一基于GIT的分布式集群的同步装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的集群技术,集群中多机之间除了宕机检测,几乎没有其他的通信,多机之间只是保证了服务的正常运行。但是在提供GIT服务时,单纯的保证服务会出现在很多问题。多机之间的GIT版本库需要保持完全一致,才能对外提供正常的服务,不一致会出现切换主机后,分支无法同步的问题。基于此,本发明实施例提供的基于GIT的分布式集群的同步方法和装置,经过实践,该发明能够在多机环境中保持集群GIT版本库的同步,可以保证备机集群优先同步更新版本库,使得主机和备机群维持为同一个版本,提高了服务的稳定性与容错性。
为便于对本实施例进行理解,首先对本发明实施例所公开的基于GIT的分布式集群的同步方法进行详细介绍。
实施例一
图1为本发明实施例提供的基于GIT的分布式集群的同步方法的流程图;
参见图1,该方法应用于主机,主机包括GIT仓库,该方法包括以下步骤:
步骤S102,在主机正常工作的情况下,通过服务器状态监测软件监测备机群中各个备机的当前状态。
主机正常工作情况下,主机先自创建GIT仓库,通过web服务器自创建GIT服务器,该web服务器包括Nginx服务器、Apache服务器和IIS服务器(Internet InformationServices,一种大型web服务器)。GIT是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。该GIT仓库包括代码和版本信息,每当开发者对自己的项目进行修改,可以在自创建的GIT仓库上提交,每次提交的版本和对应的版本信息都会在GIT仓库上有显示,所以需要主机和备机的版本库要同步,在主机出现故障时,备机可以随时转换为主机,保证服务可以正常进行。
进一步地,备机拉取主机的GIT仓库,通过web服务器自创建GIT服务器,主机需要随时监测备机的状态,该状态包括备机是否处于正常工作状态;一般通过服务器状态监测软件Keepalived中的健康检查health check来检测备机GIT服务器的运行状态。具体地,Keepalived用来监控集群系统中各个服务节点的状态,根据layer(层)3,4&5(也就是网络层、传输层和网络应用层)交换机制检测每个服务节点的状态,如果某个服务节点出现异常或工作出现故障,Keepalived都可以检测到。
步骤S104,根据各个备机的当前状态判断各个备机是否处于工作状态;如果是,执行步骤S108;如果否,执行步骤S106。
上述Keepalived可以检测到每个服务节点的状态,当某个服务节点出现异常或工作出现故障,Keepalived都可以检测到。而且Keepalived可以将出现故障的服务节点从集群系统中剔除,并且在故障节点恢复正常后,Keepalived又可以自动将此服务节点重新加入到服务器集群中,这些工作全部自动完成,不需要人工干涉,需要人工完成的只是修复出现故障的服务节点,大大的节省了人力、物力和时间。如果有出现故障的备机,主机发出告警信息,显示备机群中有出现故障的机器,让人工来进行修复。
步骤S106,发出告警信息。
进一步地,当备机群中有故障的机器,主机发出告警信息,并让人工来进行修复。
步骤S108,确定是否更新GIT工作区文件;如果是,执行步骤S112;如果否,执行步骤S110。
进一步地,Keepalived监测到各个备机处于工作状态,主机正常更新GIT仓库。主机需要确定是否更新GIT工作区文件,GIT仓库包括GIT工作区文件。具体地,在初始化GIT仓库之后就会生成一个隐藏的文件.git,可以将.git理解为GIT仓库,而我们自己建立的项目文件夹即为GIT工作区文件,而在.git文件夹里面还有很多文件,其中有一个暂存文件。需要说明的是,主机在的时候,备机是不对外提供服务的。
步骤S110,不作处理。
步骤S112,根据列表向各个备机发送更新请求信息,以使各个备机对GIT工作区文件进行更新,并确定是否接收到各个备机发送的更新的GIT工作区文件;如果是,执行步骤S114;如果否,执行步骤S116。
进一步地,如果主机确定更新GIT工作区文件,主机会根据列表向各个备机发送更新请求信息,该列表包括检测工作状态正常的备机的IP地址,让工作状态正常的备机也更新GIT工作区文件,使得备机的GIT工作区文件和主机的GIT工作区文件的版本保持为同一个版本。当主机根据列表向各个备机发送更新的请求消息之后,需要确定各个备机是否更新GIT工作区文件;如果主机接收到各个备机发送的更新的GIT工作区文件,执行步骤S114;如果主机没有接收到各个备机发送的更新的GIT工作区文件,执行步骤S116。
步骤S114,让外部设备同步更新GIT仓库。
在主机接收到各个备机发送的更新的GIT工作区文件,主机允许外部设备同步更新GIT仓库,以使外部设备的GIT仓库版本和主机的GIT仓库版本同步。外部设备是除了主机和备机以外的机器,这样可以保证各个备机优先同步GIT仓库,防止当主机出现问题时,外部设备的GIT仓库版本比备机的GIT仓库版本更高的情况。
步骤S116,确定各个备机中有异常的备机,并让外部设备同步更新GIT仓库。
主机经过预设时间没有接收到各个备机发送的更新的GIT工作区文件,这个预设时间需要实际测试,则确定各个备机中有异常的备机。主机让列表以外的外部设备同步更新GIT仓库,同时发出告警信息,预示备机出现异常,需要人工进行修复。
步骤S118,在主机异常工作的情况下,通过虚拟路由冗余协议VRRP从各个备机中选取任一备机作为新主机,以使新主机根据需求更新GIT仓库。
进一步地,新的主机不会同步原有主机的GIT仓库,而是通过请求机制请求外部数据,判断是否更新GIT仓库,并发出告警信息。
进一步地,在现实的网络环境中,主机之间的通信都是通过配置静态路由完成的,而主机之间的路由器一旦出现故障,通信就会失败。因此,在这种通信模式中,路由器就完成了一个单点瓶颈,为了解决这个问题,就引入了VRRP。
具体地,Keepalived中加入了虚拟路由冗余协议VRRP(Virtual RouterRedundancy Protocol)是为了解决静态路由出现单点故障的问题,通过VRRP可以实现网络不间断地、稳定地运行。因此,Keepalived具有服务器状态监测和故障隔离功能。所以,当主机出现故障时,VRRP可以切换至备机,触发了备机中的notfy_master脚本配置文件,便可以得知以前的主机不能正常运行,这个脚本文件可以配置备机成为主机时执行的脚本,备机们自动重新选举出新的主机。需要说明的是,集群中各个备机中都配置有Keepalived软件。
本发明实施例提供了基于GIT的分布式集群的同步方法,应用于主机,主机包括GIT仓库,该方法包括:在主机正常工作的情况下,通过服务器状态监测软件监测备机群中各个备机的当前状态;根据各个备机的当前状态判断各个备机是否处于工作状态;如果各个备机处于工作状态,则确定是否更新GIT工作区文件;如果更新GIT工作区文件,则根据列表向各个备机发送更新请求信息,以使各个备机对GIT工作区文件进行更新,并确定是否接收到各个备机发送的更新的GIT工作区文件;如果接收到各个备机发送的更新的GIT工作区文件,则让外部设备同步更新GIT仓库;如果没有接收到各个备机发送的更新的GIT工作区文件,则确定各个备机中有异常的备机,并让外部设备同步更新GIT仓库;在主机异常工作的情况下,通过虚拟路由冗余协议VRRP从各个备机中选取任一备机作为新主机,以使新主机根据需求更新GIT仓库。通过该方式,可以保证备机集群优先同步更新版本库,使得主机和备机群维持为同一个版本,提高了服务的稳定性与容错性。
实施例二
图2为本发明实施例提供的另一基于GIT的分布式集群的同步方法的流程图;
参见图2,该图在图1的基础上实现。该方法包括以下步骤:
步骤S102,在主机正常工作的情况下,通过服务器状态监测软件监测备机群中各个备机的当前状态。
步骤S104,根据各个备机的当前状态判断各个备机是否处于工作状态;如果是,执行步骤S202;如果否,执行步骤S106。
步骤S106,发出告警信息。
步骤S202,通过外部数据确定GIT工作区文件是否修改;如果是,执行步骤S204;如果否,执行步骤S110。
进一步地,各个备机每隔一段时间,就要进行一次git pull(git推进)这个时间可以是5s,来同步主机GIT仓库。其中,外部数据内部包括数据库,用于更新GIT工作区文件内容的,如果外部数据内容修改会间接导致GIT仓库版本更新。当外部数据内容修改时,通过某种方式把这个修改的内容提取出来,更新到GIT工作区文件中,然后做GIT提交操作。
步骤S204,通过请求机制向外部数据请求是否更新GIT工作区文件;如果是,执行步骤S206;如果否,执行步骤S110。
进一步地,当GIT工作区文件修改,主机通过HTTP请求响应机制向外部数据请求是否更新GIT工作区文件;如果更新,主机通过某种方式把修改的内容提取出来,更新到GIT工作区文件中,然后做GIT提交操作。
步骤S110,不作处理。
步骤S206,通过iptables将各个备机的IP地址加入列表中,并锁定列表以外的IP地址。
进一步地,主机中的GIT工作区文件更新时,各个备机也需要同步更新GIT工作区文件。主机通过iptables将各个正常工作状态的备机的IP地址加入到列表中,并锁定列表以外的IP地址,不允许列表以外的IP地址对应的外部机器进行同步更新,该列表称为白名单(白名单机制,是访问控制的一种,可以允许名单内容的IP访问某些特殊服务)。
具体地,iptables是与左心的3.5版本Linux内核集成的IP信息包过滤系统。如果Linux系统连接到因特网或LAN、服务器或连接LAN和因特网的代理服务器,则该系统有利于在Linux系统上更好地控制IP信息包过滤和防火墙配置。防火墙在做数据包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的数据包过滤表中,而这些表集成在Linux内核中。在数据包过滤表中,规则被分组放在我们所谓的链(chain)中,而iptables IP数据包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。
步骤S208,根据列表中的IP地址向各个备机发送更新信息。
根据列表中的IP地址向各个备机发送更新信息,以使各个备机对GIT工作区文件进行更新,得到更新的GIT工作区文件。
步骤S210,确定是否接收到各个备机发送的更新的GIT工作区文件;如果是,执行步骤S212;如果否,执行步骤S214。
进一步地,主机需要知道各个备机是否已经更新GIT工作区文件,这就需要确定是否接收到各个备机发送的更新的GIT工作区文件。
步骤S212,打开列表以外的IP地址。
进一步地,如果主机接收到各个备机发送的更新的GIT工作区文件,这样就打开列表(白名单)以外的外部设备的IP地址,让外部设备同步更新GIT仓库。
步骤S214,确定各个备机中有异常的备机。
进一步地,如果主机没有接收到各个备机发送的更新的GIT工作区文件,可以判定有出现异常的备机,并发出告警信息。
步骤S216,打开列表以外的IP地址。
进一步地,当备机中有异常的备机时,主机打开列表以外的IP地址,以使列表以外的IP地址对应的外部设备同步更新GIT仓库。
步骤S118,在主机异常工作的情况下,通过虚拟路由冗余协议VRRP从各个备机中选取任一备机作为新主机。
步骤S218,当异常工作的主机恢复工作状态时,将异常工作的主机加入备机群,并发出告警信息。
具体地,如果异常工作的主机经过人工修复可以恢复正常工作状态时,可以转变为备机,加入备机群,发出告警信息。需要说明的是,主机和备机都设置为非抢占模式,非抢占式让原来正在运行的进程继续运行,直至该进程完成或发生某种事件(例如I/O请求),才会主动放弃处理机,这样原有主机从故障恢复后,不会抢占VRRP。
通过IP白名单机制,保证集群中的多个备机的GIT仓库优先同步,进而保证集群中一直维持一个GIT版本库,保证主从切换后,不会出现GIT同步问题;并且在集群的支持下,保证了单个机器宕机不会影响正常服务,多机之间相互同步,保证GIT仓库的正常迭代。
实施例三
图3为本发明实施例提供的基于GIT的分布式集群的同步装置的结构示意图;图4为本发明实施例提供的另一基于GIT的分布式集群的同步装置的结构示意图。
参见图3,该装置应用于主机,包括如下模块:
监测模块,用于在主机正常工作的情况下,通过服务器状态监测软件监测备机群中各个备机的当前状态;
第一判断模块,用于根据各个备机的当前状态判断所述各个备机是否处于工作状态;
第二判断模块,用于如果各个备机处于所述工作状态,则确定是否更新GIT工作区文件;
第一处理模块,用于如果更新GIT工作区文件,则根据列表向各个备机发送更新请求信息,以使各个备机对GIT工作区文件进行更新,并确定是否接收到各个备机发送的更新的GIT工作区文件;
第一同步模块,用于如果接收到各个备机发送的更新的GIT工作区文件,则让外部设备同步更新GIT仓库;
第二同步模块,用于如果没有接收到各个备机发送的更新的GIT工作区文件,则确定各个备机中有异常的备机,并让外部设备同步更新GIT仓库;
第二处理模块,用于在主机异常工作的情况下,通过虚拟路由冗余协议VRRP从各个备机中选取任一备机作为新主机,以使新主机根据需求更新GIT仓库。
上述第二判断模块,还用于:
如果各个备机处于工作状态,则通过外部数据确定GIT工作区文件是否修改;
如果GIT工作区文件修改,则通过请求机制向外部数据请求是否更新GIT工作区文件。
上述第一处理模块,还用于:
通过iptables将各个备机的IP地址加入列表中,并锁定列表以外的IP地址;
根据列表中的IP地址向各个备机发送更新信息,以使各个备机对GIT工作区文件进行更新,得到更新的GIT工作区文件。
参见图4,该装置还包括:恢复模块,用于当异常工作的主机恢复工作状态时,将异常工作的主机加入备机群,并发出告警信息。
本发明实施例提供了基于GIT的分布式集群的同步方法和装置,应用于主机,主机包括GIT仓库,该方法包括:在主机正常工作的情况下,通过服务器状态监测软件监测备机群中各个备机的当前状态;根据各个备机的当前状态判断各个备机是否处于工作状态;如果各个备机处于工作状态,则确定是否更新GIT工作区文件;如果更新GIT工作区文件,则根据列表向各个备机发送更新请求信息,以使各个备机对GIT工作区文件进行更新,并确定是否接收到各个备机发送的更新的GIT工作区文件;如果接收到各个备机发送的更新的GIT工作区文件,则让外部设备同步更新GIT仓库;如果没有接收到各个备机发送的更新的GIT工作区文件,则确定各个备机中有异常的备机,并让外部设备同步更新GIT仓库;在主机异常工作的情况下,通过虚拟路由冗余协议VRRP从各个备机中选取任一备机作为新主机,以使新主机根据需求更新GIT仓库。通过该方式,可以保证备机集群优先同步更新版本库,使得主机和备机群维持为同一个版本,提高了服务的稳定性与容错性。
本发明实施例提供的基于GIT的分布式集群的同步装置,与上述实施例提供的基于GIT的分布式集群的同步方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种基于GIT的分布式集群的同步方法,其特征在于,应用于主机,所述主机包括GIT仓库,所述方法包括:
在所述主机正常工作的情况下,通过服务器状态监测软件监测备机群中各个备机的当前状态;
根据所述各个备机的当前状态判断所述各个备机是否处于工作状态;
如果所述各个备机处于所述工作状态,则确定是否更新所述主机的GIT工作区文件;
如果更新所述主机的GIT工作区文件,则根据列表向所述各个备机发送更新请求信息,以使所述各个备机对所述备机的GIT工作区文件进行更新,并确定是否接收到所述各个备机发送的更新的GIT工作区文件;
如果接收到所述各个备机发送的更新的GIT工作区文件,则让外部设备同步更新所述外部设备的GIT仓库;
如果没有接收到所述各个备机发送的更新的GIT工作区文件,则确定所述各个备机中有异常的备机,并让所述外部设备同步更新所述外部设备的GIT仓库;
在所述主机异常工作的情况下,通过虚拟路由冗余协议VRRP从所述各个备机中选取任一备机作为新主机,以使所述新主机根据需求更新所述新主机的GIT仓库。
2.根据权利要求1所述的方法,其特征在于,所述如果所述各个备机处于所述工作状态,则确定是否更新所述主机的GIT工作区文件,包括:
如果所述各个备机处于工作状态,则通过外部数据确定所述主机的GIT工作区文件是否修改;
如果所述主机的GIT工作区文件修改,则通过请求机制向所述外部数据请求是否更新所述备机的GIT工作区文件。
3.根据权利要求1所述的方法,其特征在于,所述根据列表向所述各个备机发送更新请求信息,以使所述各个备机对所述备机的GIT工作区文件进行更新,包括:
通过iptables将所述各个备机的IP地址加入所述列表中,并锁定所述列表以外的IP地址;
根据所述列表中的所述IP地址向所述各个备机发送更新信息,以使所述各个备机对所述备机的GIT工作区文件进行更新,得到所述更新的备机的GIT工作区文件。
4.根据权利要求1所述的方法,其特征在于,所述如果接收到所述各个备机发送的更新的GIT工作区文件,则让外部设备同步更新所述外部设备的GIT仓库,包括:
如果接收到所述各个备机发送的更新的GIT工作区文件,则打开所述列表以外的IP地址,以使所述列表以外的IP地址对应的外部设备同步更新所述外部设备的GIT仓库。
5.根据权利要求1所述的方法,其特征在于,所述如果没有接收到所述各个备机发送的更新的备机的GIT工作区文件,则确定所述各个备机中有异常的备机,并让所述外部设备同步更新所述外部设备的GIT仓库,包括:
如果没有接收到所述各个备机发送的更新的GIT工作区文件,则确定所述各个备机中有异常的备机;
打开所述列表以外的IP地址,以使所述列表以外的IP地址对应的外部设备同步更新所述外部设备的GIT仓库,并发出告警信息。
6.根据权利要求1所述的方法,其特征在于,还包括:
当异常工作的主机恢复所述工作状态时,将所述异常工作的主机加入所述备机群,并发出告警信息。
7.一种基于GIT的分布式集群的同步装置,其特征在于,应用于主机,所述主机包括GIT仓库,所述装置包括:
监测模块,用于在所述主机正常工作的情况下,通过服务器状态监测软件监测备机群中各个备机的当前状态;
第一判断模块,用于根据所述各个备机的当前状态判断所述各个备机是否处于工作状态;
第二判断模块,用于如果所述各个备机处于所述工作状态,则确定是否更新所述主机的GIT工作区文件;
第一处理模块,用于如果更新所述主机的GIT工作区文件,则根据列表向所述各个备机发送更新请求信息,以使所述各个备机对所述备机的GIT工作区文件进行更新,并确定是否接收到所述各个备机发送的更新的GIT工作区文件;
第一同步模块,用于如果接收到所述各个备机发送的更新的GIT工作区文件,则让外部设备同步更新所述外部设备的GIT仓库;
第二同步模块,用于如果没有接收到所述各个备机发送的更新的GIT工作区文件,则确定所述各个备机中有异常的备机,并让所述外部设备同步更新所述外部设备的GIT仓库;
第二处理模块,用于在所述主机异常工作的情况下,通过虚拟路由冗余协议VRRP从所述各个备机中选取任一备机作为新主机,以使所述新主机根据需求更新所述新主机的GIT仓库。
8.根据权利要求7所述的装置,其特征在于,所述第二判断模块,还用于:
如果所述各个备机处于工作状态,则通过外部数据确定所述主机的GIT工作区文件是否修改;
如果所述主机的GIT工作区文件修改,则通过请求机制向所述外部数据请求是否更新所述备机的GIT工作区文件。
9.根据权利要求7所述的装置,其特征在于,所述第一处理模块,还用于:
通过iptables将所述各个备机的IP地址加入所述列表中,并锁定所述列表以外的IP地址;
根据所述列表中的所述IP地址向所述各个备机发送更新信息,以使所述各个备机对所述备机的GIT工作区文件进行更新,得到所述更新的备机的GIT工作区文件。
10.根据权利要求7所述的装置,其特征在于,还包括:
恢复模块,用于当异常工作的主机恢复所述工作状态时,将所述异常工作的主机加入所述备机群,并发出告警信息。
CN201810957269.7A 2018-08-21 2018-08-21 基于git的分布式集群的同步方法和装置 Active CN109104333B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810957269.7A CN109104333B (zh) 2018-08-21 2018-08-21 基于git的分布式集群的同步方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810957269.7A CN109104333B (zh) 2018-08-21 2018-08-21 基于git的分布式集群的同步方法和装置

Publications (2)

Publication Number Publication Date
CN109104333A CN109104333A (zh) 2018-12-28
CN109104333B true CN109104333B (zh) 2020-09-04

Family

ID=64850629

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810957269.7A Active CN109104333B (zh) 2018-08-21 2018-08-21 基于git的分布式集群的同步方法和装置

Country Status (1)

Country Link
CN (1) CN109104333B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111211926B (zh) * 2019-12-31 2023-01-24 杭州迪普科技股份有限公司 一种通信故障的监测方法、装置、存储介质及设备
CN115002121B (zh) * 2022-08-03 2022-11-11 浩鲸云计算科技股份有限公司 基于抢占锁实现一主多从的Git集群的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101105745A (zh) * 2006-07-14 2008-01-16 中兴通讯股份有限公司 分布式软件系统的部署方法
CN104679604A (zh) * 2015-02-12 2015-06-03 大唐移动通信设备有限公司 一种主节点和备节点切换的方法和装置
CN105739968A (zh) * 2016-01-20 2016-07-06 北京京东尚科信息技术有限公司 基于分布式版本控制系统Git的更新内容的评审方法和装置
CN107453899A (zh) * 2017-07-25 2017-12-08 锐捷网络股份有限公司 虚拟交换单元vsu系统的升级方法及装置
CN107977218A (zh) * 2017-11-23 2018-05-01 武汉斗鱼网络科技有限公司 代码更新方法、装置、电子设备及可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10176238B2 (en) * 2014-09-26 2019-01-08 Oracle International Corporation Integrating object-based data integration tool with a version control system in centralized and decentralized environments

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101105745A (zh) * 2006-07-14 2008-01-16 中兴通讯股份有限公司 分布式软件系统的部署方法
CN104679604A (zh) * 2015-02-12 2015-06-03 大唐移动通信设备有限公司 一种主节点和备节点切换的方法和装置
CN105739968A (zh) * 2016-01-20 2016-07-06 北京京东尚科信息技术有限公司 基于分布式版本控制系统Git的更新内容的评审方法和装置
CN107453899A (zh) * 2017-07-25 2017-12-08 锐捷网络股份有限公司 虚拟交换单元vsu系统的升级方法及装置
CN107977218A (zh) * 2017-11-23 2018-05-01 武汉斗鱼网络科技有限公司 代码更新方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN109104333A (zh) 2018-12-28

Similar Documents

Publication Publication Date Title
CN106790595B (zh) 一种Docker容器主动负载均衡装置及方法
EP3041197B1 (en) Policy based framework for application management in a network device having multiple packet-processing nodes
Han et al. On the resiliency of virtual network functions
US7237243B2 (en) Multiple device management method and system
US9450700B1 (en) Efficient network fleet monitoring
US10193958B2 (en) Policy based framework for application management in distributed systems
US10038593B2 (en) Method and system for recovering virtual network
CN110011869B (zh) 控制器装置、方法及计算机可读存储介质
EP3396917A1 (en) Method and apparatus for isolating environment
US20180077007A1 (en) Redundant storage solution
WO2018137520A1 (zh) 一种业务恢复方法及装置
US20090164565A1 (en) Redundant systems management frameworks for network environments
CN109104333B (zh) 基于git的分布式集群的同步方法和装置
CN113347037B (zh) 一种数据中心访问方法及装置
CN111988347B (zh) 跳板机系统的数据处理方法和跳板机系统
CN107453888B (zh) 高可用性的虚拟机集群的管理方法及装置
CN108600156B (zh) 一种服务器及安全认证方法
JP6555721B2 (ja) 障害復旧システム及び方法
CN114124803B (zh) 设备管理方法、装置、电子设备及存储介质
CN114363356B (zh) 数据同步方法、系统、装置、计算机设备和存储介质
CN116192885A (zh) 高可用集群架构人工智能实验云平台数据处理方法及系统
CN113890850B (zh) 路由容灾系统及方法
AT&T
CN113821412A (zh) 一种设备运维管理方法及装置
WO2016082368A1 (zh) 一种保持数据一致性的方法、装置及ptn传输设备

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 310000 No. 188 Lianhui Street, Xixing Street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Hangzhou Anheng Information Technology Co.,Ltd.

Address before: Zhejiang Zhongcai Building No. 68 Binjiang District road Hangzhou City, Zhejiang Province, the 310000 and 15 layer

Applicant before: Hangzhou Anheng Information Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant