CN108234630A - 基于分布式一致性协议实现的数据读取方法及装置 - Google Patents

基于分布式一致性协议实现的数据读取方法及装置 Download PDF

Info

Publication number
CN108234630A
CN108234630A CN201711478287.9A CN201711478287A CN108234630A CN 108234630 A CN108234630 A CN 108234630A CN 201711478287 A CN201711478287 A CN 201711478287A CN 108234630 A CN108234630 A CN 108234630A
Authority
CN
China
Prior art keywords
service node
main service
node
data
main
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
Application number
CN201711478287.9A
Other languages
English (en)
Other versions
CN108234630B (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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo 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 Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201711478287.9A priority Critical patent/CN108234630B/zh
Priority to PCT/CN2018/079028 priority patent/WO2019127915A1/zh
Publication of CN108234630A publication Critical patent/CN108234630A/zh
Application granted granted Critical
Publication of CN108234630B publication Critical patent/CN108234630B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/22Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Abstract

本发明公开了一种基于分布式一致性协议实现的数据读取方法、装置、计算设备及计算机存储介质。其中,所述方法包括:从多个服务节点中选取一个服务节点作为主服务节点,设置主服务节点的租约时间,并将主服务节点的节点信息广播给其它服务节点;当任一服务节点接收到客户端发送的数据读取请求时,将服务节点自身的节点信息与主服务节点的节点信息进行对比,以确定该服务节点是否为主服务节点;若服务节点不是主服务节点,则将数据读取请求转发给主服务节点,以将主服务节点存储的数据返回给客户端,从而能够提升了数据读取效率和读取性能,克服了现有技术中读数据的开销大的问题。

Description

基于分布式一致性协议实现的数据读取方法及装置
技术领域
本发明涉及数据处理技术领域,具体涉及一种基于分布式一致性协议实现的数据读取方法、装置、计算设备及计算机存储介质。
背景技术
一个完整的分布式系统是由很多处在不同位置的服务节点通过网络连接在一起形成的,海量的数据分布在整个网络系统的不同服务节点中。连接到该分布式系统的所有客户端都可以访问任意一个服务节点中的数据。
现有的基于分布式一致协议的数据读取方法,要求每一次读取数据的操作都要遵循分布式一致协议(Raft协议),即,接收到数据读取请求的服务节点通过网络方式将请求发送给分布式系统的其它服务节点,分布式系统中的超半数的服务节点确认了数据读取请求对应的数据之后,才会将数据返回给客户端,而且还需要记录到服务节点日志,从而导致读取数据开销太大,影响读取性能。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于分布式一致性协议实现的数据读取方法、装置、计算设备及计算机存储介质。
根据本发明的一个方面,提供了一种基于分布式一致性协议实现的数据读取方法,方法应用于包含多个服务节点的分布式系统中,方法包括:
从多个服务节点中选取一个服务节点作为主服务节点,设置主服务节点的租约时间,并将主服务节点的节点信息广播给其它服务节点;
当任一服务节点接收到客户端发送的数据读取请求时,将服务节点自身的节点信息与主服务节点的节点信息进行对比,以确定该服务节点是否为主服务节点;
若该服务节点不是主服务节点,则将数据读取请求转发给主服务节点,以将主服务节点存储的数据返回给客户端。
根据本发明的另一方面,提供了一种基于分布式一致性协议实现的数据读取装置,装置应用于包含多个服务节点的分布式系统中,装置包括:
主服务节点处理模块,适于从多个服务节点中选取一个服务节点作为主服务节点,设置主服务节点的租约时间,并将主服务节点的节点信息广播给其它服务节点;
对比模块,适于当任一服务节点接收到客户端发送的数据读取请求时,将服务节点自身的节点信息与主服务节点的节点信息进行对比,以确定该服务节点是否为主服务节点;
转发模块,适于若该服务节点不是主服务节点,则将数据读取请求转发给主服务节点;
发送模块,适于将主服务节点存储的数据返回给客户端。
根据本发明的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述基于分布式一致性协议实现的数据读取方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述基于分布式一致性协议实现的数据读取方法对应的操作。
根据本发明提供的方案,从多个服务节点中选取一个服务节点作为主服务节点,并设置主服务节点的租约时间,当任一服务节点接收到客户端发送的数据读取请求时,将数据读取请求转发给主服务节点,以将主服务节点存储的数据返回给所述客户端,从而能够及时地对数据读取请求作出响应,提升了数据读取效率,提升了读取性能,克服了现有技术中基于分布式一致性协议读取数据时,需要基于网络服务将请求发送给其它服务节点,只有超过半数的服务节点达成一致,才会向客户端返回数据,而导致的读数据的开销大的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的基于分布式一致性协议实现的数据读取方法的流程示意图;
图2示出了根据本发明另一个实施例的基于分布式一致性协议实现的数据读取方法的流程示意图;
图3示出了根据本发明一个实施例的基于分布式一致性协议实现的数据读取装置的结构示意图;
图4示出了根据本发明另一个实施例的基于分布式一致性协议实现的数据读取装置的结构示意图;
图5示出了根据本发明一个实施例的一种计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的基于分布式一致性协议实现的数据读取方法的流程示意图。该方法应用于包含多个服务节点的分布式系统中,如图1所示,该方法包括以下步骤:
步骤S100,从多个服务节点中选取一个服务节点作为主服务节点,设置主服务节点的租约时间,并将主服务节点的节点信息广播给其它服务节点。
在本发明实施例中,主要是利用主服务节点向客户端提供数据读取服务,避免每次读取数据都要求超过半数的服务节点达成一致才可以返回数据给客户端,造成数据读取性能差,读取数据所需时间太长的问题,为了实现数据读取一致性,这里为主服务节点设置了租约时间,其中,租约时间具体指主服务节点提供服务的时间,当主服务节点的租约时间到期后,可以重新选取主服务节点,不同主服务节点的租约时间不同,从而保证在任一时刻有且只有一个主服务节点。
在选取得到主服务节点并设置主服务节点的租约时间后,还需要将主服务节点的节点信息广播给分布式系统中的其它服务节点,以方便其它服务节点在接收到客户端发送的数据读取请求后,将数据读取请求转发给主服务节点。
步骤S101,当任一服务节点接收到客户端发送的数据读取请求时,将服务节点自身的节点信息与主服务节点的节点信息进行对比,以确定该服务节点是否为主服务节点。
分布式系统中的每个服务节点均可与客户端建立连接,向客户端提供数据处理服务,当任一服务节点接收到客户端发送的数据读取请求时,该服务节点需要判断服务节点自己是否为主服务节点,具体地,可以将服务节点自身的节点信息与主服务节点的节点信息进行比对,若服务节点自身的节点信息与主服务节点的节点信息一致,则表明该服务节点是主服务节点;若服务节点自身的节点信息与主服务节点的节点信息不一致,则表明该服务节点不是主服务节点。
步骤S102,若该服务节点不是主服务节点,则将数据读取请求转发给主服务节点,以将主服务节点存储的数据返回给客户端。
在确定出服务节点不是主服务节点的情况下,需要将数据读取请求转发给主服务节点,由主服务节点对数据读取请求作出响应,将主服务节点存储的数据返回给客户端。
根据本发明上述实施例提供的方法,从多个服务节点中选取一个服务节点作为主服务节点,并设置主服务节点的租约时间,当任一服务节点接收到客户端发送的数据读取请求时,将数据读取请求转发给主服务节点,以将主服务节点存储的数据返回给客户端,从而能够及时地对数据读取请求作出响应,提升了数据读取效率,提升了读取性能,克服了现有技术中基于分布式一致性协议读取数据时,需要通过网络服务将请求发送给其它服务节点,只有超过半数的服务节点达成一致,才会向客户端返回数据,此外,还需要将主服务节点的日志复制给非主服务节点,而导致读数据的开销大的问题,包括网络开销和日志写入开销。
图2示出了根据本发明另一个实施例的基于分布式一致性协议实现的数据读取方法的流程示意图。该方法应用于包含多个服务节点的分布式系统中,如图2所示,该方法包括以下步骤:
步骤S200,将多个服务节点中日志数据量最大的服务节点选取为主服务节点,设置主服务节点的租约时间,并将主服务节点的节点信息广播给其它服务节点。
在分布式系统中,日志用于记录对数据的各类操作,日志数据量体现了服务节点存储数据的情况,日志数据量越大,服务节点存储的数据越新,数据越全面,因此,可以选取日志数据量最大的服务节点为主服务节点。
具体地,日志数据量直接体现为日志当前所占用的空间大小,可以以KB、MB、GB进行衡量,日志当前所占用的空间越大,日志数据量越大,通过比较多个服务节点的日志当前所占用空间的大小,可以确定出日志数据量最大的服务节点,将该服务节点选取为主服务节点,主服务节点在后续操作中,仅增加日志条目,对日志中的条目不做删除、覆盖操作。
在选取主服务节点之后,还需要设置主服务节点的租约时间,其中,租约时间定义了该服务节点作为主服务节点提供服务的时间,当租约时间到期后,分布式系统中的服务节点可以重新选取主服务节点,每个服务节点均有机会成为主服务节点。
为了保证分布式系统的高可用性,避免由于主服务节点宕机或出现其它故障而导致系统不可用的问题,规定主服务节点的租约时间一般为60秒,当然,本领域技术人员可以根据实际需要进行设定,但是一般情况下,租约时间不宜设置过长,以免主服务节点已宕机,但是由于租约时间未过期,而使得新选取的主服务节点长期无法提供服务的缺陷。
步骤S201,当任一服务节点接收到客户端发送的数据读取请求时,将服务节点自身的节点信息与主服务节点的节点信息进行对比,以确定该服务节点是否为主服务节点。
分布式系统中的每个服务节点均可与客户端建立连接,向客户端提供数据处理服务,当任一服务节点接收到客户端发送的数据读取请求时,该服务节点需要判断服务节点自己是否为主服务节点,具体地,可以将服务节点自身的节点信息与主服务节点的节点信息进行比对,其中,节点信息可以包括:节点标识、节点的IP地址以及端口号,这里仅是举例说明,不具有任何限定作用。
在本发明实施例中,可以通过将服务节点自身的节点信息与主服务节点的节点信息进行一一比较的方式来确定服务节点是否为主服务节点,若服务节点自身的节点信息与主服务节点的节点信息全部一致,则表明该服务节点是主服务节点;若服务节点自身的节点信息与主服务节点的节点信息有至少一项不一致,则表明该服务节点不是主服务节点。
步骤S202,若该服务节点不是主服务节点,则将数据读取请求转发给主服务节点,以将主服务节点存储的数据返回给客户端。
在确定出服务节点不是主服务节点的情况下,为了能够快速响应数据读取请求,可以将服务节点所接收到的数据读取请求发给租约时间在有效期内主服务节点,由主服务节点对数据读取请求作出响应,主服务节点在接收到数据读取请求后,将存储的数据返回给客户端,这样无需要超过半数的服务节点达成一致才返回数据给客户端,节省了网络开销,另外,也无需在请求主服务节点时,需要先将日志写入服务节点本地而导致的日志写入开销。
步骤S203,若服务节点是主服务节点,则将服务节点存储的数据返回给客户端。
在确定出服务节点是主服务节点的情况下,可以直接将服务节点存储的数据返回给客户端,而无需通过网络服务向其它服务节点发送数据读取请求,即无需要超过半数的服务节点达成一致才返回数据给客户端,节省了网络开销,另外,也无需在请求主服务节点时,需要先将日志写入服务节点本地而导致的日志写入开销。
在分布式系统中,很容易出现已选取的主服务节点在租约时间内宕机或者出现其它故障导致该主服务节点无法提供服务的情况,此时,就需要重新选取新的主服务节点,具体可以采用步骤S204中的方法:
步骤S204,若已选取的主服务节点在租约时间内宕机,则从其它服务节点中选取一个服务节点作为主服务节点,设置新的主服务节点的租约时间,其中,新的主服务节点的租约时间接续上一主服务节点的租约时间。
若已选取的主服务节点在租约时间内宕机,则从其它服务节点中选取日志数据量最大的服务节点作为主服务节点,在选取出新的主服务节点后,还需要对新的主服务节点的租约时间进行设置,在本发明实施例中,新的主服务节点的租约时间接续上一主服务节点的租约时间,举例说明,已选取的主服务节点的租约时间是[14:08:00,14:09:00),假设该主服务节点在地14:08:30宕机了,其它服务节点会重新选出新的主服务节点,例如,可能在地14:08:40时就选取了新的主服务节点,虽然已选出新的主服务节点,但是新的主服务节点的租约时间被设置为[14:09:00,14:10:00),即,在任一时刻,有且只有一个主服务节点。
步骤S205,检测当前时间是否在新的主服务节点的租约时间内,若是,则执行步骤S206;若否,则执行步骤S207。
为了保证一致性,新的主服务节点接收到非主服务节点转发的数据读取请求时,需要检测当前时间是否在其租约时间内,以确定是否提供服务,若当前时间在其租约时间内,则可以向客户端提供服务;若当前时间不在其租约时间内,则需要继续等待,等待到达其租约时间。
步骤S206,将新的主服务节点存储的数据返回给客户端。
若检测到当前时间在新的主服务节点的租约时间内,可以直接将新的主服务节点存储的数据返回给客户端,而无需通过网络服务向其它服务节点发送数据读取请求,即无需要超过半数的服务节点达成一致才返回数据给客户端,节省了网络开销,另外,也无需在请求主服务节点时,需要先将日志写入服务节点本地而导致的日志写入开销。
步骤S207,继续等待到达新的主服务节点的租约时间,而不提供数据处理服务。
举例说明,若当前时间为14:08:50,新的主服务节点的租约时间为[14:09:00,14:10:00),说明,还未到达新的主服务节点的租约时间,为了保证一致性,虽然分布式系统中已经有了新的主服务节点,但由于还未到达新的主服务节点的租约时间,因此,该新的主服务节点是不提供服务的,只有时间到达14:09:00,该新的主服务节点才可以提供服务。
根据本发明上述实施例提供的方法,选取日志数据量最大的服务节点为主服务节点能够保证读取的数据是最新的,满足客户端对数据一致性的要求,通过为主服务节点设置租约时间,保证在任一时刻有且只有一个主服务节点提供服务,这样,即便已选取的主服务节点在租约时间内宕机或出现其他故障,虽在租约时间内选取出新的主服务节点,新的主服务节点也在仅在其租约时间到达时才会提供服务,保证了一致性,所有的数据读取请求都转发至主服务节点,由主服务节点响应数据读取请求,返回数据给客户端,从而能够及时地对数据读取请求作出响应,提升了数据读取效率,提升了读取性能,克服了现有技术中基于分布式一致性协议读取数据时,需要通过网络服务将请求发送给其它服务节点,只有超过半数的服务节点达成一致,才会向客户端返回数据,此外,还需要将主服务节点的日志复制给非主服务节点,而导致读数据的开销大的问题,包括网络开销和日志写入开销。
图3示出了根据本发明一个实施例的基于分布式一致性协议实现的数据读取装置的结构示意图。该装置应用于包含多个服务节点的分布式系统中,如图3所示,该装置包括:主服务节点处理模块300、对比模块310、转发模块320、发送模块330。
主服务节点处理模块300,适于从多个服务节点中选取一个服务节点作为主服务节点,设置主服务节点的租约时间,并将主服务节点的节点信息广播给其它服务节点。
对比模块310,适于当任一服务节点接收到客户端发送的数据读取请求时,将服务节点自身的节点信息与主服务节点的节点信息进行对比,以确定该服务节点是否为主服务节点。
转发模块320,适于若该服务节点不是主服务节点,则将数据读取请求转发给主服务节点。
发送模块330,适于将主服务节点存储的数据返回给客户端。
根据本发明上述实施例提供的装置,从多个服务节点中选取一个服务节点作为主服务节点,并设置主服务节点的租约时间,当任一服务节点接收到客户端发送的数据读取请求时,将数据读取请求转发给主服务节点,以将主服务节点存储的数据返回给客户端,从而能够及时地对数据读取请求作出响应,提升了数据读取效率,提升了读取性能,克服了现有技术中基于分布式一致性协议读取数据时,需要基于网络服务将请求发送给其它服务节点,只有超过半数的服务节点达成一致,才会向客户端返回数据,而导致的读数据的开销大的问题。
图4示出了根据本发明另一个实施例的基于分布式一致性协议实现的数据读取装置的结构示意图。该装置应用于包含多个服务节点的分布式系统中,如图4所示,该装置包括:主服务节点处理模块400、对比模块410、转发模块420、发送模块430。
主服务节点处理模块400,适于将多个服务节点中日志数据量最大的服务节点选取为主服务节点,设置主服务节点的租约时间,并将主服务节点的节点信息广播给其它服务节点。
对比模块410,适于当任一服务节点接收到客户端发送的数据读取请求时,将服务节点自身的节点信息与主服务节点的节点信息进行对比,以确定该服务节点是否为主服务节点。
其中,节点信息包括:节点标识、节点的IP地址以及端口号。
转发模块420,适于若该服务节点不是主服务节点,则将数据读取请求转发给主服务节点。
发送模块430,适于将主服务节点存储的数据返回给客户端。
其中,发送模块430进一步适于:若服务节点是主服务节点,则将服务节点存储的数据返回给客户端。
若已选取的主服务节点在租约时间内宕机,则主服务节点处理模块400进一步适于:从其它服务节点中重新选取一个服务节点作为主服务节点,设置新的主服务节点的租约时间,其中,新的主服务节点的租约时间接续上一主服务节点的租约时间。
虽然选择出新的主服务节点,但是为了保证数据的一致性,该装置还包括:检测模块440,适于检测当前时间是否在新的主服务节点的租约时间内。
发送模块430进一步适于:若当前时间在新的主服务节点的租约时间内,则将新的主服务节点存储的数据返回给客户端。
该装置还包括:退出模块450,适于若当前时间不在新的主服务节点的租约时间内,则退出新的主服务节点的数据处理服务。
根据本发明上述实施例提供的装置,选取日志数据量最大的服务节点为主服务节点能够保证读取的数据是最新的,满足客户端对数据一致性的要求,通过为主服务节点设置租约时间,保证在任一时刻有且只有一个主服务节点提供服务,这样,即便已选取的主服务节点在租约时间内宕机或出现其他故障,虽在租约时间内选取出新的主服务节点,新的主服务节点也在仅在其租约时间到达时才会提供服务,保证了一致性,所有的数据读取请求都转发至主服务节点,由主服务节点响应数据读取请求,返回数据给客户端,从而能够及时地对数据读取请求作出响应,提升了数据读取效率,提升了读取性能,克服了现有技术中基于分布式一致性协议读取数据时,需要通过网络服务将请求发送给其它服务节点,只有超过半数的服务节点达成一致,才会向客户端返回数据,此外,还需要将主服务节点的日志复制给非主服务节点,而导致读数据的开销大的问题,包括网络开销和日志写入开销。
本申请还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于分布式一致性协议实现的数据读取方法。
图5示出了根据本发明一个实施例的一种计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
如图5所示,该计算设备可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。
其中:
处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器502,用于执行程序510,具体可以执行上述基于分布式一致性协议实现的数据读取方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510具体可以用于使得处理器502执行上述任意方法实施例中的基于分布式一致性协议实现的数据读取方法。程序510中各步骤的具体实现可以参见上述基于分布式一致性协议实现的数据读取实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于分布式一致性协议实现的数据读取设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:
A1.一种基于分布式一致性协议实现的数据读取方法,所述方法应用于包含多个服务节点的分布式系统中,所述方法包括:
从多个服务节点中选取一个服务节点作为主服务节点,设置主服务节点的租约时间,并将主服务节点的节点信息广播给其它服务节点;
当任一服务节点接收到客户端发送的数据读取请求时,将服务节点自身的节点信息与主服务节点的节点信息进行对比,以确定该服务节点是否为主服务节点;
若该服务节点不是主服务节点,则将数据读取请求转发给主服务节点,以将主服务节点存储的数据返回给所述客户端。
A2.根据A1所述的方法,其中,所述方法还包括:若服务节点是主服务节点,则将服务节点存储的数据返回给所述客户端。
A3.根据A1或A2所述的方法,其中,所述方法还包括:若已选取的主服务节点在租约时间内宕机,则从其它服务节点中选取一个服务节点作为主服务节点,设置新的主服务节点的租约时间,其中,新的主服务节点的租约时间接续上一主服务节点的租约时间。
A4.根据A3所述的方法,其中,在所述设置新的主服务节点的租约时间之后,所述方法还包括:
检测当前时间是否在新的主服务节点的租约时间内;
若是,则将新的主服务节点存储的数据返回给所述客户端;
若否,则新的主服务节点不提供数据处理服务。
A5.根据A1-A4任一项所述的方法,其中,所述从多个服务节点中选取一个服务节点作为主服务节点进一步包括:
将多个服务节点中日志数据量最大的服务节点选取为主服务节点。
A6.根据A1-A5任一项所述的方法,其中,所述节点信息包括:节点标识、节点的IP地址以及端口号。
B7.一种基于分布式一致性协议实现的数据读取装置,所述装置应用于包含多个服务节点的分布式系统中,所述装置包括:
主服务节点处理模块,适于从多个服务节点中选取一个服务节点作为主服务节点,设置主服务节点的租约时间,并将主服务节点的节点信息广播给其它服务节点;
对比模块,适于当任一服务节点接收到客户端发送的数据读取请求时,将服务节点自身的节点信息与主服务节点的节点信息进行对比,以确定该服务节点是否为主服务节点;
转发模块,适于若该服务节点不是主服务节点,则将数据读取请求转发给主服务节点;
发送模块,适于将主服务节点存储的数据返回给所述客户端。
B8.根据B7所述的装置,其中,所述发送模块进一步适于:若服务节点是主服务节点,则将服务节点存储的数据返回给所述客户端。
B9.根据B7或B8所述的装置,其中,所述主服务节点处理模块进一步适于:若已选取的主服务节点在租约时间内宕机,则从其它服务节点中重新选取一个服务节点作为主服务节点,设置新的主服务节点的租约时间,其中,新的主服务节点的租约时间接续上一主服务节点的租约时间。
B10.根据B9所述的装置,其中,所述装置还包括:
检测模块,适于检测当前时间是否在新的主服务节点的租约时间内;
所述发送模块进一步适于:若当前时间在新的主服务节点的租约时间内,则将新的主服务节点存储的数据返回给所述客户端;
退出模块,适于若当前时间不在新的主服务节点的租约时间内,则退出新的主服务节点的数据处理服务。
B11.根据B7-B10任一项所述的装置,其中,所述主服务节点处理模块进一步适于:将多个服务节点中日志数据量最大的服务节点选取为主服务节点。
B12.根据B7-B11任一项所述的装置,其中,所述节点信息包括:节点标识、节点的IP地址以及端口号。
C13.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如A1-A6中任一项所述的基于分布式一致性协议实现的数据读取方法对应的操作。
D14.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如A1-A6中任一项所述的基于分布式一致性协议实现的数据读取方法对应的操作。

Claims (10)

1.一种基于分布式一致性协议实现的数据读取方法,所述方法应用于包含多个服务节点的分布式系统中,所述方法包括:
从多个服务节点中选取一个服务节点作为主服务节点,设置主服务节点的租约时间,并将主服务节点的节点信息广播给其它服务节点;
当任一服务节点接收到客户端发送的数据读取请求时,将服务节点自身的节点信息与主服务节点的节点信息进行对比,以确定该服务节点是否为主服务节点;
若该服务节点不是主服务节点,则将数据读取请求转发给主服务节点,以将主服务节点存储的数据返回给所述客户端。
2.根据权利要求1所述的方法,其中,所述方法还包括:若服务节点是主服务节点,则将服务节点存储的数据返回给所述客户端。
3.根据权利要求1或2所述的方法,其中,所述方法还包括:若已选取的主服务节点在租约时间内宕机,则从其它服务节点中选取一个服务节点作为主服务节点,设置新的主服务节点的租约时间,其中,新的主服务节点的租约时间接续上一主服务节点的租约时间。
4.根据权利要求3所述的方法,其中,在所述设置新的主服务节点的租约时间之后,所述方法还包括:
检测当前时间是否在新的主服务节点的租约时间内;
若是,则将新的主服务节点存储的数据返回给所述客户端;
若否,则新的主服务节点不提供数据处理服务。
5.根据权利要求1-4任一项所述的方法,其中,所述从多个服务节点中选取一个服务节点作为主服务节点进一步包括:
将多个服务节点中日志数据量最大的服务节点选取为主服务节点。
6.根据权利要求1-5任一项所述的方法,其中,所述节点信息包括:节点标识、节点的IP地址以及端口号。
7.一种基于分布式一致性协议实现的数据读取装置,所述装置应用于包含多个服务节点的分布式系统中,所述装置包括:
主服务节点处理模块,适于从多个服务节点中选取一个服务节点作为主服务节点,设置主服务节点的租约时间,并将主服务节点的节点信息广播给其它服务节点;
对比模块,适于当任一服务节点接收到客户端发送的数据读取请求时,将服务节点自身的节点信息与主服务节点的节点信息进行对比,以确定该服务节点是否为主服务节点;
转发模块,适于若该服务节点不是主服务节点,则将数据读取请求转发给主服务节点;
发送模块,适于将主服务节点存储的数据返回给所述客户端。
8.根据权利要求7所述的装置,其中,所述发送模块进一步适于:若服务节点是主服务节点,则将服务节点存储的数据返回给所述客户端。
9.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-6中任一项所述的基于分布式一致性协议实现的数据读取方法对应的操作。
10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-6中任一项所述的基于分布式一致性协议实现的数据读取方法对应的操作。
CN201711478287.9A 2017-12-29 2017-12-29 基于分布式一致性协议实现的数据读取方法及装置 Active CN108234630B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201711478287.9A CN108234630B (zh) 2017-12-29 2017-12-29 基于分布式一致性协议实现的数据读取方法及装置
PCT/CN2018/079028 WO2019127915A1 (zh) 2017-12-29 2018-03-14 基于分布式一致性协议实现的数据读取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711478287.9A CN108234630B (zh) 2017-12-29 2017-12-29 基于分布式一致性协议实现的数据读取方法及装置

Publications (2)

Publication Number Publication Date
CN108234630A true CN108234630A (zh) 2018-06-29
CN108234630B CN108234630B (zh) 2021-03-23

Family

ID=62646894

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711478287.9A Active CN108234630B (zh) 2017-12-29 2017-12-29 基于分布式一致性协议实现的数据读取方法及装置

Country Status (2)

Country Link
CN (1) CN108234630B (zh)
WO (1) WO2019127915A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109088937A (zh) * 2018-08-28 2018-12-25 郑州云海信息技术有限公司 一种基于统一管理的集群授权方法及装置
CN110138863A (zh) * 2019-05-16 2019-08-16 哈尔滨工业大学(深圳) 基于Multi-Paxos分组的自适应一致性协议优化方法
CN111352943A (zh) * 2018-12-24 2020-06-30 华为技术有限公司 实现数据一致性的方法和装置、服务器和终端
CN114244859A (zh) * 2022-02-23 2022-03-25 阿里云计算有限公司 数据处理方法及装置和电子设备
CN114629806A (zh) * 2022-04-13 2022-06-14 腾讯科技(成都)有限公司 数据处理方法、装置、电子设备、存储介质及程序产品
CN116340431A (zh) * 2023-05-24 2023-06-27 阿里云计算有限公司 一种分布式系统、数据同步方法、电子设备及存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111711526B (zh) * 2020-06-16 2024-03-26 深圳前海微众银行股份有限公司 一种区块链节点的共识方法及系统
CN112954008B (zh) * 2021-01-26 2022-11-04 网宿科技股份有限公司 一种分布式任务处理方法、装置、电子设备及存储介质
CN112866406B (zh) * 2021-02-04 2023-03-24 中国建设银行股份有限公司 一种数据存储方法、系统、装置、设备及存储介质
CN115102972A (zh) * 2022-07-15 2022-09-23 济南浪潮数据技术有限公司 一种存储nfs文件的方法、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160077936A1 (en) * 2014-09-12 2016-03-17 Facebook, Inc. Failover mechanism in a distributed computing system
CN105592139A (zh) * 2015-10-28 2016-05-18 杭州华三通信技术有限公司 一种分布式文件系统管理平台的ha实现方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007067991A (ja) * 2005-09-01 2007-03-15 Fujitsu Ltd ネットワーク管理システム
CN104598615A (zh) * 2015-01-31 2015-05-06 广州亦云信息技术有限公司 一种支持数据持久化的内存存取方法和装置
CN105426439B (zh) * 2015-11-05 2022-07-05 腾讯科技(深圳)有限公司 一种元数据的处理方法和装置
CN106911728B (zh) * 2015-12-22 2019-11-29 华为技术服务有限公司 分布式系统中主节点的选取方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160077936A1 (en) * 2014-09-12 2016-03-17 Facebook, Inc. Failover mechanism in a distributed computing system
CN105592139A (zh) * 2015-10-28 2016-05-18 杭州华三通信技术有限公司 一种分布式文件系统管理平台的ha实现方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109088937A (zh) * 2018-08-28 2018-12-25 郑州云海信息技术有限公司 一种基于统一管理的集群授权方法及装置
CN109088937B (zh) * 2018-08-28 2021-10-26 郑州云海信息技术有限公司 一种基于统一管理的集群授权方法及装置
CN111352943A (zh) * 2018-12-24 2020-06-30 华为技术有限公司 实现数据一致性的方法和装置、服务器和终端
CN110138863A (zh) * 2019-05-16 2019-08-16 哈尔滨工业大学(深圳) 基于Multi-Paxos分组的自适应一致性协议优化方法
CN114244859A (zh) * 2022-02-23 2022-03-25 阿里云计算有限公司 数据处理方法及装置和电子设备
CN114629806A (zh) * 2022-04-13 2022-06-14 腾讯科技(成都)有限公司 数据处理方法、装置、电子设备、存储介质及程序产品
CN114629806B (zh) * 2022-04-13 2023-12-12 腾讯科技(成都)有限公司 数据处理方法、装置、电子设备、存储介质及程序产品
CN116340431A (zh) * 2023-05-24 2023-06-27 阿里云计算有限公司 一种分布式系统、数据同步方法、电子设备及存储介质
CN116340431B (zh) * 2023-05-24 2023-09-01 阿里云计算有限公司 一种分布式系统、数据同步方法、电子设备及存储介质

Also Published As

Publication number Publication date
WO2019127915A1 (zh) 2019-07-04
CN108234630B (zh) 2021-03-23

Similar Documents

Publication Publication Date Title
CN108234630A (zh) 基于分布式一致性协议实现的数据读取方法及装置
CN108234641B (zh) 基于分布式一致性协议实现的数据读写方法及装置
CN109189324B (zh) 一种数据迁移方法及装置
CN112513816B (zh) 函数即服务(faas)执行分配器
US20210142374A1 (en) Partitioned private interconnects to provider networks
KR20190061018A (ko) IoT 디바이스의 자동 프로비저닝
CN110673941B (zh) 多机房中微服务的迁移方法、电子设备及存储介质
JP6859340B2 (ja) グローバル情報を取得、処理および更新するための装置、システムおよび方法
US20190372908A1 (en) Failover management using availability groups
CN110633175B (zh) 基于微服务的多机房数据处理方法、电子设备及存储介质
CN107832329A (zh) 页面资源获取方法及终端设备
US10673694B2 (en) Private network mirroring
CN114205342B (zh) 服务调试的路由方法、电子设备及介质
CN111064804B (zh) 网络访问方法和装置
US8832215B2 (en) Load-balancing in replication engine of directory server
CN107920101B (zh) 一种文件访问方法、装置、系统及电子设备
CN111193783A (zh) 一种服务访问的处理方法及装置
CN107391033B (zh) 数据迁移方法及装置、计算设备、计算机存储介质
CN110012111B (zh) 一种数据服务集群系统及数据处理方法
US10721335B2 (en) Remote procedure call using quorum state store
CN107864209A (zh) 数据写入的方法、装置及服务器
CN105049463A (zh) 分散数据库、数据共享方法、用于分散数据库的装置
CN112015595A (zh) 主从数据库的切换方法、计算设备及存储介质
CN114827156B (zh) 消息调度的方法、装置、设备及存储介质
CN108062224B (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