CN106897128A - 一种分布式应用退出方法、系统以及服务器 - Google Patents

一种分布式应用退出方法、系统以及服务器 Download PDF

Info

Publication number
CN106897128A
CN106897128A CN201710038721.5A CN201710038721A CN106897128A CN 106897128 A CN106897128 A CN 106897128A CN 201710038721 A CN201710038721 A CN 201710038721A CN 106897128 A CN106897128 A CN 106897128A
Authority
CN
China
Prior art keywords
application
node
data
distributed
exits
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
CN201710038721.5A
Other languages
English (en)
Other versions
CN106897128B (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.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and 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 Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN201710038721.5A priority Critical patent/CN106897128B/zh
Publication of CN106897128A publication Critical patent/CN106897128A/zh
Application granted granted Critical
Publication of CN106897128B publication Critical patent/CN106897128B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]

Abstract

本发明提供一种分布式应用退出方法、系统以及服务器,所述方法包括:在接收到应用退出指令时,创建停止应用运行的通知指令;根据所述通知指令,控制各应用节点停止生产新数据并继续处理已经收到的数据;定期检测各应用节点的数据处理状态,直至所有应用节点的残留数据均处理完成;在所有应用节点的残留数据均处理完成后,控制各应用节点停止数据收发,退出应用;所述方法采用Zookeeper及基于Zookeeper选举生成的Leader实施。本发明可以确保所有数据处理完成后再退出,可以保证应用数据无丢失无重复,防止由于节点异常导致应用退出失败,而且无需耗费额外系统资源和应用开发资源。

Description

一种分布式应用退出方法、系统以及服务器
技术领域
本发明涉及分布式应用技术领域,具体为一种分布式应用退出方法、系统以及服务器。
背景技术
分布式应用(distributed application)指的是应用程序分布在不同计算机上,通过网络来共同完成一项任务的工作方式。
分布式应用相对于单机应用,具有可扩展性强、容错能力高等优点,但是在应用管理上则更为复杂。特别是对于分布式流式计算的应用,应用退出时,最重要的考虑是如何避免数据丢失。现有常见的分布式应用退出方案,首先通知所有应用节点停止数据接收与发送,然后各个应用节点将未处理的内存数据持久化(如将数据下载到磁盘中)后,应用进程退出;当所有应用节点的进程退出后,应用退出完成;下次重启时,各个应用节点的进程重新加载各自的持久化数据,保证所有数据得到处理。
现有的退出方案由于需要将未处理的内存数据持久化,所以对于大吞吐量应用的内存数据持久化,可能会造成突发的较大的CPU和IO负载。另外如果应用的内存数据结构比较复杂,数据持久化和重加载处理往往需要应用参与,给应用带来额外的开发量。
另外,现有分布式应用退出时,应用节点立即停止数据接收与发送,会导致应用节点不再接收新的数据,因此需要关闭数据接收端口,这会导致其它应用节点发送失败,如果不重发,可能造成数据丢失,如果重发,可能造成不必要的系统资源和网络资源开销。
发明内容
鉴于以上所述现有技术的缺点,本发明实施例提供一种分布式应用退出方法、系统以及服务器,用于解决现有技术中分布式应用退出时需要将未处理的内存数据持久化,带来的负载量大、退出耗时长、数据丢失等问题。
本发明实施例提供一种分布式应用退出方法,所述分布式应用退出方法包括:在接收到应用退出指令时,创建停止应用运行的通知指令;根据所述通知指令,控制各应用节点停止生产新数据并继续处理已经收到的数据;定期检测各应用节点的数据处理状态,直至所有应用节点的残留数据均处理完成;在所有应用节点的残留数据均处理完成后,控制各应用节点停止数据收发,退出应用。
于本发明的一实施例中,所述分布式应用退出方法还包括:所述分布式应用退出方法还包括:为处于数据处理中的各应用节点分别对应配置临时节点,并定期更新所述临时节点,其中,所述临时节点用于标记所述应用节点的数据处理状态。
于本发明的一实施例中,在所述应用节点的残留数据均处理完成或所述应用节点异常时,删除对应的所述临时节点。
于本发明的一实施例中,所述定期检测各应用节点的数据处理状态,直至所有应用节点的残留数据均处理完成具体包括:定期检测与各应用节点对应的临时节点数量,若在预设的连续多个周期内未检测到所述临时节点,则判断所有应用节点的残留数据均处理完成。
于本发明的一实施例中,各所述应用节点在继续处理已经收到的数据时,若有应用节点出现异常,将出现异常的应用节点所处理的数据重新分发至其它应用节点。
于本发明的一实施例中,所述分布式应用退出方法还包括:在所有应用节点的残留数据处理完成后,所述应用节点回调应用的退出回调函数,待所述退出回调函数执行完毕,退出应用。
于本发明的一实施例中,所述分布式应用退出方法采用Zookeeper及基于Zookeeper选举产生的管理节点实施。
本发明还提供一种分布式应用退出系统,所述分布式应用退出系统包括:残留数据处理模块,用于在接收到应用退出指令时,创建停止应用运行的通知指令,根据所述通知指令,控制各应用节点停止生产新数据并继续处理已经收到的数据,并定期检测各应用节点的数据处理状态,直至所有应用节点的残留数据均处理完成;退出模块,用于在所有应用节点的残留数据均处理完成后,控制各应用节点停止数据收发,退出应用。
于本发明的一实施例中,所述分布式应用退出系统还包括:临时节点处理模块,用于为处于数据处理中的各应用节点分别对应配置临时节点,并定期更新所述临时节点,其中,所述临时节点用于标记所述应用节点的数据处理状态,在所述应用节点的残留数据均处理完成或所述应用节点异常时,删除对应的临时节点。
于本发明的一实施例中,所述分布式应用退出系统还包括检测判断模块,用于所述定期检测各应用节点的数据处理状态,直至所有应用节点的残留数据均处理完成,具体包括:定期检测与各应用节点对应的临时节点数量,若在预设的连续多个周期内未检测到所述临时节点,则判断所有应用节点的残留数据均处理完成。
于本发明的一实施例中,各所述应用节点在继续处理已经收到的数据时,若有应用节点出现异常,所述残留数据处理模块将出现异常的应用节点所处理的数据重新分发至其它应用节点。
本发明还提供一种服务器,所述服务器包括如上所述的分布式应用退出系统。
如上所述,本发明的一种分布式应用退出方法、系统以及服务器,具有以下有益效果:
1、本发明在分布式应用退出时,停止数据生产,不关闭各应用节点间的数据收发,跟踪检测所有应用节点已收到数据的处理情况,确保所有数据处理完成后再退出,可以保证应用数据无丢失无重复,防止由于节点异常导致应用退出失败,同时,应用退出前,未处理数据不持久化,减少了系统资源和应用开发资源的额外耗费。
2、本发明将应用退出分为残留数据处理和应用退出回调两步,将往往耗时最多的应用退出回调放在最后一步,用户可以在残留数据处理完成后安全的进行后续操作。
附图说明
图1显示为本发明的一种分布式应用退出方法的具体流程示意图。
图2显示为本发明的一种分布式应用退出方法的数据处理具体流程示意图。
图3显示为本发明的一种分布式应用退出系统的原理框图。
元件标号说明
100 分布式应用退出系统
101 残留数据处理模块
102 退出模块
103 临时节点处理模块
104 检测判断模块
S101~S104 步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
本发明实施例提供一种分布式应用退出方法、系统以及服务器,用于解决现有技术中分布式应用退出时产生的负载量大、退出耗时长、数据丢失或需要数据重发的问题。以下将详细阐述本发明的一种分布式应用退出方法、系统以及服务器的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本发明的一种分布式应用退出方法、系统以及服务器。
本实施例中的分布式应用退出方法、系统以及服务器本系统为了解决分布式应用的安全退出问题。本实施例针对当前分布式应用退出的弊端,提出改进后的分布式应用安全退出的技术方案改进如下:
1)应用退出前,未处理的数据不持久化,减少了系统资源的和应用开发资源的额外耗费。
2)退出时应用节点停止数据生产,但不关闭各应用节点间的数据收发,避免了数据丢失或重发。
3)持续监控应用退出过程,完备的异常处理;将应用退出分为残留数据处理和应用退出回调两步,两步式退出,使退出操作更快返回。
以下对本实施例中的分布式应用退出方法、系统以及服务器进行具体说明。
本实施例提供一种分布式应用退出方法,于本实施例中,所述分布式应用退出方法例如采用Zookeeper及基于Zookeeper选举生成的管理节点(Leader)实施,通用性强,安全可靠性高,但并不以此限制本发明。
Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。Zookeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。Zookeeper包含一个简单的原语集,提供Java和C的接口。Zookeeper是以FastPaxos算法为基础的,Paxos算法存在活锁的问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxos作了一些优化,通过选举产生一个Leader,只有Leader才能提交proposer,具体算法可见Fast Paxos。Zookeeper的基本运转流程:1)选举Leader;2)同步数据;3)选举Leader过程中算法有很多,但要达到的选举标准是一致的;4)Leader要具有最高的zxid;集群中大多数的应用节点得到响应并follow选出的Leader。
具体地,如图1所示,所述分布式应用退出方法包括以下步骤:
步骤S101,在接收到应用退出指令时,创建停止应用运行的通知指令。
本实施例中,使用Zookeeper保证分布式应用各应用节点退出各个步骤的状态一致性,由动态选举出的Leader控制退出流程,防止由于节点异常导致应用退出失败。
于本实施例中,用户(User)通过执行应用管理程序发起应用退出请求,应用管理程序在Zookeeper创建停止分布式应用运行的应用退出指令。利用Leader定期查询Zookeeper路径是否有未处理指令(即应用退出指令),读取指令的内容,然后等待Zookeeper通知并获取操作结果。
步骤S102,根据所述通知指令,控制各应用节点停止生产新数据并继续处理已经收到的数据。
于本实施例中,分布式应用退出时,各应用节点停止数据生产,但不关闭应用节点间的数据收发。
于本实施例中,各所述应用节点在继续处理已经收到的数据时,若有应用节点出现异常,将出现异常的应用节点所处理的数据重新分发至其它应用节点。即于本实施例中,各个应用节点继续处理已收到的数据,并按需进行数据分发;如果某应用节点出现异常,数据重新分发,保证数据不丢失。
于本实施例中,所述分布式应用退出方法还包括:为处于数据处理中的各应用节点分别对应配置临时节点,并定期更新所述临时节点,其中,所述临时节点用于标记所述应用节点的数据处理状态。
需要说明的是,临时节点的创建和删除是根据应用节点的数据处理情况来更新的,如有未处理数据,则创建临时节点,数据处理完毕,则删除临时节点,故临时节点的创建和删除可能有多次,直至所有应用节点的参数数据处理完毕。具体地,所有应用节点的临时节点均保存于一个在线列表中。Leader监听应用节点在线列表,每个活动的应用节点会在这个列表下维护一个临时节点。
其中,在所述应用节点的残留数据均处理完成或所述应用节点异常时,删除对应的临时节点。
步骤S103,定期检测各应用节点的数据处理状态,直至所有应用节点的残留数据均处理完成。
于本实施例中,使用Zookeeper跟踪所有应用节点已收到数据的处理情况,确保所有数据处理完成后再退出。
具体地,于本实施例中,所述定期检测各应用节点的数据处理状态,直至所有应用节点的残留数据均处理完成具体包括:定期检测与各应用节点对应的临时节点数量,若在预设的连续多个周期内未检测到所述临时节点,则判断所有应用节点的残留数据均处理完成。
例如,各个应用节点定期(假设周期为T)检测本应用节点未处理的数据个数,如果连续多个周期(例如连续两个周期)内检测到的为处理的数据个数为0,删除临时节点;否则,创建临时节点。其中,如果某应用节点出现异常,临时节点会自动被Zookeeper删除,避免退出进度被阻塞。
其中,Leader定期(T)监听应用节点在线列表,当连续两个周期,在线列表为空,则说明所有残留数据已被处理完成。
当确定所有残留数据均已处理完成,Leader为各个应用节点创建新通知;然后将退出成功的操作结果写入Zookeeper,删除收到退出请求时创建的指令。用户从Zookeeper获取残留数据处理完毕的操作结果,可以进行后续的应用重启、应用升级等操作。
步骤S104,在所有应用节点的残留数据均处理完成后,控制各应用节点停止数据收发,退出应用。本实施例中,将应用退出分为残留数据处理和应用退出两步,将耗时最多的应用退出放在最后一步,用户可以在残留数据处理完成后安全的进行后续操作。
具体地,各个应用节点监听各自的通知路径,收到退出通知,判断本应用节点的应用进程是否在运行,如果是,关闭应用节点的数据收发模块,否则,应用已退出,删除通知。然后应用节点回调应用的退出回调函数,例如将应用的一些计算结果下载下来,等退出回调函数执行完,应用进程退出。完成分布式应用的退出。
下面举例来说明本发明实施例的分布式应用退出方法,但不以此为限。如图2所示,所述分布式应用退出方法具体流程如下:
1、用户(User)通过执行应用管理程序发起应用退出请求,应用管理程序在Zookeeper创建停止分布式应用运行的应用退出指令,例如用户创建新指令(Zookeeper路径command/$cid($指代变量,cid为command id的缩写,每个指令都有唯一的id)),写入指令内容stop:$app(app指代应用名称),然后等待Zookeeper通知并获取操作结果。
2、利用Leader定期查询Zookeeper路径command/是否有未处理指令(即应用退出指令),读取$cid指令的内容stop:$app。需要说明的是,如果应用退出过程中,Leader出现异常,自动选举出新的Leader重新读取指令的内容,避免因Leader异常导致退出失败。
3、然后Leader定期查询对应的应用状态(Zookeeper路径$app/status),如果是running,表示该应用正在运行中,故将$app/status改为stopping;如果是stopping,Leader为各个应用节点创建新通知(Zookeeper路径$app/$node/notify/$nid1),写入内容status:stopping。
4、Leader为各个应用节点创建新通知(Zookeeper路径$app/$node/notify/$nid1),写入内容status:stopping;Leader开始监听应用节点在线列表(Zookeeper路径$app/running/),其中每个活动的应用节点会在这个列表下维护一个临时节点$app/running/$node。
5、各个应用节点监听各自的通知路径(Zookeeper路径$app/$node/notify/$nid1),收到stopping通知,判断本节点应用进程是否在运行,如果是,停止应用节点的所有生产模块,不再生产新数据,然后删除通知。例如为删除通知$app/$node/notify/$nid1;否则,即该节点应用进程没有在运行,该应用节点已退出,删除通知,例如为删除通知$app/$node/notify/$nid1。
6、各个应用节点继续处理已收到的数据,并按需进行数据分发;如果某应用节点出现异常,由分布式平台进行数据重新分发,保证数据不丢失。
7、各个应用节点定期(假设为T)检测本节点未处理的数据个数,如果为0,删除临时节点$app/running/$node;否则,创建临时节点$app/running/$node;如果某应用节点出现异常,临时节点$app/running/$node会自动被Zookeeper删除,避免退出进度被阻塞。
8、Leader定期(T)监听应用节点在线列表$app/running/,当连续两个周期,在线列表为空,则说明所有残留数据已被处理完成。
9、当确定所有残留数据均已处理完成,Leader将应用节点状态$app/status改为stop,为各个应用节点创建新通知(Zookeeper路径$app/$node/notify/$nid2),写入内容status:stop;然后将退出成功的操作结果写入Zookeeper,删除收到退出请求时创建的指令command/$cid。
10、用户从Zookeeper获取残留数据处理完毕的操作结果,可以进行后续的应用重启、应用升级等操作。
11、各个应用节点监听各自的通知路径,收到stop通知,判断本节点应用进程是否在运行,如果是,关闭数据收发模块,删除通知$app/$node/notify/$nid2;否则,应用已退出,删除通知$app/$node/notify/$nid2。
12、应用节点回调应用的退出回调函数,等退出回调函数执行完,应用进程退出。
为实现上述分布式应用退出方法,本实施例还对应提供一种分布式应用退出系统,如图3所示,所述分布式应用退出系统100包括:残留数据处理模块101、退出模块102、临时节点处理模块103以及检测判断模块104。
以下对本实施例中的所述分布式应用退出系统100进行详细说明。
于本实施例中,所述分布式应用退出系统100采用Zookeeper及基于Zookeeper选举生成的Leader实施。
具体地,于本实施例中,所述残留数据处理模块101用于在接收到应用退出指令时,创建停止应用运行的通知指令,根据所述通知指令,控制各应用节点停止生产新数据并继续处理已经收到的数据,并定期检测各应用节点的数据处理状态,直至所有应用节点的残留数据均处理完成。
本实施例中,使用Zookeeper保证分布式应用各应用节点退出各个步骤的状态一致性,由动态选举出的Leader控制退出流程,防止由于节点异常导致应用退出失败。
具体地,用户通过Zookeeper创建停止分布式应用运行的应用退出指令,例如用户创建新指令,然后等待Zookeeper通知获取操作结果。
于本实施例中,利用Leader定期查询Zookeeper路径是否有未处理指令(即应用退出指令),读取指令的内容。其中,于本实施例中,如果指令退出过程中,Leader出现异常,自动选举出新的Leader重新读取。
于本实施例中,分布式应用退出时,各应用节点停止数据生产,但不关闭应用节点间的数据收发。
具体地,于本实施例中,各所述应用节点在继续处理已经收到的数据时,若有应用节点出现异常,所述残留数据处理模块101将出现异常的应用节点所处理的数据重新分发至其它应用节点。即于本实施例中,各个应用节点继续处理已收到的数据,并按需进行数据分发;如果某应用节点出现异常,数据重新分发,保证数据不丢失。
于本实施例中,所述临时节点处理模块103用于为处于数据处理中的各应用节点分别对应配置临时节点,并定期更新所述临时节点,其中,所述临时节点用于标记所述应用节点的数据处理状态。具体地,所有应用节点的临时节点均保存于一个在线列表中。Leader监听应用节点在线列表,每个活动的应用节点会在这个列表下维护一个临时节点。
在所述应用节点的残留数据均处理完成或所述应用节点异常时,所述临时节点处理模块103删除对应的临时节点。
于本实施例中,使用Zookeeper跟踪所有应用节点已收到数据的处理情况,确保所有数据处理完成后再退出。
于本实施例中,所述检测判断模块104用于所述定期检测各应用节点的数据处理状态,直至所有应用节点的残留数据均处理完成,具体包括:定期检测与各应用节点对应的临时节点数量,若在预设的连续多个周期内未检测到所述临时节点,则判断所有应用节点的残留数据均处理完成。
例如,各个应用节点定期(假设周期为T)检测本应用节点未处理的数据个数,如果连续多个周期(例如连续两个周期)内检测到的为处理的数据个数为0,删除临时节点;否则,创建临时节点。其中,如果某应用节点出现异常,临时节点会自动被Zookeeper删除,避免退出进度被阻塞。
其中,Leader定期(T)监听应用节点在线列表$app/running/,当连续两个周期,在线列表为空,则说明所有残留数据已被处理完成。
当确定所有残留数据均已处理完成,Leader为各个应用节点创建新通知;然后将退出成功的操作结果写入Zookeeper,删除收到退出请求时创建的指令。用户从Zookeeper获取残留数据处理完毕的操作结果,可以进行后续的应用重启、应用升级等操作。
于本实施例中,所述退出模块102用于在所有应用节点的残留数据均处理完成后,控制各应用节点停止数据收发,退出应用。
本实施例中,将应用退出分为残留数据处理和应用退出两步,将耗时最多的应用退出放在最后一步,用户可以在残留数据处理完成后安全的进行后续操作。
具体地,所述退出模块102控制各个应用节点监听各自的通知路径,收到stop通知,判断本应用节点的应用进程是否在运行,如果是,关闭应用节点的数据收发模块,删除通知;否则,应用已退出,删除通知。然后应用节点回调应用的退出回调函数,等退出回调函数执行完,应用进程退出。完成分布式应用的退出。
最后本实施例还提供一种服务器,所述服务器包括如上所述的分布式应用退出系统100。上述已经对所述分布式应用退出系统100进行了详细说明,在此不再赘述。
综上所述,本发明在分布式应用退出时,停止数据生产,不关闭各应用节点间的数据收发,跟踪检测所有应用节点已收到数据的处理情况,确保所有数据处理完成后再退出,可以保证应用数据无丢失无重复,防止由于节点异常导致应用退出失败,同时,应用退出前,未处理的数据不持久化,减少了系统资源和应用开发资源的额外耗费;本发明将应用退出分为残留数据处理和应用退出回调两步,将往往耗时最多的应用退出回调放在最后一步,用户可以在残留数据处理完成后安全的进行后续操作。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (12)

1.一种分布式应用退出方法,其特征在于,所述分布式应用退出方法包括:
在接收到应用退出指令时,创建停止应用运行的通知指令;
根据所述通知指令,控制各应用节点停止生产新数据并继续处理已经收到的数据;
定期检测各应用节点的数据处理状态,直至所有应用节点的残留数据均处理完成;
在所有应用节点的残留数据均处理完成后,控制各应用节点停止数据收发,退出应用。
2.根据权利要求1所述的分布式应用退出方法,其特征在于,所述分布式应用退出方法还包括:为处于数据处理中的各应用节点分别对应配置临时节点,并定期更新所述临时节点,其中,所述临时节点用于标记所述应用节点的数据处理状态。
3.根据权利要求2所述的分布式应用退出方法,其特征在于,所述分布式应用退出方法还包括:在所述应用节点的残留数据均处理完成或所述应用节点异常时,删除对应的所述临时节点。
4.根据权利要求2所述的分布式应用退出方法,其特征在于,所述定期检测各应用节点的数据处理状态,直至所有应用节点的残留数据均处理完成具体包括:定期检测与各应用节点对应的临时节点数量,若在预设的连续多个周期内未检测到所述临时节点,则判断所有应用节点的残留数据均处理完成。
5.根据权利要求1所述的分布式应用退出方法,其特征在于,各所述应用节点在继续处理已经收到的数据时,若有应用节点出现异常,将出现异常的应用节点所处理的数据重新分发至其它应用节点。
6.根据权利要求1所述的分布式应用退出方法,其特征在于,所述分布式应用退出方法还包括:在所有应用节点的残留数据处理完成后,所述应用节点回调应用的退出回调函数,待所述退出回调函数执行完毕,退出应用。
7.根据权利要求1至权利要求6任一权利要求所述的分布式应用退出方法,其特征在于,所述分布式应用退出方法采用Zookeeper及基于Zookeeper选举产生的管理节点实施。
8.一种分布式应用退出系统,其特征在于,所述分布式应用退出系统包括:
残留数据处理模块,用于在接收到应用退出指令时,创建停止应用运行的通知指令,根据所述通知指令,控制各应用节点停止生产新数据并继续处理已经收到的数据,并定期检测各应用节点的数据处理状态,直至所有应用节点的残留数据均处理完成;
退出模块,用于在所有应用节点的残留数据均处理完成后,控制各应用节点停止数据收发,退出应用。
9.根据权利要求8所述的分布式应用退出系统,其特征在于,所述分布式应用退出系统还包括临时节点处理模块,用于为处于数据处理中的各应用节点分别对应配置临时节点,并定期更新所述临时节点,其中,所述临时节点用于标记所述应用节点的数据处理状态,在所述应用节点的残留数据均处理完成或所述应用节点异常时,删除对应的临时节点。
10.根据权利要求9所述的分布式应用退出系统,其特征在于,所述分布式应用退出系统还包括检测判断模块,用于所述定期检测各应用节点的数据处理状态,直至所有应用节点的残留数据均处理完成,具体包括:定期检测与各应用节点对应的临时节点数量,若在预设的连续多个周期内未检测到所述临时节点,则判断所有应用节点的残留数据均处理完成。
11.根据权利要求8所述的分布式应用退出系统,其特征在于,各所述应用节点在继续处理已经收到的数据时,若有应用节点出现异常,所述残留数据处理模块将出现异常的应用节点所处理的数据重新分发至其它应用节点。
12.一种服务器,其特征在于,所述服务器包括如权利要求8至权利要求11任一权利要求所述的分布式应用退出系统。
CN201710038721.5A 2017-01-19 2017-01-19 一种分布式应用退出方法、系统以及服务器 Active CN106897128B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710038721.5A CN106897128B (zh) 2017-01-19 2017-01-19 一种分布式应用退出方法、系统以及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710038721.5A CN106897128B (zh) 2017-01-19 2017-01-19 一种分布式应用退出方法、系统以及服务器

Publications (2)

Publication Number Publication Date
CN106897128A true CN106897128A (zh) 2017-06-27
CN106897128B CN106897128B (zh) 2021-06-22

Family

ID=59197989

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710038721.5A Active CN106897128B (zh) 2017-01-19 2017-01-19 一种分布式应用退出方法、系统以及服务器

Country Status (1)

Country Link
CN (1) CN106897128B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562522A (zh) * 2017-10-12 2018-01-09 国电南瑞科技股份有限公司 一种基于ZooKeeper的分布式应用管理方法
CN110427219A (zh) * 2019-06-21 2019-11-08 努比亚技术有限公司 一种应用退出控制方法、终端及计算机可读存储介质
CN114398094A (zh) * 2021-12-21 2022-04-26 中国银联股份有限公司 小程序启动方法、装置、设备及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101958808A (zh) * 2010-10-18 2011-01-26 华东交通大学 一种服务于多网格接入的集群任务调度管理器
CN102394936A (zh) * 2011-11-11 2012-03-28 青岛海信传媒网络技术有限公司 集群系统无损业务维护方法
CN106102170A (zh) * 2016-05-31 2016-11-09 西安空间无线电技术研究所 一种适用于分布式可重构航天器的信道共享方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101958808A (zh) * 2010-10-18 2011-01-26 华东交通大学 一种服务于多网格接入的集群任务调度管理器
CN102394936A (zh) * 2011-11-11 2012-03-28 青岛海信传媒网络技术有限公司 集群系统无损业务维护方法
CN106102170A (zh) * 2016-05-31 2016-11-09 西安空间无线电技术研究所 一种适用于分布式可重构航天器的信道共享方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562522A (zh) * 2017-10-12 2018-01-09 国电南瑞科技股份有限公司 一种基于ZooKeeper的分布式应用管理方法
CN110427219A (zh) * 2019-06-21 2019-11-08 努比亚技术有限公司 一种应用退出控制方法、终端及计算机可读存储介质
CN114398094A (zh) * 2021-12-21 2022-04-26 中国银联股份有限公司 小程序启动方法、装置、设备及计算机可读存储介质
CN114398094B (zh) * 2021-12-21 2023-08-18 中国银联股份有限公司 小程序启动方法、装置、设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN106897128B (zh) 2021-06-22

Similar Documents

Publication Publication Date Title
US10476949B2 (en) Predictive autoscaling in computing systems
US8335813B2 (en) Systems, methods, and protocols for process migration and group membership management
US20070299906A1 (en) Server change management
EP3180692A1 (en) Fault tolerant federation of computing clusters
CN107534570A (zh) 虚拟化网络功能监控
CN112291298B (zh) 异构系统的数据传输方法、装置、计算机设备和存储介质
CN106897128A (zh) 一种分布式应用退出方法、系统以及服务器
JP7465940B2 (ja) リソース割当制御装置、計算機システム、及びリソース割当制御方法
CN111400041A (zh) 服务器配置文件的管理方法、装置及计算机可读存储介质
Mohamed et al. MidCloud: an agent‐based middleware for effective utilization of replicated Cloud services
Spinnewyn et al. Fault-tolerant application placement in heterogeneous cloud environments
CN103164262B (zh) 一种任务管理方法及装置
WO2009045526A1 (en) A method for implementing highly available parallel operations on a computational grip
Hossain et al. Active & Idle Virtual Machine Migration Algorithm-a new Ant Colony Optimization approach to consolidate Virtual Machines and ensure Green Cloud Computing
CN104410511A (zh) 一种服务器管理方法及系统
US11429435B1 (en) Distributed execution budget management system
US20230015908A1 (en) Virtual machine operation management in computing devices
US7552439B2 (en) System and method to allow non-deterministic execution in a process control system
CN113485812B (zh) 基于大数据量任务的分区并行处理方法及系统
CN105760973A (zh) 业务处理方法及装置
US20190108077A1 (en) System and method for mpi implementation in an embedded operating system
CN109450724A (zh) 一种nfs内存优化功能的测试方法及相关装置
CN114598700A (zh) 通信方法及通信系统
CN110069343B (zh) 面向复杂高并发计算的动力装备分布式存储与计算架构
US11381642B2 (en) Distributed storage system suitable for sensor data

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant