CN117112223A - 分布式系统配置分发方法及装置 - Google Patents

分布式系统配置分发方法及装置 Download PDF

Info

Publication number
CN117112223A
CN117112223A CN202311148556.0A CN202311148556A CN117112223A CN 117112223 A CN117112223 A CN 117112223A CN 202311148556 A CN202311148556 A CN 202311148556A CN 117112223 A CN117112223 A CN 117112223A
Authority
CN
China
Prior art keywords
module
consensus
configuration data
server node
distributed system
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
Application number
CN202311148556.0A
Other languages
English (en)
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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202311148556.0A priority Critical patent/CN117112223A/zh
Publication of CN117112223A publication Critical patent/CN117112223A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提出一种分布式系统配置分发方法、装置、设备及计算机可读存储介质。其中,所述分布式系统包括多个服务器节点,每个所述服务器节点包括核心模块和共识模块,该方法包括:在所述分布式系统初始化时,启动各个服务器节点的共识模块;所述共识模块从状态机数据库中读取配置数据并缓存在内存中;各个服务器节点的所述共识模块之间进行选举,得到主共识模块;启动各个服务器节点的核心模块;所述核心模块读取内存中缓存的所述配置数据,以配置所述服务器节点的服务。本申请实施例可以基于共识算法实现分布式系统的配置分发,减少对第三方服务组件的依赖。

Description

分布式系统配置分发方法及装置
技术领域
本申请涉及数据存储技术领域,尤其涉及一种分布式系统配置分发方法、装置、设备及计算机可读存储介质。
背景技术
分布式系统是建立在网络之上的软件系统,具有高度的内聚性和透明性。在现代网络应用程序中,配置的分发和同步是一个重要的问题。由于网络应用程序通常是分布式的,并且配置文件的变化可能会对整个应用程序产生影响,因此需要一种可靠的配置分发和同步方案。
发明内容
本申请实施例提供一种分布式系统配置分发方法、装置、设备及计算机可读存储介质,以解决相关技术存在的问题,技术方案如下:
第一方面,本申请实施例提供了一种分布式系统配置分发方法,所述分布式系统包括多个服务器节点,每个所述服务器节点包括核心模块和共识模块,所述方法包括:
在所述分布式系统初始化时,启动各个服务器节点的共识模块;
所述共识模块从状态机数据库中读取配置数据并缓存在内存中;
各个服务器节点的所述共识模块之间进行选举,得到主共识模块;
启动各个服务器节点的核心模块;
所述核心模块读取内存中缓存的所述配置数据,以配置所述服务器节点的服务。
第二方面,本申请实施例提供了一种分布式系统配置分发装置,包括:
启动模块,用于在分布式系统初始化时,启动各个服务器节点的共识模块;
读取模块,用于控制所述共识模块从状态机数据库中读取配置数据并缓存在内存中;
选举模块,用于在各个服务器节点的所述共识模块之间进行选举,得到主共识模块;
所述启动模块,还用于启动各个服务器节点的核心模块;
所述读取模块,还用于控制所述核心模块读取内存中缓存的所述配置数据,以配置所述服务器节点的服务。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,以使至少一个处理器能够执行上述分布式系统配置分发方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储计算机指令,当计算机指令在计算机上运行时,上述各方面任一种实施方式中的方法被执行。
上述技术方案中的优点或有益效果至少包括:
本申请实施例将分布式系统的每个服务器节点分为核心模块和共识模块,核心模块用于处理业务请求,共识模块用于实现配置分发,减少对第三方服务组件的依赖。并且,共识模块与核心模块在同一个进程运行,可以保证更高的性能。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本申请进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本申请公开的一些实施方式,而不应将其视为是对本申请范围的限制。
图1示出根据本申请一实施例的分布式系统配置分发方法的应用场景示意图。
图2示出根据本申请一实施例的分布式系统配置分发方法的流程示意图。
图3示出根据本申请另一实施例的分布式系统配置分发方法的流程示意图。
图4示出根据本申请另一实施例的分布式系统配置分发方法的流程示意图。
图5示出根据本申请另一实施例的分布式系统配置分发方法的流程示意图。
图6示出图5中由主Raft模块处理配置变更请求的子流程示意图。
图7示出根据本申请另一实施例的分布式系统配置分发方法的流程示意图。
图8示出根据本申请另一实施例的分布式系统配置分发方法的流程示意图。
图9示出根据本申请另一实施例的分布式系统配置分发方法的流程示意图。
图10示出根据本申请一实施例的分布式系统配置分发装置的示意性结构框图。
图11示出用来实现本申请实施例的分布式系统配置分发方法的电子设备的框图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本申请的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
在现代网络应用程序中,由于网络应用程序通常是分布式的,并且配置文件的变化可能会对整个应用程序产生影响,因此需要一种可靠的配置分发和同步方法。但是,目前已有的配置分发方案可能存在以下缺陷:
(1)依赖第三方服务组件,增加维护成本、程序复杂性;
(2)第三方服务组件故障或者出现性能问题可能会影响分布式系统的可靠性。
基于上述技术缺陷,本申请实施例提供了一种新的分布式系统配置分发方案,将分布式系统的每个服务器节点分为Raft模块和核心模块,核心模块用于处理业务请求,Raft模块用于实现配置分发,减少对第三方服务组件的依赖。并且,Raft模块与核心模块在同一个进程运行,可以保证更高的性能。
以下为本申请实施例中可能涉及到的名词术语解释:
分布式系统:是建立在网络之上的软件系统,具有高度的内聚性和透明性。
Raft:一种共识算法,能为在计算机集群之间部署有限状态机提供一种通用方法,并确保集群内的任意节点在某种状态转换上保持一致。
领导者(Leader):Raft中选举出的角色,用于处理客户端请求,并向Follower同步日志,当日志同步到大多数节点上后通知Follower提交日志。Raft算法将时间分为一个个的任期(Term),每一个Term的开始都是Leader选举。在成功选举Leader之后,Leader会在整个Term内管理整个集群。
跟从者(Follower):用于接收并持久化Leader同步的日志,在Leader通知日志可以提交之后,提交日志。
状态机(StateMachine):一般指有限状态机(Finite-State Machine,FSM),又称有限状态自动机(Finite-State Automaton,FSA),是表示有限个状态以及在这些状态之间的转移和动作等行为的数学计算模型。在Raft协议中,每个节点都维护一个状态机,用来存储系统的状态。
DB(Database,数据库):用于数据的持久化存储。
Raft CommitIndex:已被多数Raft节点复制的最新日志条目的索引。
图1示出根据本申请一实施例的分布式系统配置分发方法的应用场景示意图。如图1所示,客户端用户发送数据存储请求至代理(Agent),代理将该请求传输至分布式系统(分布式存储系统)。所述分布式系统包括多个服务器(Server)节点,每个服务器节点包括核心模块和共识模块(Raft模块)。核心模块用于处理业务请求,例如数据存储请求(写请求),Raft模块用于实现配置分发。
图2示出根据本申请一实施例的分布式系统配置分发方法的流程图。如图2所示,该分布式系统配置分发方法可以包括:
S210,在分布式系统初始化时,先启动各个服务器节点的Raft模块。
所述分布式系统中的每个服务器节点都包括核心模块和Raft模块。在本实施例中,当系统初始化时,暂不启动核心模块,先启动Raft模块。由Raft模块读取配置数据后,再启动核心模块。
S220,所述Raft模块从状态机数据库中读取配置数据并缓存在内存中。
每个所述Raft模块中包含有状态机,以及所述状态机对应的数据库(DB)。在本申请实施例中,若所述分布式系统不是第一次启动,则每个所述Raft模块的状态机数据库中已保存有之前读取后持久化的配置数据。所述Raft模块可以直接从对应状态机的数据库中读取所述配置数据,然后将所述配置数据缓存在所述服务器节点的内存中,以供后续核心模块读取。
S230,各个服务器节点的所述Raft模块之间进行选举得到主节点。
各个服务器节点的所述Raft模块一起称为Raft模块组。当启动各个服务器节点的所述Raft模块之后,这些Raft模块之间会首先通过Raft算法进行一次选举,选出主Raft模块,剩下的其他Raft模块则为从Raft模块。所述主Raft模块会在整个任期(Term)内管理整个集群,也就是所述Raft模块组。完成第一次选举后,各个服务器节点通过回调函数更新并存储主Raft模块信息。
S240,启动各个服务器节点的核心模块,所述核心模块读取缓存的所述配置数据。
当Raft模块已在内存中缓存所述配置数据,并且选举出主Raft模块之后,启动各个服务器节点的核心模块。所述核心模块可以直接从内存中读取缓存的所述配置数据,用来配置所述服务器节点的服务,则至此所述分布式系统的服务可用。
在一种实施方式中,如图3所示,分布式系统配置分发方法还包括:
S250,在所述缓存中未命中所述配置数据的情况下,所述核心模块从所述Raft模块中读取配置数据,并更新缓存。
在本实施例中,如果缓存没有命中,即所述核心模块从缓存中读取所述配置数据失败,则表示可能所述配置数据还未缓存在内存中,或者已被删除。在此情况下,所述核心模块可以从所述Raft模块中读取所述配置数据,并更新缓存。具体而言,是从所述Raft模块的状态机数据库中读取所述配置数据。同样地,至此所述分布式系统的服务可用。
在一种实施方式中,如图4所示,分布式系统配置分发方法还包括:
S260,在所述状态机数据库中不存在配置数据的情况下,由所述主Raft模块将默认配置数据发送到各个从Raft模块,等待多数从Raft模块确认并提交日志后,将所述默认配置数据应用到所述状态机。
在本实施例中,若所述分布式系统是第一次启动,则所述状态机数据库中没有配置数据。此时,需要由所述主Raft模块将预先设置的默认配置数据发送到各个从Raft模块,等待多数从Raft模块确认,提交日志后应用到状态机,所述状态机会将所述默认配置数据持久化到数据库。
具体而言,所述主Raft模块将所述默认配置数据作为日志条目(Log Entries)加入到它的日志中,然后并行的向其他从Raft模块发起附加条目(AppendEntries)RPC复制日志条目。当这条日志被复制到大多数从Raft模块上,所述主Raft模块提交(Commit)日志,并将这条日志应用到它的状态机。
在一种实施方式中,如图5所示,分布式系统配置分发方法还包括:
S310,在任一所述服务器节点接收到配置变更请求时,若当前服务器节点不是所述主Raft模块所在的节点,则将所述配置变更请求转发至所述主Raft模块,由所述主Raft模块处理所述配置变更请求。
S320,若当前服务器节点是所述主Raft模块所在的节点,则直接由所述主Raft模块处理所述配置变更请求。
在一种实施方式中,如图6所示,步骤S310和S320中的由所述主Raft模块处理所述配置变更请求包括:
S321,所述主Raft模块将新配置数据发送至各个从Raft模块,等待大多数从Raft模块确认后,所述主Raft模块将所述新配置数据应用于状态机,并通知各个从Raft模块日志已提交,以使各个从Raft模块将所述新配置数据应用于状态机。
具体而言,所述主Raft模块将所述新配置数据作为Log Entries加入到它的日志中,然后并行的向其他从Raft模块发起AppendEntriesRPC复制日志条目。当这条日志被复制到大多数从Raft模块上,所述主Raft模块提交日志,并将这条日志(所述新配置数据)应用到它的状态机。另外,所述主Raft模块通知各个从Raft模块日志已提交,因此各个从Raft模块也提交日志,并将这条日志(所述新配置数据)应用于状态机。
S322,所述主Raft模块确认日志已提交后删除内存中缓存的原配置数据。
在本实施例中,此步骤只是将内存中缓存的原配置数据删除,并没有新增新配置数据,而是等待下一次所述核心模块从缓存中读取配置数据时,发现已删除,则会从所述Raft模块中读取所述新配置数据,并更新缓存。
当然,在其他实施例中,此步骤也可以直接将内存中缓存的原配置数据修改为所述新配置数据,在此不再赘述。
在一种实施方式中,如图7所示,分布式系统配置分发方法还包括:
S410,在主Raft模块发现有从Raft模块失联的情况下,所述主Raft模块通知下游代理服务去除所述从Raft模块对应服务器节点的请求流量。
Raft模块组的Raft模块之间可以通过发送心跳的方式检测对方是否在线。当所述主Raft模块通过心跳检测发现某个从Raft模块失联,导致该从Raft模块所在的服务器节点的配置数据无法及时更新,则需要通知下游代理服务去除所述从Raft模块对应服务器节点的请求流量,以免这些请求发送到该服务器节点后无法正常处理。
当所述主Raft模块通过心跳检测发现该从Raft模块重新上线(重新加入所述Raft模块组)后,再通知下游代理服务让所述从Raft模块对应服务器节点重新接收请求流量。
在一种实施方式中,如图8所示,分布式系统配置分发方法还包括:
S420,在增加服务器节点时,将新节点信息加入Raft模块组,启动新节点的Raft模块。
当所述分布式系统中增加新的服务器节点时,先通过API接口将所述新服务器节点的信息加入所述Raft模块组,然后启动所述新服务器节点的Raft模块。
S430,所述新节点的Raft模块从所述主Raft模块中同步配置数据,同步完成后缓存最新的配置数据到内存中,并启动核心模块。
成功加入Raft模块组后,所述新服务器节点的Raft模块从所述主Raft模块的状态机数据库中同步配置数据,同步完成后缓存最新的配置数据到内存中,并启动新服务器节点的核心模块。
在一种实施方式中,如图9所示,分布式系统配置分发方法还包括:
S440,在下线服务器节点时,所述主Raft模块通知下游代理服务去除所述服务器节点的请求流量。
S450,停止运行所述服务器节点的核心模块。
S460,等待所述核心模块退出后,将所述服务器节点的信息从Raft模块组删除。
S470,停止运行所述服务器节点的Raft模块。
当所述分布式系统下线某个服务器节点时,该节点的Raft模块会告知主Raft模块该节点下线信息。所述主Raft模块通知下游代理服务去除该节点流量,以免这些请求发送到该节点后无法正常处理。然后停止运行该节点核心模块,等待该节点核心模块退出后,通过API接口将该节点信息从Raft模块组中删除,并停止运行该节点Raft模块,关闭下线该节点服务。
本申请实施例将分布式系统的每个服务器节点分为核心模块和Raft模块,核心模块用于处理业务请求,Raft模块用于实现配置分发,减少对第三方服务组件的依赖。并且,Raft模块与核心模块在同一个进程运行,可以保证更高的性能。
图10示出根据本申请一实施例的分布式系统配置分发装置400的结构框图。如图10所示,该分布式系统配置分发装置500可以包括:
启动模块510,用于在分布式系统初始化时,启动各个服务器节点的Raft模块;
读取模块520,用于控制所述Raft模块从状态机数据库中读取配置数据并缓存在内存中;
选举模块530,用于各个服务器节点的所述Raft模块之间进行选举,得到主Raft模块;
所述启动模块510,还用于启动各个服务器节点的核心模块;
所述读取模块520,还用于控制所述核心模块读取内存中缓存的所述配置数据,以配置所述服务器节点的服务。
在一种实施方式中,所述读取模块520还用于在所述缓存中未命中所述配置数据的情况下,控制所述核心模块从所述Raft模块中读取配置数据,并更新缓存。
在一种实施方式中,所述读取模块520还用于在所述状态机数据库中不存在配置数据的情况下,控制所述主Raft模块将默认配置数据发送到各个从Raft模块,等待多数从Raft模块确认并提交日志后,将所述默认配置数据应用到所述状态机。
在一种实施方式中,在任一所述服务器节点接收到配置变更请求时,将所述配置变更请求转发至所述主Raft模块,由所述主Raft模块处理所述配置变更请求。
在一种实施方式中,所述主Raft模块处理所述配置变更请求包括:
所述主Raft模块将新配置数据发送至各个从Raft模块,等待大多数从Raft模块确认后,所述主Raft模块将所述新配置数据应用于状态机,并通知各个从Raft模块日志已提交,以使各个从Raft模块将所述新配置数据应用于状态机;
所述主Raft模块确认日志已提交后删除内存中缓存的原配置数据。
在一种实施方式中,在主Raft模块发现有从Raft模块失联的情况下,所述主Raft模块通知下游代理服务去除所述从Raft模块对应服务器节点的请求流量。
在一种实施方式中,在增加服务器节点时,将新节点信息加入Raft模块组,启动新节点的Raft模块;
所述新节点的Raft模块从所述主Raft模块中同步配置数据,同步完成后缓存最新的配置数据到内存中,并启动核心模块。
在一种实施方式中,在下线服务器节点时,所述主Raft模块通知下游代理服务去除所述服务器节点的请求流量;
停止运行所述服务器节点的核心模块;
等待所述核心模块退出后,将所述服务器节点的信息从Raft模块组删除;
停止运行所述服务器节点的Raft模块。
本申请实施例各装置中的各个部分的功能可以参见上述方法中的对应描述,在此不再赘述。
图11示出根据本申请一实施例的电子设备的结构框图。如图11所示,该电子设备包括:存储器610和处理器620,存储器610内存储有可在处理器620上运行的指令。处理器620执行该指令时实现上述实施例中的分布式系统配置分发方法。存储器610和处理器620的数量可以为一个或多个。该电子设备旨在表示各种形式的数字计算机,诸如,服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
该电子设备还可以包括通信接口630,用于与外界设备进行通信,进行数据交互传输。各个设备利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器620可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器610、处理器620及通信接口630集成在一块芯片上,则存储器610、处理器620及通信接口630可以通过内部接口完成相互间的通信。
应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Dignal Processing,DSP)、专用集成电路(Application Specific Sntegrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。
本申请实施例提供了一种计算机可读存储介质(如上述的存储器610),其存储有计算机指令,该程序被处理器执行时实现本申请实施例中提供的方法。
可选的,存储器610可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据分布式系统配置分发方法的电子设备的使用所创建的数据等。此外,存储器610可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器610可选包括相对于处理器620远程设置的存储器,这些远程存储器可以通过网络连接至分布式系统配置分发方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或多个(两个或两个以上)用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
应理解的是,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (11)

1.一种分布式系统配置分发方法,所述分布式系统包括多个服务器节点,其特征在于,每个所述服务器节点包括核心模块和共识模块,所述方法包括:
在所述分布式系统初始化时,启动各个服务器节点的共识模块;
所述共识模块从状态机数据库中读取配置数据并缓存在内存中;
各个服务器节点的所述共识模块之间进行选举,得到主共识模块;
启动各个服务器节点的核心模块;
所述核心模块读取内存中缓存的所述配置数据,以配置所述服务器节点的服务。
2.根据权利要求1所述的方法,其特征在于,还包括:
在所述缓存中未命中所述配置数据的情况下,所述核心模块从所述共识模块中读取配置数据,并更新缓存。
3.根据权利要求1所述的方法,其特征在于,还包括:
在所述状态机数据库中不存在配置数据的情况下,由所述主共识模块将默认配置数据发送到各个从共识模块,等待多数从共识模块确认并提交日志后,将所述默认配置数据应用到所述状态机。
4.根据权利要求1所述的方法,其特征在于,还包括:
在任一所述服务器节点接收到配置变更请求时,将所述配置变更请求转发至所述主共识模块,由所述主共识模块处理所述配置变更请求。
5.根据权利要求4所述的方法,其特征在于,所述主共识模块处理所述配置变更请求包括:
所述主共识模块将新配置数据发送至各个从共识模块,等待大多数从共识模块确认后,所述主共识模块将所述新配置数据应用于状态机,并通知各个从共识模块日志已提交,以使各个从共识模块将所述新配置数据应用于状态机;
所述主共识模块确认日志已提交后删除内存中缓存的原配置数据。
6.根据权利要求1所述的方法,其特征在于,还包括:
在主共识模块发现有从共识模块失联的情况下,所述主共识模块通知下游代理服务去除所述从共识模块对应服务器节点的请求流量。
7.根据权利要求1所述的方法,其特征在于,还包括:
在增加服务器节点时,将新节点信息加入共识模块组,启动新节点的共识模块;
所述新节点的共识模块从所述主共识模块中同步配置数据,同步完成后缓存最新的配置数据到内存中,并启动核心模块。
8.根据权利要求1所述的方法,其特征在于,还包括:
在下线服务器节点时,所述主共识模块通知下游代理服务去除所述服务器节点的请求流量;
停止运行所述服务器节点的核心模块;
等待所述核心模块退出后,将所述服务器节点的信息从共识模块组删除;
停止运行所述服务器节点的共识模块。
9.一种分布式系统配置分发装置,其特征在于,包括:
启动模块,用于在分布式系统初始化时,启动各个服务器节点的共识模块;
读取模块,用于控制所述共识模块从状态机数据库中读取配置数据并缓存在内存中;
选举模块,用于在各个服务器节点的所述共识模块之间进行选举,得到主共识模块;
所述启动模块,还用于启动各个服务器节点的核心模块;
所述读取模块,还用于控制所述核心模块读取内存中缓存的所述配置数据,以配置所述服务器节点的服务。
10.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1-8中任一项所述的方法。
CN202311148556.0A 2023-09-06 2023-09-06 分布式系统配置分发方法及装置 Pending CN117112223A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311148556.0A CN117112223A (zh) 2023-09-06 2023-09-06 分布式系统配置分发方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311148556.0A CN117112223A (zh) 2023-09-06 2023-09-06 分布式系统配置分发方法及装置

Publications (1)

Publication Number Publication Date
CN117112223A true CN117112223A (zh) 2023-11-24

Family

ID=88798199

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311148556.0A Pending CN117112223A (zh) 2023-09-06 2023-09-06 分布式系统配置分发方法及装置

Country Status (1)

Country Link
CN (1) CN117112223A (zh)

Similar Documents

Publication Publication Date Title
CN108616382B (zh) 升级网卡固件的方法、装置、网卡和设备
US9031910B2 (en) System and method for maintaining a cluster setup
EP3839749B1 (en) Data storage method, device and server
EP2435916B1 (en) Cache data processing using cache cluster with configurable modes
CN110597910A (zh) 一种异地数据同步方法、装置和系统
US10831741B2 (en) Log-shipping data replication with early log record fetching
CN109446169B (zh) 一种双控磁盘阵列共享文件系统
CN112015595B (zh) 主从数据库的切换方法、计算设备及存储介质
CN104935654A (zh) 一种服务器集群系统中的缓存方法、写入点客户端和读客户端
CN115599747B (zh) 一种分布式存储系统的元数据同步方法、系统及设备
JPH09259098A (ja) 分散メモリ型マルチプロセッサシステム及び故障回復方法
CN112052230B (zh) 多机房数据同步方法、计算设备及存储介质
WO2018010501A1 (zh) 全局事务标识gtid的同步方法、装置及系统、存储介质
WO2006125391A1 (fr) Systeme de traitement informatique pour la mise a niveau de donnees et procede de mise a niveau de donnees
CN111049928A (zh) 数据同步方法、系统、电子设备及计算机可读存储介质
CN113010549A (zh) 基于异地多活系统的数据处理方法、相关设备及存储介质
US20200142977A1 (en) Distributed file system with thin arbiter node
CN112513832A (zh) 一种数据的存储方法及设备
CN115292408A (zh) MySQL数据库的主从同步方法、装置、设备及介质
WO2021103036A1 (zh) 一种事务提交系统、方法及相关设备
CN116233146A (zh) 实现跨分布式存储集群的缓存一致性的技术
CN117176799A (zh) 分布式系统的故障处理方法及相关设备
CN109726211A (zh) 一种分布式时序数据库
CN115563028B (zh) 一种数据缓存方法、装置、设备和存储介质
CN117112223A (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