CN117354295A - 基于Gossip协议的文件分发方法、系统设备及存储介质 - Google Patents
基于Gossip协议的文件分发方法、系统设备及存储介质 Download PDFInfo
- Publication number
- CN117354295A CN117354295A CN202210740019.4A CN202210740019A CN117354295A CN 117354295 A CN117354295 A CN 117354295A CN 202210740019 A CN202210740019 A CN 202210740019A CN 117354295 A CN117354295 A CN 117354295A
- Authority
- CN
- China
- Prior art keywords
- message
- node
- nodes
- file
- task
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000004891 communication Methods 0.000 claims abstract description 56
- 230000008569 process Effects 0.000 claims abstract description 16
- 230000004044 response Effects 0.000 claims description 19
- 230000005540 biological transmission Effects 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 description 6
- 230000015556 catabolic process Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000003999 initiator Substances 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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
- 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
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种基于Gossip协议的文件分发方法、系统设备及计算机可读存储介质,该方法应用于分布式系统中的节点,包括:接收到来自第一连通节点的消息,根据所述消息执行相应的任务操作,所述消息包括文件同步消息,所述文件同步消息对应的任务操作为以增量方式同步变化的文件;若第二连通节点的数量不小于N,则向所述第二连通节点持续执行至少一次消息发送进程,直至将所述消息发送给所有可连通节点;其中,所述第二连通节点为所述节点的可连通节点,所述N为执行一次所述消息发送进程时,被发送所述消息的第二连通节点的数量,根据该方法,能够在任一节点完成文件更新和消息通知的情况下,快速完成整个系统的文件同步。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种基于Gossip协议(流行病协议)的文件分发方法、系统设备及存储介质。
背景技术
目前,通常基于P2P(Peer-to-Peer,点对点技术)中心化拓扑架构进行文件分发,该架构通常由一个索引服务器和多个客户端组成,当索引服务器上的文件变化时,索引服务器向所有客户端发送文件更新指令,以使客户端从其它客户端或者索引服务器上下载需要更新的文件,但是,索引服务器的瘫痪容易导致整个系统的崩溃,使得文件同步失败。
发明内容
本申请的目的在于至少解决现有技术中存在的技术问题之一,提供一种基于Gossip协议的文件分发方法、系统设备及计算机可读存储介质,能够在任一节点完成文件更新和消息通知的情况下,快速完成整个系统的文件同步。
第一方面,本申请实施例提供一种基于Gossip协议的文件分发方法,应用于分布式系统中的节点,所述方法包括:接收到来自第一连通节点的消息,根据所述消息执行相应的任务操作,所述消息包括文件同步消息,所述文件同步消息对应的任务操作为以增量方式同步变化的文件;若第二连通节点的数量不小于N,则向所述第二连通节点持续执行至少一次消息发送进程,直至将所述消息发送给所有可连通节点;其中,所述第二连通节点为所述节点的可连通节点;所述N为执行一次所述消息发送进程时,被发送所述消息的第二连通节点的数量。
第二方面,本申请实施例提供一种系统设备,包括至少一个控制处理器和用于与所述至少一个控制处理器通信连接的存储器;所述存储器存储有可被所述至少一个控制处理器执行的指令,所述指令被所述至少一个控制处理器执行,以使所述至少一个控制处理器能够执行本申请第一方面实施例提供的基于Gossip协议的文件分发方法。
第三方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行本申请第一方面实施例提供的基于Gossip协议的文件分发方法。
本申请提供的实施例包括:基于Gossip协议的文件分发方法、系统设备和计算机可读存储介质,根据本申请实施例提供的方案,在分布式系统中,当一个节点的文件发生变化,能够向N个可连通节点发送用于文件同步的消息,可连通节点接收来自该节点的消息,根据该消息以增量的方式同步变化的文件,该节点还向N个其它可连通节点发送消息,直至所有可连通节点都接收到该消息,而接收到该消息的可连通节点以同样的方式在系统中扩散该消息,使得在系统中任一节点完成文件更新和消息通知的情况下,变化的文件可以快速地分发至整个系统,完成整个系统的文件同步,且以增量的方式同步变化的文件,能够降低带宽消耗,提高文件同步的效率。
附图说明
图1是本申请实施例提供的一种基于Gossip协议的文件分发方法的步骤流程图;
图2是图1中步骤S200的细化步骤流程图;
图3是本申请另一实施例提供的一种基于Gossip协议的文件分发方法的部分步骤流程图;
图4是本申请另一实施例提供的一种基于Gossip协议的文件分发方法的部分步骤流程图;
图5是本申请实施例提供的一种基于Gossip协议的文件分发方法的整体流程图;
图6是本申请实施例提供的一种系统设备的结构示意图。
具体实施方式
本部分将详细描述本申请的具体实施例,本申请之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本申请的每个技术特征和整体技术方案,但其不能理解为对本申请保护范围的限制。
在本申请的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二、第三,只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
本申请的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本申请中的具体含义。
目前,文件分发通常基于P2P中心化拓扑的架构进行,该架构通常由一个索引服务器和多个客户端组成,当索引服务器上的文件变化时,索引服务器会更新索引文件,客户端收到文件更新的指令后,客户端从索引服务器上下载最新索引文件到本地,对比本地文件生成需要更新的文件清单,然后从其它客户端或者索引服务器上下载需要更新的文件,但是,索引服务器的瘫痪容易导致整个系统的崩溃,可靠性和安全性较低;随着网络规模的扩大,对索引服务器进行维护和更新的成本将急剧增加,所需成本过高;客户端收到文件更新的指令和索引服务器更新索引实际可能存在时序错误,导致客户端上的需要更新的文件未和索引服务器上保持一致;在客户端数量过多的高并发场景下,索引服务器的网络流量压力巨大,导致网络拥塞,影响文件下发的时效性和最终一致性。
基于此,本申请实施例提供一种基于Gossip协议的文件分发方法、系统设备及计算机可读存储介质,能够解除对服务器的依赖,系统中所有节点是对等的,且各节点以增量的方式进行文件同步,在任一节点完成文件更新和消息通知的情况下,都可以快速完成整个系统的文件同步。
下面结合附图,对本申请实施例作进一步阐述。
参照图1,图1是本申请实施例提供的一种基于Gossip协议的文件分发方法的步骤流程图,如图1所示,本申请的实施例提供一种基于Gossip协议的文件分发方法,该方法应用于分布式系统中的节点,该方法可以包括步骤S100和步骤S200。
步骤S100,节点接收到来自第一连通节点的消息,根据该消息执行相应的任务操作,该消息包括文件同步消息,文件同步消息对应的任务操作为以增量方式同步变化的文件;
步骤S200,若第二连通节点的数量不小于N,则向第二连通节点持续执行至少一次消息发送进程,直至将该消息发送给所有可连通节点;其中,第二连通节点为该节点的可连通节点;N为执行一次消息发送进程时,被发送消息的第二连通节点的数量。
在一示例性实施例中,系统中的任一节点接收到来自第一连通节点的消息,根据该消息执行相应的任务操作,并向第一连通节点发送任务执行结果,消息包括文件同步消息,文件同步消息对应的任务操作为以增量方式同步变化的文件;第二连通节点也是该节点的可连通节点,若第二连通节点的数量不小于N,则该节点向第二连通节点持续执行至少一次消息发送进程,直至将该消息发送给所有可连通节点;其中N为执行一次消息发送进程时,被发送消息的第二连通节点的数量,即N为预设的扇出值。该节点的可连通节点能够以同样的方式进行消息分发,消息能够以指数级的传播速度在系统中的各个节点间传播,从而快速完成文件分发任务,且节点间以增量方式同步文件,能够有效降低带宽消耗,提高同步效率,在任一节点完成文件更新和消息通知的情况下,整个系统能够快速完成文件同步,还可以通过设置扇出值控制每个节点单次发送消息的数量,避免高并发场景下出现网络拥塞,保证系统的安全性和可靠性。
本领域技术人员可以理解的是,在本实施例中,节点可以是客户端,分布式系统中的各个节点可以是对等的,只要每个客户端都连入网络,在任一节点完成文件更新和消息通知就可以把消息散播到整个系统,解除了对服务器的依赖。还可以理解的是,节点需要监控本地文件,以便及时通知其它节点进行文件更新,客户端可以用inotify监控本地文件,inotify是一种文件系统的变化通知机制,可以让用户态立刻得知如文件增加、删除等事件。
在一可行的实施例中,扇出值N是节点单次发送消息的数量,可以为4,但本实施例不对扇出值作具体限定,扇出值也可以为3或者5,只要能够避免高并发场景下出现网络拥塞,保证系统的安全性和可靠性即可,都在本申请实施例的保护范围内。
容易理解的是,在某个节点的可连通节点的数量小于扇出值的情况下,该节点单次向所有可连通节点发送消息即可。
还可以理解的是,在节点向可连通节点持续执行消息发送进程的情况下,若剩余的未收到消息的可连通节点的数量不足N个,则向剩余的未收到消息的可连通节点发送消息即可,例如扇出值N为4,一个节点的可连通节点有10个,该节点需要分三次向所有可连通节点发送消息,前两次分别向四个可连通节点发送消息,第三次只需向剩余的两个未收到消息的可连通节点发送消息即可。
在另一可行的实施例中,节点每次发送消息的对象可以是随机的,即在消息发送进程中,该节点的一个可连通节点可能多次收到来自该节点的同一消息,但在该节点的所有可连通节点都接收到来自该节点的消息的情况下,该节点消息发送进程才结束;而在整个系统的一次消息分发中,一个节点可以多次接收来自相同节点或者不同节点的对应同一任务操作的消息,但只要系统中所有节点最终都能够接收到该消息即可,该方案同样在本申请实施例的保护范围内。
在一示例性实施例中,在节点接收到来自第一连通节点的消息之前,在第一连通节点状态发生变化或者第一连通节点接收到该消息的情况下,该消息由第一连通节点向N个节点同时发送。节点触发消息分发的情况可以分为两种,一种是节点作为本次消息分发的发起者,另一种是节点作为本次消息分发的中间节点。在节点接收到来自第一连通节点的消息之前,在第一连通节点状态发生变化的情况下,第一连通节点作为本次消息分发的发起者,向与自身连通的N个节点发送该消息;或者在第一连通节点接收到来自其它节点的消息的情况下,第一连通节点作为本次消息分发的中间节点,向与自身连通的N个节点发送该消息。在文件分发的场景下,第一连通节点状态发生变化可以是指更新文件,即第一连通节点的本地目录中的文件发生变化,第一连通节点作为本次消息分发的起始节点,需要将变化的文件分发至整个系统;第一连通节点接收到消息可以是指接收到来自上一节点的文件同步消息,即第一连通节点作为本次消息分发的中间节点,以完成整个系统的文件同步。
在一示例性实施例中,如图2所示,图2是图1中步骤S200的细化步骤流程图,其中步骤200可以包括步骤S210、步骤S220和步骤S230。
步骤S210,向N个第二连通节点发送消息,以使第二连通节点根据消息执行相应的任务操作并向该节点发送任务执行结果;
步骤S220,接收来自第二连通节点的任务执行结果,并判断是否已向所有可连通节点发送消息;
步骤S230,若未向所有可连通节点发送消息,则继续执行消息发送进程,直至将消息发送给所有可连通节点。
该节点在接收到来自第一连通节点的消息,根据该消息执行相应的任务操作,并向第一连通节点发送任务执行结果,随后向N个第二连通节点发送消息;N个第二连通节点接收到来自该节点的消息,根据该消息执行相应的任务操作,并向该节点发送任务执行结果;节点接收来自第二连通节点的任务执行结果,并判断是否已向所有可连通节点发送消息,在未向所有可连通节点发送消息的情况下,该节点继续执行消息发送进程,即再向N个其它第二连通节点发送消息,直至将消息发送给所有可连通节点,能够保证该节点的所有可连通节点都接收到该消息,从而保证系统中所有节点的信息的一致性。
在一可行的实施例中,在节点向可连通节点持续执行消息发送进程的情况下,若剩余的未收到消息的可连通节点的数量不足N个,则向剩余的未收到消息的可连通节点发送消息即可,例如扇出值N为4,一个节点的可连通节点有10个,该节点需要分三次向所有可连通节点发送消息,前两次分别向四个可连通节点发送消息,第三次只需向剩余的两个未收到消息的可连通节点发送消息即可。
如图3所示,本申请实施例提供另一种基于Gossip协议的文件分发方法,图3是本申请另一实施例提供的一种基于Gossip协议的文件分发方法的部分步骤流程图,在节点接收到来自第一连通节点的消息之后,该方法还可以包括步骤S110。
步骤S110,判断消息对应的任务操作的执行情况;在任务操作处于未执行或者执行失败的情况下,才执行任务操作;在任务操作处于执行中或者已执行成功的情况下,不执行任务操作。
在一示例性实施例中,在一次消息分发的过程中,由于每个节点都向自身的所有可连通节点发送消息,因此一个节点可能会多次收到同一消息,在节点接收到来自其它节点的消息之后,判断该消息对应的任务操作的执行情况,在任务操作处于未执行或者执行失败的情况下,才执行任务操作;在任务操作处于执行中或者已执行成功的情况下,不执行任务操作,直接向上一节点发送任务执行情况,避免出现节点重复执行某一个任务操作的情况,有利于提高整个系统的运行效率,且节点多次接收同一消息,每次重复接收消息,都检测该消息对应的任务操作的执行情况,能够在一定程度上防止任务未执行或者执行失败,保证任务能够被执行。
在一可行的实施例中,在节点接收到来自其它节点的消息之后,判断该消息对应的任务操作的执行情况,向上一节点发送任务执行情况,该节点还判断是否已向所有可连通节点发送该消息,在已经向所有可连通节点发送过该消息的情况下,不再向其可连通节点发送该消息,避免重复发送同一消息或者减少重复发送消息的次数,减少带宽消耗,避免网络拥塞,提高文件分发的效率。
容易理解的是,在第一连通节点作为消息分发的中间节点的情况下,在第一连通节点接收到该消息之后,也会判断该消息对应的任务操作的执行情况;在任务操作处于未执行或者执行失败的情况下,才执行任务操作;在任务操作处于执行中或者已执行成功的情况下,不执行任务操作。
参照图4,图4是本申请另一实施例提供的一种基于Gossip协议的文件分发方法的部分步骤流程图,其中消息携带有时间戳,在节点接收到来自第一连通节点的消息之后,该方法还可以包括步骤T110。
步骤T110,判断消息的时间戳是否等于或者晚于前次消息的时间戳;在消息的时间戳等于或者晚于前次消息的时间戳的情况下,才执行任务操作;在消息的时间戳早于前次消息的时间戳的情况下,不执行任务操作。
在一示例性实施例中,由于一个消息在不同节点间的传播时间不一致,因此在系统连续发起多个不同的文件同步任务的情况下,例如某一个节点文件发生变化,向其它节点发送第一文件同步消息以使系统同步变化的文件,但是1s后,另一节点的文件发生不同的变化,并向其它节点发送第二文件同步消息以使系统同步变化的文件,此时第二文件同步消息作为最新的任务消息,系统通常需要以第二文件同步消息为准,但是有可能一个节点在已经根据第二文件同步消息同步了最新文件的情况下,又收到第一文件同步消息,并根据第一文件同步消息同步过期文件。为了防止这种情况的发生,消息可以携带有对应的操作任务的时间戳,用于表示该消息对应的任务发起时间,在节点接收到来自第一连通节点,即上一节点的消息之后,判断本次消息携带的时间戳是否等于或者晚于前次消息携带的时间戳,其中前次消息是指该节点在收到本次消息之前收到的上一个消息;在本次消息的时间戳等于或者晚于前次消息的时间戳的情况下,说明本次消息对应的操作任务的发起时间等于或者晚于前次消息,才执行任务操作;在消息的时间戳早于前次消息的时间戳的情况下,不执行任务操作,从而避免进行无效的文件同步,提高系统的可靠性,且提高文件分发的效率。
本申请另一些实施例提供一种基于Gossip协议的文件分发方法,在一示例性实施例中,系统中的节点保存有上次消息分发中的各个可连通节点的响应时间,响应时间为节点向可连通节点发送消息与可连通节点向节点发送任务执行结果的时间差,在进行本次消息分发的情况下,节点优先向响应时间短的可连通节点发送消息。每次节点向可连通节点发送消息,都会记录发送消息和收到任务执行结果的时间,并计算出时间差,得到本次消息分发中各个可连通节点的响应时间,在下次进行消息分发的情况下,根据保存的最近一次的消息分发中的各个可连通节点的响应时间,优先向响应时间短的可连通节点发送消息,按照响应时间由短到长的顺序,将消息依次分发给所有可连通节点。能够提高消息通知和文件分发的效率,以使整个系统尽快完成文件同步。
在本申请的一些实施例中,文件同步消息对应的任务操作可以是使用rsync(remote sync,数据镜像备份工具)同步变化的文件,rsync工具包被用来从一个位置到另一个位置高效地同步文件和文件夹,rsync可以实现不同节点间的备份,初次同步时,rsync会全量拷贝源文件或目录到目标位置,第二次及以后同步时,rsync仅拷贝变化的数据块或字节到目标位置,使得文件传输非常迅速,rsync还可以使用SSH(Secure Shell,安全外壳)协议加密传输,提高文件传输的安全性,rsync在发送时会压缩数据块,接收后再解压缩数据块,所以和其他文件传输协议相比,rsync在跨主机传输文件时会占用较小的带宽,而且安装和运行rsync不需要特殊权限,便于使用。
文件同步消息携带有rsync账号信息、同步文件信息和同步目录信息,以便节点能够根据文件同步消息以rsync的方式进行文件同步,不需要额外设置服务器,各个节点,即各个客户端,可以根据文件同步消息将需要更新的文件拷贝至目标目录中。
在本申请的另一些实施例中,消息还可以包括节点更新消息,节点更新消息对应的操作任务为更新节点信息,当某个节点的信息发生变化,例如该节点在分布式系统中对应的编号改变,可以按照文件同步消息分发的方式向整个系统扩散节点更新消息,以使系统中的所有节点更新节点信息,保证系统的正常运行,所有节点并行地进行节点信息更新,能够快速完成节点更新,使得整个系统中的节点信息尽快达到一致,避免文件同步过程中出错。
在本申请的另一些实施例中,消息还可以包括配置更新消息,配置更新消息对应的操作任务为更新节点配置信息,当节点的配置发生变化,例如分布式系统中节点用于保存文件的目录发生改变,可以按照文件同步消息分发的方式向整个系统扩散配置更新消息,以使系统中的所有节点更新文件目录,保证文件能够正常同步,所有节点并行地进行配置更新,能够快速更新节点配置信息,使得系统中所有节点的配置信息尽快达到一致。
参照图5,图5是本申请实施例提供的一种基于Gossip协议的文件分发方法的整体流程图,在分布式系统中,当一个节点的文件发生变化,该节点向N个可连通节点发送文件同步消息,可连通节点接收到来自该节点的文件同步消息,以rsync的方式进行文件同步,并将文件同步结果发送给该节点,该节点接收文件同步结果,再向N个其它可连通节点发送文件同步消息,直至将文件同步消息发送给所有可连通节点。
当一个节点接收到来自上一节点的文件同步消息,文件同步消息用于使该节点执行文件同步任务,文件同步消息携带有本次文件同步任务的时间戳,该时间戳表示本次文件同步任务的发起时间,若该节点之前执行过文件同步任务,则该节点先判断该时间戳是否早于前次消息携带的时间戳,在本次文件同步消息携带的时间戳晚于前次文件同步消息携带的时间戳的情况下,可以直接执行本次文件同步任务;在本次文件同步消息携带的时间戳早于前次文件同步消息携带的时间戳的情况下,忽略本次文件同步消息,不执行本次文件同步任务;在本次文件同步消息携带的时间戳等于前次文件同步消息携带的时间戳的情况下,节点需要判断本次文件同步任务的执行情况,在未进行文件同步或者文件同步失败的情况下,节点以rsync的方式进行文件同步,并将文件同步结果发送给上一节点;在本次文件同步任务正在进行或者本次文件同步任务已完成的情况下,节点不再执行本次文件同步任务,直接将文件同步结果发送给上一节点;该节点向N个可连通节点发送文件同步消息,可连通节点接收到来自该节点的文件同步消息,以rsync的方式进行文件同步,并将文件同步结果发送给该节点,该节点接收文件同步结果,再向N个其它可连通节点发送文件同步消息,直至将文件同步消息发送给所有可连通节点。
节点保存最近一次消息分发时各个可连通节点的响应时间,其中响应时间为节点向可连通节点发送消息与可连通节点向节点发送任务执行结果的时间差,在进行本次消息分发的情况下,节点优先向响应时间短的可连通节点发送消息。每次节点向可连通节点发送消息,都会记录发送消息和收到任务执行结果的时间,并计算出时间差,得到本次消息分发中各个可连通节点的响应时间,在下一次进行消息分发的情况下,根据保存的最近一次的消息分发中各个可连通节点的响应时间,优先向响应时间短的可连通节点发送消息,按照响应时间由短到长的顺序,将消息依次分发给所有可连通节点。
在本申请的一些实施例中,分布式系统也可以按照上述方法分发节点更新消息或者配置更新消息,节点更新消息对应的任务操作为更新节点信息,例如客户端在系统中的节点编号改变,可以按照上述文件同步消息的分发方法在系统中进行节点更新消息的分发;配置更新消息对应的任务操作为更新节点配置信息,例如客户端用于保存文件的目录改变,可以按照上述文件同步消息的分发方法在系统中进行配置更新消息的分发。
参照图6,图6是本申请实施例提供的一种系统设备600的结构示意图,本申请实施例提供一种系统设备600,该系统设备600包括至少一个控制处理器610和用于与至少一个控制处理器610通信连接的存储器620;存储器620存储有可被至少一个控制处理器610执行的指令,指令被至少一个控制处理器610执行,以使至少一个控制处理器610能够执行以上方法实施例中任一项的基于Gossip协议的文件分发方法。根据本申请实施例提供的系统设备600,能够执行基于Gossip协议的文件分发方法,在分布式系统中,当一个节点的文件发生变化,能够向N个可连通节点发送用于文件同步的消息,可连通节点接收来自该节点的消息,根据该消息以增量的方式同步变化的文件,该节点还向N个其它可连通节点发送消息,直至所有可连通节点都接收到该消息,而接收到该消息的可连通节点以同样的方式在系统中扩散该消息,使得在系统中任一节点完成文件更新和消息通知的情况下,变化的文件可以快速地分发至整个系统,完成整个系统的文件同步,且以增量的方式同步变化的文件,能够降低带宽消耗,提高文件同步的效率。
本申请实施例还提供的一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使计算机执行以上方法实施例中任一项的基于Gossip协议的文件分发方法。根据该文件分发方法,不需要设置服务器,能够解除由服务器产生的限制,系统中所有节点是对等的,且各节点以增量的方式进行文件同步,在任一节点完成文件更新和消息通知的情况下,都可以快速完成整个系统的文件同步。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质或非暂时性介质和通信介质或暂时性介质。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息诸如计算机可读指令、数据结构、程序模块或其他数据的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘DVD或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (11)
1.一种基于Gossip协议的文件分发方法,应用于分布式系统中的节点,所述方法包括:
接收到来自第一连通节点的消息,根据所述消息执行相应的任务操作,所述消息包括文件同步消息,所述文件同步消息对应的任务操作为以增量方式同步变化的文件;
若第二连通节点的数量不小于N,则向所述第二连通节点持续执行至少一次消息发送进程,直至将所述消息发送给所有可连通节点;其中,所述第二连通节点为所述节点的可连通节点;所述N为执行一次所述消息发送进程时,被发送所述消息的第二连通节点的数量。
2.根据权利要求1所述的基于Gossip协议的文件分发方法,其特征在于,在所述节点接收到来自第一连通节点的消息之前,在所述第一连通节点状态发生变化或者所述第一连通节点接收到所述消息的情况下,所述消息由所述第一连通节点向N个所述节点同时发送。
3.根据权利要求1所述的基于Gossip协议的文件分发方法,其特征在于,所述向所述第二连通节点持续执行至少一次消息发送进程,直至将所述消息发送给所有可连通节点,包括:
向N个所述第二连通节点发送所述消息,以使所述第二连通节点根据所述消息执行相应的任务操作并向所述节点发送任务执行结果;
接收来自所述第二连通节点的任务执行结果,并判断是否已向所有可连通节点发送所述消息;
若未向所有可连通节点发送所述消息,则继续执行所述消息发送进程,直至将所述消息发送给所有可连通节点。
4.根据权利要求1所述的基于Gossip协议的文件分发方法,其特征在于,在所述节点接收到来自第一连通节点的消息之后,所述方法还包括:
判断所述消息对应的任务操作的执行情况;
在所述任务操作处于未执行或者执行失败的情况下,才执行所述任务操作;
在所述任务操作处于执行中或者已执行成功的情况下,不执行所述任务操作。
5.根据权利要求1所述的基于Gossip协议的文件分发方法,其特征在于,所述消息携带有时间戳,在所述节点接收到来自第一连通节点的消息之后,所述方法还包括:
判断所述消息的时间戳是否等于或者晚于前次消息的时间戳;
在所述消息的时间戳等于或者晚于前次消息的时间戳的情况下,才执行所述任务操作;
在所述消息的时间戳早于前次消息的时间戳的情况下,不执行所述任务操作。
6.根据权利要求1所述的基于Gossip协议的文件分发方法,其特征在于,所述节点保存有上次消息分发中的各个所述可连通节点的响应时间,所述响应时间为所述节点向所述可连通节点发送所述消息与所述可连通节点向所述节点发送所述任务执行结果的时间差;所述方法还包括:
在进行本次消息分发的情况下,所述节点优先向所述响应时间短的可连通节点发送所述消息。
7.根据权利要求1所述的基于Gossip协议的文件分发方法,其特征在于,所述文件同步消息对应的任务操作为使用rsync同步变化的文件,所述文件同步消息携带有rsync账号信息、同步文件信息和同步目录信息。
8.根据权利要求1所述的基于Gossip协议的文件分发方法,其特征在于,所述消息还包括节点更新消息,所述节点更新消息对应的任务操作为更新节点信息。
9.根据权利要求1所述的基于Gossip协议的文件分发方法,其特征在于,所述消息还包括配置更新消息,所述配置更新消息对应的任务操作为更新节点配置信息。
10.一种系统设备,其特征在于,包括至少一个控制处理器和用于与至少一个所述控制处理器通信连接的存储器;所述存储器存储有可被至少一个所述控制处理器执行的指令,指令被至少一个所述控制处理器执行,以使至少一个所述控制处理器能够执行如权利要求1至9任一项所述的基于Gossip协议的文件分发方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1至9任一项所述的基于Gossip协议的文件分发方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210740019.4A CN117354295A (zh) | 2022-06-28 | 2022-06-28 | 基于Gossip协议的文件分发方法、系统设备及存储介质 |
PCT/CN2023/100234 WO2024001787A1 (zh) | 2022-06-28 | 2023-06-14 | 基于Gossip协议的文件分发方法、系统设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210740019.4A CN117354295A (zh) | 2022-06-28 | 2022-06-28 | 基于Gossip协议的文件分发方法、系统设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117354295A true CN117354295A (zh) | 2024-01-05 |
Family
ID=89358065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210740019.4A Pending CN117354295A (zh) | 2022-06-28 | 2022-06-28 | 基于Gossip协议的文件分发方法、系统设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117354295A (zh) |
WO (1) | WO2024001787A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8654650B1 (en) * | 2010-04-30 | 2014-02-18 | Amazon Technologies, Inc. | System and method for determining node staleness in a distributed system |
CN108696595A (zh) * | 2018-05-28 | 2018-10-23 | 郑州云海信息技术有限公司 | 分布式集群数据同步方法、主节点、从节点、系统及介质 |
CN114363357B (zh) * | 2021-12-28 | 2024-01-19 | 上海沄熹科技有限公司 | 一种基于Gossip的分布式数据库网络连接管理方法 |
CN114124388B (zh) * | 2022-01-27 | 2022-05-10 | 济南量子技术研究院 | 一种基于量子密钥的Gossip协议同步方法 |
-
2022
- 2022-06-28 CN CN202210740019.4A patent/CN117354295A/zh active Pending
-
2023
- 2023-06-14 WO PCT/CN2023/100234 patent/WO2024001787A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024001787A1 (zh) | 2024-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10764369B2 (en) | Data storage method and server applicable to distributed server cluster | |
EP3490224A1 (en) | Data synchronization method and system | |
JP4732661B2 (ja) | クライアントのデータベースとサーバーのデータベースとを同期させる方法 | |
KR100937163B1 (ko) | 데이터베이스 데이터의 동기화 | |
CN108200219B (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN111368002A (zh) | 一种数据处理方法、系统、计算机设备和存储介质 | |
US20160142247A1 (en) | Local network and method of updating a device in a local network | |
CN110032478B (zh) | 一种主备中心数据实时同步方法、装置、系统及存储介质 | |
US20190173596A1 (en) | Method for fast reconfiguration of gm clocks in the tsn network by means of an explicit teardown message | |
CN104184756A (zh) | 一种数据同步方法、装置及系统 | |
WO2008100114A1 (en) | Method for transmitting data transmitted incompletely between server and client | |
WO2022121772A1 (zh) | 数据容灾备份方法、统一数据管理udm实体和存储介质 | |
EP3713195B1 (en) | Log processing method, related device, and system | |
CN113572561B (zh) | 用于时钟同步的方法、设备、通信系统和介质 | |
WO2017016196A1 (zh) | 同步数据方法、装置及系统 | |
CN111083016B (zh) | 一种轮询表处理方法及装置、存储介质和设备 | |
KR100431700B1 (ko) | 에스지에스엔과 지지에스엔간의 시각 동기화 시스템 및 방법 | |
CN117354295A (zh) | 基于Gossip协议的文件分发方法、系统设备及存储介质 | |
CN111510327A (zh) | 用于共同训练模型的训练参与端的网络连接方法和装置 | |
CN113515574B (zh) | 一种数据同步方法及装置 | |
CN111316606A (zh) | 控制器-交换机网络中的优化调和 | |
CN113347221B (zh) | 一种数据同步方法、通讯站、集群系统和存储装置 | |
CN114338653A (zh) | 文件断点续传方法及装置 | |
CN111125001A (zh) | 快照复制方法、电子设备和计算机程序产品 | |
CN111262717B (zh) | 一种分布式网络中数据同步异常的恢复方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |