CN110719311A - 分布式协调服务方法、系统及计算机可读存储介质 - Google Patents

分布式协调服务方法、系统及计算机可读存储介质 Download PDF

Info

Publication number
CN110719311A
CN110719311A CN201810774240.5A CN201810774240A CN110719311A CN 110719311 A CN110719311 A CN 110719311A CN 201810774240 A CN201810774240 A CN 201810774240A CN 110719311 A CN110719311 A CN 110719311A
Authority
CN
China
Prior art keywords
client
event
request
distributed coordination
session
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
CN201810774240.5A
Other languages
English (en)
Other versions
CN110719311B (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.)
SHENZHEN ZHAORI TECHNOLOGY Co Ltd
Original Assignee
SHENZHEN ZHAORI 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 SHENZHEN ZHAORI TECHNOLOGY Co Ltd filed Critical SHENZHEN ZHAORI TECHNOLOGY Co Ltd
Priority to CN201810774240.5A priority Critical patent/CN110719311B/zh
Publication of CN110719311A publication Critical patent/CN110719311A/zh
Application granted granted Critical
Publication of CN110719311B publication Critical patent/CN110719311B/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
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种分布式协调服务方法、系统及计算机可读存储介质,该方法包括步骤:当接收到客户端发送的包含第一事件的业务请求时,根据所述业务请求,消费所述第一事件;根据所述第一事件,通过长连接回调第二事件给所述客户端,以供所述客户端消费所述第二事件;根据双主互备模型,将第一数据同步更新到备用服务器,并接收所述备用服务器更新的第二数据。本发明通过响应客户端的请求,并将数据同步到备用服务器上,实现储存切换功能,提高了系统的高可用性,更具智能性。

Description

分布式协调服务方法、系统及计算机可读存储介质
技术领域
本发明涉及计算机服务技术领域,尤其涉及一种分布式协调服务方法、系统及计算机可读存储介质。
背景技术
在信息产业高速发展的今天,计算机服务系统规模不断扩大,系统结构由过去单一的集中式发展到现在相对流行的分布式,使得计算环境变得更加复杂,通常情况下,系统会在不同时间,甚至不同地点,产生不同数量、不同类型的任务请求,这时,系统需要一个协调服务,将每个请求有秩序地分发给相应的目的计算节点,减少任务冲突或丢失,以保证任务的有效执行。
而目前市场上所使用的协调服务,要么采用独立的任务分发控制器,要么采用多个任务分发控制器协同完成任务分发工作,前者任务集中,容易延迟,后者会因为网络问题或者部分节点故障而导致任务分发错误,如任务重复分发、任务信息丢失等,使得其所在系统无法满足计算需求,从而降低系统的高可用性。
发明内容
本发明的主要目的在于提出一种分布式协调服务方法、系统及计算机可读存储介质,旨在解决现有的协调服务器不够智能,使其所在系统无法满足计算需求,从而降低系统的高可用性的技术问题。
为实现上述目的,本发明提供了一种分布式协调服务方法,所述分布式协调服务方法包括:
当接收到客户端发送的包含第一事件的业务请求时,根据所述业务请求,消费所述第一事件;
根据所述第一事件,通过长连接回调第二事件给所述客户端,以供所述客户端消费所述第二事件;
根据双主互备模型,将第一数据同步更新到备用服务器,并接收所述备用服务器更新的第二数据。
优选地,所述当接收到客户端发送的包含第一事件的业务请求时,根据所述业务请求,消费所述第一事件的步骤之前,所述方法还包括:
当接收到客户端的登录请求时,根据所述登录请求,生成会话ID,并将所述会话ID保存;
将所述会话ID返回所述客户端,以供所述客户端根据所述会话ID发送请求。
优选地,所述业务请求包含节点的修改请求,所述方法还包括:
根据所述修改请求,执行对应的修改操作,并监测所述节点对应的第二事件,其中所述第二事件包括:节点变化、节点数据变化和子节点变化;
当所述第二事件的状态发生变化时,通过发布订阅机制,将所述第二事件变化后的状态发送给对应的客户端,并持久化所述第二事件。
优选地,所述客户端消费所述第二事件的步骤包括:
当客户端接收到所述第二事件后,客户端将所述第二事件插入事件队列中;
客户端持续消费所述事件队列中的事件。
优选地,所述方法还包括:
当会话超时时,回调会话结束事件给所述客户端,以供所述客户端关闭当前链接,并进行重连操作;
根据所述重连操作,生成第二会话ID,并将所述第二会话ID保存;
将所述第二会话ID返回客户端,以供所述客户端根据所述第二会话ID发送请求。
优选地,所述方法还包括:
接收客户端定时发送的链路保活请求,根据所述链路保活请求,保持当前会话进行;
若检测到网络闪断,则接收所述客户端的重连请求,并根据所述重连请求,与客户端建立连接。
优选地,所述分布式协调服务方法应用于客户端,所述分布式协调服务方法包括以下步骤:
当客户端发送业务请求后,在预设时间内,若未得到服务器的响应,则获取备用服务器的地址;
根据所述备用服务器地址,连接至备用服务器,并发送所述业务请求。
优选地,在客户端发起登录请求之前,所述方法还包括:
根据负载均衡算法,从服务器集群中,选出对应的服务器。
此外,为实现上述目的,本发明还提供一种系统,所述系统包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的分布式协调服务程序,所述程序被所述处理器执行时实现如上所述的分布式协调服务方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有分布式协调服务程序,所述分布式协调服务程序被处理器执行时实现如上所述的分布式协调服务方法的步骤。
本发明的分布式协调服务方法,当接收到客户端发送的包含第一事件的业务请求时,根据所述业务请求,消费所述第一事件;根据所述第一事件,通过长连接回调第二事件给所述客户端,以供所述客户端消费所述第二事件;根据双主互备模型,将第一数据同步更新到备用服务器,并接收所述备用服务器更新的第二数据。本发明通过响应客户端的请求,并将数据同步到备用服务器上,实现储存切换功能,提高了系统的高可用性,更具智能性。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的结构示意图;
图2为本发明分布式协调服务方法第一实施例的流程示意图;
图3为本发明分布式协调服务方法第二实施例的流程示意图;
图4为本发明分布式协调服务方法第四实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明实施例的解决方案主要是:当接收到客户端发送的包含第一事件的业务请求时,根据所述业务请求,消费所述第一事件;根据所述第一事件,通过长连接回调第二事件给所述客户端,以供所述客户端消费所述第二事件;根据双主互备模型,将第一数据同步更新到备用服务器,并接收所述备用服务器更新的第二数据。以解决现有的协调服务器不够智能,使其所在系统无法满足计算需求,从而降低系统的高可用性的技术问题。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的分布式协调服务系统的结构示意图。该分布式协调服务系统可以包括:处理器1001,例如CPU,通信总线1002、业主接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。业主接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选地业主接口1003还可以包括标准的有线接口(例如用于连接有线键盘、有线鼠标等)、无线接口(例如用于连接无线键盘、无线鼠标)。网络接口1004可选的可以包括标准的有线接口(用于连接有线网络)、无线接口(如WI-FI接口、蓝牙接口、红外线接口等,用于连接无线网络)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的分布式协调服务系统结构并不构成对分布式协调服务系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、业主接口模块以及分布式协调服务程序。其中,操作系统是管理和控制分布式协调服务系统与软件资源的程序,支持网络通信模块、业主接口模块、分布式协调服务程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1002;业主接口模块用于管理和控制业主接口1003。
在图1所示的分布式协调服务系统中,所述分布式协调服务系统通过处理器1001调用存储器1005中存储的分布式协调服务程序,并执行以下步骤:
当接收到客户端发送的包含第一事件的业务请求时,根据所述业务请求,消费所述第一事件;
根据所述第一事件,通过长连接回调第二事件给所述客户端,以供所述客户端消费所述第二事件;
根据双主互备模型,将第一数据同步更新到备用服务器,并接收所述备用服务器更新的第二数据。
进一步地,所述当接收到客户端发送的包含第一事件的业务请求时,根据所述业务请求,消费所述第一事件的步骤之前,处理器1001还可以用于调用存储器1005中存储的分布式协调服务程序,并执行以下步骤:
当接收到客户端的登录请求时,根据所述登录请求,生成会话ID,并将所述会话ID保存;
将所述会话ID返回所述客户端,以供所述客户端根据所述会话ID发送请求。
进一步地,所述业务请求包含节点的修改请求,处理器1001还可以用于调用存储器1005中存储的分布式协调服务程序,并执行以下步骤:
根据所述修改请求,执行对应的修改操作,并监测所述节点对应的第二事件,其中所述第二事件包括:节点变化、节点数据变化和子节点变化;
当所述第二事件的状态发生变化时,通过发布订阅机制,将所述第二事件变化后的状态发送给对应的客户端,并持久化所述第二事件。
进一步地,所述客户端消费所述第二事件的步骤包括:
当客户端接收到所述第二事件后,客户端将所述第二事件插入事件队列中;
客户端持续消费所述事件队列中的事件。
进一步地,处理器1001还可以用于调用存储器1005中存储的分布式协调服务程序,并执行以下步骤:
当会话超时时,回调会话结束事件给所述客户端,以供所述客户端关闭当前链接,并进行重连操作;
根据所述重连操作,生成第二会话ID,并将所述第二会话ID保存;
将所述第二会话ID返回客户端,以供所述客户端根据所述第二会话ID发送请求。
进一步地,处理器1001还可以用于调用存储器1005中存储的分布式协调服务程序,并执行以下步骤:
接收客户端定时发送的链路保活请求,根据所述链路保活请求,保持当前会话进行;
若检测到网络闪断,则接收所述客户端的重连请求,并根据所述重连请求,与客户端建立连接。
进一步地,所述分布式协调服务方法应用于客户端,所述分布式协调服务系统通过处理器1001调用存储器1005中存储的分布式协调服务程序,并执行以下步骤:
当客户端发送业务请求后,在预设时间内,若未得到服务器的响应,则获取备用服务器的地址;
根据所述备用服务器地址,连接至备用服务器,并发送所述业务请求。
进一步地,在客户端发起登录请求之前,处理器1001还可以用于调用存储器1005中存储的分布式协调服务程序,并执行以下步骤:
根据负载均衡算法,从服务器集群中,选出对应的服务器。
基于上述分布式协调服务系统的硬件结构,提出本发明分布式协调服务方法各个实施例。
本发明提供一种分布式协调服务方法。
分布式协调服务方法可选应用于分布式协调服务系统中,分布式协调服务系统包括服务器和客户端,其中,服务器的数量有两台,采用RMDB(关系型数据库)双主互备的方式实现数据存储高可用。客户端通信框架采用netty4.1(开源框架),序列化框架采用protobuffer(一种信息序列化与反序列化的工具),协议采用私有协议;客户端分为两大模块,一个模块为业务请求处理模块,包括:RequestProcessor(请求处理器),OutgoingQueue(超时队列),RequestThread(请求线程),ChannelFactory(信道工厂),ResponseHandler(响应程序);另一个模块为服务器回调处理模块,包括:EventDispatcherThread(事件调度线程),EventQueue(事件队列),EventCallBackhandler(事件回调处理程序)。服务器通信框架采用netty4.1,序列化框架采用protobuffer,协议采用私有协议。服务器分为四大模块。第一个模块为客户端请求处理模块,包括:SessionHandler(会话处理程序),RequestDispatcherHandler(请求调度处理程序),BusinessService(业务服务);第二个模块为事件消费模块(EventConsumptionThread);第三个模块为会话清理模块包括(SessionCleanUpThread);第四个模块为持久化模块(DB)。
参照图2,图2为本发明分布式协调服务方法第一实施例的流程示意图。
在本实施例中,提供了分布式协调服务方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中,分布式协调服务方法包括:
步骤S10,当接收到客户端发送的包含第一事件的业务请求时,根据所述业务请求,消费所述第一事件;
步骤S20,根据所述第一事件,通过长连接回调第二事件给所述客户端,以供所述客户端消费所述第二事件;
步骤S30,根据双主互备模型,将第一数据同步更新到备用服务器,并接收所述备用服务器更新的第二数据。
在本实施例中,服务器接收客户端发送的业务请求,执行对应的消费操作,并通过长连接回调事件给客户端,同时,服务器的数据将同步更新到备用服务器,实现储存切换功能,提高了系统的高可用性。
以下将对各个步骤进行详细说明:
步骤S10,当接收到客户端发送的包含第一事件的业务请求时,根据所述业务请求,消费所述第一事件。
在本实施例中,客户端与服务器连接,客户端对外暴露简单易用的接口,提供分布式协调服务的业务功能,用户可在客户端发起业务请求。当服务器接收到客户端发送的请求时,判断该请求所属类型,若是业务请求,则获取业务请求中的第一事件,服务器根据业务请求,消费第一事件。
步骤S20,根据所述第一事件,通过长连接回调第二事件给所述客户端,以供所述客户端消费所述第二事件。
在本实施例中,服务器有事件回调机制,服务器通过EventConsumptionThread消费数据库中的第二事件,在服务器消费第二事件后,通过长连接把第二事件回调给客户端,以供客户端消费第二事件。
具体的,所述以供所述客户端消费所述第二事件的步骤包括:
步骤a,当客户端接收到所述第二事件后,客户端将所述第二事件插入事件队列中;
步骤b,客户端持续消费所述事件队列中的事件。
客户端接收来自服务器的事件后,会把事件放在EventQueue(事件队列),通过队列实现业务线程和事件消费线程的解耦,即业务线程与消费线程分离,互不影响,可同时进行;此时,客户端的消费线程会一直消费EventQueue中的事件。
需要说明的是,第一事件指客户端发起的请求中包含的事件,第二事件是服务器根据第一事件的消费结果回调给客户端的事件,第二事件不单独出现。
进一步地,所述方法还包括:
步骤c,接收客户端定时发送的链路保活请求,根据所述链路保活请求,保持当前会话进行;
步骤d,若检测到网络闪断,则接收所述客户端的重连请求,并根据所述重连请求,与客户端建立连接。
为确保客户端能一直向服务器发送业务请求,客户端与服务器之间的连接必须存活,因此,客户端通过定时线程发送链路保活请求至服务器,可以理解的,定时线程与netty的业务线程同样分离。服务器在接收到客户端定时发送的链路保活请求时,根据链路保活请求,保持当前会话窗口运行。
客户端对netty提供的channel(信道)进行了封装,由ChannelFactory统一管理长连接,当网络闪断时,ChannelFactory会负责进行重连。
若是因为网络问题引起的网络闪断,导致客户端与服务器之间的连接中断,则客户端在发送业务请求时,会由于网络闪断,无法发送至服务器,客户端不会接收到回调的第二事件,此时,客户端发起重连请求。服务器在接收到客户端的重连请求后,根据重连请求,与客户端重新建立连接,以供客户端发送对应的请求。
步骤S30,根据双主互备模型,将第一数据同步更新到备用服务器,并接收所述备用服务器更新的第二数据。
在本实施例中,分布式协调服务系统采用双主互备模式,数据库采用关系型数据库,在服务器根据客户端的请求进行操作时,服务器将第一数据同步更新至备用服务器,可以理解的,当备用服务器根据客户端的请求进行操作时,备用服务器也将第二数据同步更新至服务器。即在双主互备模式下,一台服务器根据请求执行对应的操作,另一台服务器都会同步数据。
具体的,双主互备模式为:两台服务器的数据库都可读写,互为主备,默认只使用一台服务器负责数据的写入,另一台服务器作为备用服务器备用,服务器是备用服务器的主库,备用服务器又是服务器的主库,它们互为主从;两台主库之间做高可用,可以采用keepalived等方案(使用VIP对外提供服务),在此不做具体限定。
本实施例当接收到客户端发送的包含第一事件的业务请求时,根据所述业务请求,消费所述第一事件;根据所述第一事件,通过长连接回调第二事件给所述客户端,以供所述客户端消费所述第二事件;根据双主互备模型,将第一数据同步更新到备用服务器,并接收所述备用服务器更新的第二数据。本发明通过响应客户端的请求,并将数据同步到备用服务器上,实现储存切换功能,提高了系统的高可用性,更具智能性。
进一步地,基于第一实施例提出本发明分布式协调服务方法的第二实施例。
分布式协调服务方法的第二实施例与分布式协调服务方法的第一实施例的区别在于,参照图3,步骤S10之前,分布式协调服务方法还包括:
步骤S40,当接收到客户端的登录请求时,根据所述登录请求,生成会话ID,并将所述会话ID保存;
步骤S50,将所述会话ID返回所述客户端,以供所述客户端根据所述会话ID发送请求。
在本实施例中,服务器根据客户端发起的登录请求,生成会话ID,与客户端建立会话窗口,以此接收客户端的业务请求。
以下将对各个步骤进行详细的说明:
步骤S40,当接收到客户端的登录请求时,根据所述登录请求,生成会话ID,并将所述会话ID保存。
当服务器接收到客户端的登录请求时,根据登录请求,在SessionHandler生成session id(会话ID),并将session id保存至关系型数据库中。其中,session id用来判断是否是同一次会话;
步骤S50,将所述会话ID返回所述客户端,以供所述客户端根据所述会话ID发送请求。
服务器将生成的session id返回客户端,以供客户端根据该session id发送请求,具体的,客户端每次发起请求时,都携带有session id,确保是同一次会话。
可以理解的,当服务器接收到客户端的请求时,首先检查这个客户端的请求里是否已包含session id,如果已包含,则说明服务器已经为此客户端创建过session(会话),服务器按照session id把这个session检索出来使用;如果客户端请求不包含session id,则为此客户端创建一个session,并且生成一个与此session相关联的session id,sessionid的值是一个既不会重复,又不容易被找到规律以仿造的字符串,在本实施例中,sessionid总共64位,最高8位为服务器编号,56位为时间戳(单位为ns),该session id将在本次响应中被服务器返回给客户端保存。
进一步地,所述方法还包括:
步骤e,当会话超时时,回调会话结束事件给所述客户端,以供所述客户端关闭当前链接,并进行重连操作;
步骤f,根据所述重连操作,生成第二会话ID,并将所述第二会话ID保存;
步骤g,将所述第二会话ID返回客户端,以供所述客户端根据所述第二会话ID发送请求。
当会话超时时,服务器回调sessionExpired(会话结束)事件给客户端,客户端在收到sessionExpired事件后,由ChannelFactory主动关闭当前链接,进行重连操作。服务器在接收到客户端的重连请求时,会重新给客户端生成新的第二session id,并保存入库,并将第二session id返回客户端,以供客户端响应。
本实施例在接收到客户端的请求时,生成会话ID,使客户端根据生成的会话ID发起请求,确保每次请求是同一会话,若是不同会话或者会话超时,则重新生成一个新的会话ID,实现了会话的安全性与稳定性,提高系统的高可用性,更具智能性。
进一步地,基于第一、或者第二实施例提出本发明分布式协调服务方法的第三实施例。
分布式协调服务方法的第三实施例与分布式协调服务方法的第一、或者第二实施例的区别在于,所述业务请求包含节点的修改请求,分布式协调服务方法还包括:
步骤h,根据所述修改请求,执行对应的修改操作,并监测所述节点对应的第二事件,其中所述第二事件包括:节点变化、节点数据变化和子节点变化;
步骤i,当所述第二事件的状态发生变化时,通过发布订阅机制,将所述第二事件变化后的状态发送给对应的客户端,并持久化所述第二事件。
在分布式集群中,经常会由于各种原因,比如硬件故障,软件故障,网络问题,有些节点会进进出出。有新的节点加入进来,也有老的节点退出集群。这个时候,集群中其他机器需要感知到这种变化,然后根据这种变化做出对应的决策,在本实施例中,分布式协调服务系统可以对节点进行增删改查,其中,节点包括:永久节点、临时节点和永久顺序节点,顺序节点的编号由父节点维护。
当服务器接收到节点的增删改查请求时,由RequestDispatcherHandler(请求调度处理程序)进行请求分发,并执行对应的增删改查操作,同时监测节点对应的第二事件,其中,第二事件包括节点变化、节点数据变化和子节点变化。当第二事件的状态发生变化时,通过发布订阅机制,将该变化后的状态告知关注的客户端,并持久化第二事件。如当A节点关注了B节点,那么B节点的变化A节点都会感知到。
本实施例分布式协调服务系统支持节点的增删改查,并通过发布订阅机制,将被关注节点的变化反馈给关注节点,实现了分布式下所有的客户端watch(观察)同一数据的变化,提高了系统的高可用性和智能性。
进一步地,基于第一、第二或者第三实施例提出本发明分布式协调服务方法的第四实施例。
分布式协调服务方法的第四实施例与分布式协调服务方法的第一、第二或者第三实施例的区别在于,参照图4,所述分布式协调服务方法应用于客户端,分布式协调服务方法还包括:
步骤S60,当客户端发送业务请求后,在预设时间内,若未得到服务器的响应,则获取备用服务器的地址;
步骤S70,根据所述备用服务器地址,连接至备用服务器,并发送所述业务请求。
在计算机运行的过程中,若系统宕机,则服务器是无法接收并处理客户端的请求的,其中,宕机指系统无法从一个系统错误中恢复过来,或系统硬件层面出问题,以致系统长时间无响应,而不得不重启动系统的现象。在本实施例中,当客户端发送业务请求后,在预设时间内,若未得到服务器的响应,则获取备用服务器的地址,通过备用服务器地址连接至备用服务器,以发起请求。
具体的,在部署分布式协调服务时,需要在服务发现注册表中储存服务器的IP地址和端口,客户端可查询服务发现注册表,获取对应的服务器IP地址和端口来调用服务器。
需要说明的是,由于备用服务器同步更新服务器的数据,客户端的session id,备用服务器上也有储存,因此,当客户端切换连接到备用服务器时,发起的请求依旧包含原session id,备用服务器根据session id,在同一会话进程中处理客户端的请求。
本实施例,双机部署分布式协调服务,当服务器发生宕机或者其他故障时,客户端重新连接到备用服务器,以发起请求,实现了服务器的切换,实现系统高可用。
此外,本发明实施例还提出一种计算机可读存储介质。
所述计算机可读存储介质上存储有分布式协调服务程序,所述计算机可读存储介质应用于分布式协调服务系统,所述分布式协调服务程序被处理器执行时实现如上所述步骤。
本发明计算机可读存储介质具体实施方式与上述分布式协调服务方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得多台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种分布式协调服务方法,其特征在于,所述分布式协调服务方法包括以下步骤:
当接收到客户端发送的包含第一事件的业务请求时,根据所述业务请求,消费所述第一事件;
根据所述第一事件,通过长连接回调第二事件给所述客户端,以供所述客户端消费所述第二事件;
根据双主互备模型,将第一数据同步更新到备用服务器,并接收所述备用服务器更新的第二数据。
2.如权利要求1所述的分布式协调服务方法,其特征在于,所述当接收到客户端发送的包含第一事件的业务请求时,根据所述业务请求,消费所述第一事件的步骤之前,所述方法还包括:
当接收到客户端的登录请求时,根据所述登录请求,生成会话ID,并将所述会话ID保存;
将所述会话ID返回所述客户端,以供所述客户端根据所述会话ID发送请求。
3.如权利要求1所述的分布式协调服务方法,其特征在于,所述业务请求包含节点的修改请求,所述方法还包括:
根据所述修改请求,执行对应的修改操作,并监测所述节点对应的第二事件,其中所述第二事件包括:节点变化、节点数据变化和子节点变化;
当所述第二事件的状态发生变化时,通过发布订阅机制,将所述第二事件变化后的状态发送给对应的客户端,并持久化所述第二事件。
4.如权利要求1所述的分布式协调服务方法,其特征在于,所述客户端消费所述第二事件的步骤包括:
当客户端接收到所述第二事件后,客户端将所述第二事件插入事件队列中;
客户端持续消费所述事件队列中的事件。
5.如权利要求1所述的分布式协调服务方法,其特征在于,所述方法还包括:
当会话超时时,回调会话结束事件给所述客户端,以供所述客户端关闭当前链接并进行重连操作;
根据所述重连操作,生成第二会话ID,并将所述第二会话ID保存;
将所述第二会话ID返回客户端,以供所述客户端根据所述第二会话ID发送请求。
6.如权利要求1-5任一项所述分布式协调服务方法,其特征在于,所述方法还包括:
接收客户端定时发送的链路保活请求,根据所述链路保活请求,保持当前会话进行;
若检测到网络闪断,则接收所述客户端的重连请求,并根据所述重连请求,与客户端建立连接。
7.一种分布式协调服务方法,其特征在于,所述分布式协调服务方法应用于客户端,所述分布式协调服务方法包括以下步骤:
当客户端发送业务请求后,在预设时间内,若未得到服务器的响应,则获取备用服务器的地址;
根据所述备用服务器地址,连接至备用服务器,并发送所述业务请求。
8.如权利要求7所述的分布式协调服务方法,其特征在于,在客户端发起登录请求之前,所述方法还包括:
根据负载均衡算法,从服务器集群中,选出对应的服务器。
9.一种分布式协调服务系统,其特征在于,所述分布式协调服务系统包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的分布式协调服务程序,所述分布式协调服务程序被所述处理器执行时实现如权利要求1至7中任一项所述的分布式协调服务方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有分布式协调服务程序,所述分布式协调服务程序被处理器执行时实现如权利要求1至7中任一项所述的分布式协调服务方法的步骤。
CN201810774240.5A 2018-07-13 2018-07-13 分布式协调服务方法、系统及计算机可读存储介质 Active CN110719311B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810774240.5A CN110719311B (zh) 2018-07-13 2018-07-13 分布式协调服务方法、系统及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810774240.5A CN110719311B (zh) 2018-07-13 2018-07-13 分布式协调服务方法、系统及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110719311A true CN110719311A (zh) 2020-01-21
CN110719311B CN110719311B (zh) 2022-03-18

Family

ID=69208702

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810774240.5A Active CN110719311B (zh) 2018-07-13 2018-07-13 分布式协调服务方法、系统及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110719311B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752758A (zh) * 2020-07-01 2020-10-09 浪潮云信息技术股份公司 一种双主架构的InfluxDB高可用系统
CN112822036A (zh) * 2020-12-28 2021-05-18 苏宁消费金融有限公司 一种分布式系统的配置数据同步方法
CN112835643A (zh) * 2021-02-02 2021-05-25 睿云联(厦门)网络通讯技术有限公司 基于设备影子服务对云对讲设备的管理方法和装置及设备
CN113176969A (zh) * 2021-04-23 2021-07-27 杭州迪普科技股份有限公司 服务提供方法、装置、设备及计算机可读存储介质
CN115987941A (zh) * 2023-03-20 2023-04-18 公安部信息通信中心 一种支持多租户的去中心化号码生成系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000056997A (ja) * 1998-08-10 2000-02-25 Nec Software Ltd 分散オブジェクト環境におけるサーバ・クライアント間の非同期通知装置及びその方法
US20040249853A1 (en) * 2003-06-05 2004-12-09 Microsoft Corporation Late bound subscription based event dispatching system and method
WO2009087885A1 (ja) * 2008-01-08 2009-07-16 Nec Corporation サーバシステムとそのイベントメッセージ送信方法、クライアント端末とその接続方法とプログラム、記録媒体
CN103560922A (zh) * 2013-11-18 2014-02-05 北京特立信电子技术股份有限公司 一种容灾方法及系统
CN104410650A (zh) * 2014-12-24 2015-03-11 四川金网通电子科技有限公司 基于Session和Cookie验证用户的方法
CN104917833A (zh) * 2015-06-08 2015-09-16 北京集奥聚合网络技术有限公司 一种基于nio请求的异步信息处理方法
CN105007293A (zh) * 2015-05-25 2015-10-28 国家计算机网络与信息安全管理中心 双主控网络系统及该系统中业务请求的双写方法
CN106878473A (zh) * 2017-04-20 2017-06-20 腾讯科技(深圳)有限公司 一种消息处理方法、服务器集群及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000056997A (ja) * 1998-08-10 2000-02-25 Nec Software Ltd 分散オブジェクト環境におけるサーバ・クライアント間の非同期通知装置及びその方法
US20040249853A1 (en) * 2003-06-05 2004-12-09 Microsoft Corporation Late bound subscription based event dispatching system and method
WO2009087885A1 (ja) * 2008-01-08 2009-07-16 Nec Corporation サーバシステムとそのイベントメッセージ送信方法、クライアント端末とその接続方法とプログラム、記録媒体
CN103560922A (zh) * 2013-11-18 2014-02-05 北京特立信电子技术股份有限公司 一种容灾方法及系统
CN104410650A (zh) * 2014-12-24 2015-03-11 四川金网通电子科技有限公司 基于Session和Cookie验证用户的方法
CN105007293A (zh) * 2015-05-25 2015-10-28 国家计算机网络与信息安全管理中心 双主控网络系统及该系统中业务请求的双写方法
CN104917833A (zh) * 2015-06-08 2015-09-16 北京集奥聚合网络技术有限公司 一种基于nio请求的异步信息处理方法
CN106878473A (zh) * 2017-04-20 2017-06-20 腾讯科技(深圳)有限公司 一种消息处理方法、服务器集群及系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752758A (zh) * 2020-07-01 2020-10-09 浪潮云信息技术股份公司 一种双主架构的InfluxDB高可用系统
CN111752758B (zh) * 2020-07-01 2022-05-31 浪潮云信息技术股份公司 一种双主架构的InfluxDB高可用系统
CN112822036A (zh) * 2020-12-28 2021-05-18 苏宁消费金融有限公司 一种分布式系统的配置数据同步方法
CN112835643A (zh) * 2021-02-02 2021-05-25 睿云联(厦门)网络通讯技术有限公司 基于设备影子服务对云对讲设备的管理方法和装置及设备
CN112835643B (zh) * 2021-02-02 2022-05-17 睿云联(厦门)网络通讯技术有限公司 基于设备影子服务对云对讲设备的管理方法和装置及设备
CN113176969A (zh) * 2021-04-23 2021-07-27 杭州迪普科技股份有限公司 服务提供方法、装置、设备及计算机可读存储介质
CN115987941A (zh) * 2023-03-20 2023-04-18 公安部信息通信中心 一种支持多租户的去中心化号码生成系统

Also Published As

Publication number Publication date
CN110719311B (zh) 2022-03-18

Similar Documents

Publication Publication Date Title
CN110719311B (zh) 分布式协调服务方法、系统及计算机可读存储介质
CN107590001B (zh) 负载均衡方法及装置、存储介质、电子设备
US20100100626A1 (en) Methods and apparatus related to inter-widget interactions managed by a client-side master
US20030061323A1 (en) Hierarchical system and method for centralized management of thin clients
US20050028171A1 (en) System and method enabling multiple processes to efficiently log events
US11432137B2 (en) Service notification method for mobile edge host and apparatus
WO2021135545A1 (zh) 一种 kubernetes 多集群管理系统、方法、终端及存储介质
CN110365762B (zh) 服务处理方法、装置、设备及存储介质
CN112260853B (zh) 容灾切换方法、装置、存储介质及电子设备
CN113162848B (zh) 一种区块链网关的实现方法、装置、网关和介质
CN111064626B (zh) 配置更新方法、装置、服务器及可读存储介质
EP3457668B1 (en) Clustering in unified communication and collaboration services
CN113656195A (zh) 服务消息通道管理方法、装置和电子设备
CN112068847B (zh) 基于kubernets平台的计算环境部署方法及装置
CN108304236B (zh) 一种云平台下基于消息订阅的用户界面刷新方法
WO2024002299A1 (zh) 应用管理方法、应用订阅方法及相关设备
WO2022095678A1 (zh) 一种消息推送方法及消息服务系统
CN108259605B (zh) 一种基于多数据中心的数据调用系统及方法
CN112346980B (zh) 软件性能测试方法、系统和可读存储介质
CN109688011B (zh) 一种基于OpenStack的agent选择方法及装置
CN115391058B (zh) 一种基于sdn的资源事件处理方法、资源创建方法及系统
CN113472638A (zh) 边缘网关控制方法及系统、装置、电子设备、存储介质
CN114615268A (zh) 基于Kubernetes集群的服务网络、监控节点、容器节点及设备
CN111400060A (zh) 设备联动方法、装置、服务器和介质
US7685303B2 (en) Object-oriented discovery framework

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