CN107544783B - 一种数据更新方法、装置及系统 - Google Patents

一种数据更新方法、装置及系统 Download PDF

Info

Publication number
CN107544783B
CN107544783B CN201610482645.2A CN201610482645A CN107544783B CN 107544783 B CN107544783 B CN 107544783B CN 201610482645 A CN201610482645 A CN 201610482645A CN 107544783 B CN107544783 B CN 107544783B
Authority
CN
China
Prior art keywords
data
server
updated
update
node server
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.)
Active
Application number
CN201610482645.2A
Other languages
English (en)
Other versions
CN107544783A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610482645.2A priority Critical patent/CN107544783B/zh
Publication of CN107544783A publication Critical patent/CN107544783A/zh
Application granted granted Critical
Publication of CN107544783B publication Critical patent/CN107544783B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了数据更新方法、装置和系统,该系统包括:云服务器和任务系统,任务系统包括:至少一台调度服务器和至少一台节点服务器,至少一台调度服务器包括:主调度服务器,节点服务器上设置有监控程序。在本申请实施例公开的数据更新方法中,云服务器利用调度服务器上的API接口,向主调度服务器发送更新信息,主调度服务器在接收到更新信息后,将更新数据和自动化运行脚本传输给至少一个待更新的节点服务器,待更新节点服务器运行自动化运行脚本,利用更新数据更新自身的监控程序。该方法利用任务系统的架构,通过主调度服务器将更新数据传输给待更新的节点服务器,从而实现了简单快速完成对云平台内待更新的节点服务器上的监控程序的更新。

Description

一种数据更新方法、装置及系统
技术领域
本申请涉及云技术领域,尤其涉及一种数据更新方法、装置及系统。
背景技术
随着科技的发展,云平台应运而生。云平台包括:包括公有云、私有云和混合云。混合云是融合了公有云和私有云的计算模型,部署在私有云和公有云两种类型的云平台之上,其中公有云通常是指公共网络用户能够通过互联网购买和使用的云计算服务。私有云是企业为完善自己企业内部IT架构,自己构建的云计算基础设施,不对公共网络用户开放,能够保证企业业务数据的完整性和安全性。混合云结合了私有云的高数据安全性和公有云的丰富计算能力两方面的优势,受到越来越多企业的欢迎。
在云平台中,包含有至少一个节点服务器,为了实现任务部署和执行,在云平台之外,设置了调度服务器,利用底层套件,将调度服务器和多个节点服务器构建为任务系统。云平台为了监控各个节点服务器的运行状态,在节点服务器上安装了监控程序,以实时收集节点服务器的基础数据,性能数据,从而使得云平台能够清楚的了解各个节点服务器的运行情况,保证任务系统能够稳定高效的运行。
为了更好的实现对节点服务器的监控,监控程序需要定期更新版本,但是,现有的节点服务器,无法实现自动更新监控程序的版本,想要更新节点服务器上的监控程序版本,只能通过逐台节点服务器依次配置的方式,操作繁琐,效率很低。
发明内容
有鉴于此,本申请提供了一种数据更新方法、装置及系统,以解决现有技术中节点服务器上的监控程序更新操作繁琐,效率很低的问题。
为实现上述目的,一方面,本申请提供了一种数据更新系统,该系统包括:云服务器和任务系统,所述任务系统包括:至少一台调度服务器,和至少一台节点服务器,所述至少一台调度服务器包括:主调度服务器,所述节点服务器上设置有监控程序;
所述云服务器调用所述主调度服务器的API接口,向所述API接口发送数据更新信息,所述数据更新信息至少包括:所述监控程序的更新数据、自动化更新脚本以及用于指示至少一个待更新的节点服务器的指示信息;
所述主调度服务器依据所述数据更新信息中的指示信息,确定至少一个待更新的节点服务器,向所述至少一个待更新的节点服务器传输所述更新数据和自动化更新脚本;
所述待更新的节点服务器在获取到所述更新数据和自动化脚本的情况下,运行所述自动化更新脚本,以利用所述更新数据更新所述监控程序。
另一方面,本申请还提供了一种数据更新方法,应用于数据更新系统中的主调度服务器,该方法包括:
通过API接口接收云服务器发送的数据更新信息,所述数据更新信息至少包括:所述监控程序的更新数据、自动化更新脚本以及用于指示至少一个待更新的节点服务器的指示信息;
依据所述数据更新信息中的指示信息,确定至少一个待更新的节点服务器;
向所述至少一个待更新的节点服务器传输所述更新数据和自动化更新脚本,以使所述待更新的节点服务器在获取到所述更新数据和自动化脚本的情况下,运行所述自动化更新脚本,以利用所述更新数据更新所述监控程序。
另一方面,本申请还提供了一种数据更新装置,包括:
接收模块,用于通过API接口接收云服务器发送的数据更新信息,所述数据更新信息至少包括:所述监控程序的更新数据、自动化更新脚本以及用于指示至少一个待更新的节点服务器的指示信息;
确定模块,用于依据所述数据更新信息中的指示信息,确定至少一个待更新的节点服务器;
数据传输模块,用于向所述至少一个待更新的节点服务器传输所述更新数据和自动化更新脚本,以使所述待更新的节点服务器在获取到所述更新数据和自动化脚本的情况下,运行所述自动化更新脚本,以利用所述更新数据更新所述监控程序。
经由上述的技术方案可知,本申请实施例公开的数据更新方法中,云服务器利用调度服务器上的API接口,向主调度服务器发送更新信息,主调度服务器在接收到更新信息后,将更新数据和自动化运行脚本传输给至少一个待更新的节点服务器,待更新节点服务器运行自动化运行脚本,利用更新数据更新自身的监控程序。该方法利用任务系统的架构,通过主调度服务器将更新数据传输给待更新的节点服务器,从而实现了简单快速完成对云平台内待更新的节点服务器上的监控程序的更新。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的数据更新系统的结构示意图;
图2为本申请实施例公开的数据更新流程图;
图3为本申请实施例公开的又一数据更新流程图;
图4为本申请实施例公开的又一数据更新流程图;
图5为本申请实施例公开的又一数据更新流程图;
图6为本申请实施例公开的调度服务器同步、切换原理示意图;
图7为本申请实施例公开的又一数据更新流程图;
图8为本申请实施例公开的一种数据更新装置的结构示意图;
图9为本申请实施例公开的一种调度服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例公开的数据更新系统的结构如图1所示,包括:云服务器101和任务系统102。该云服务器101可以是云平台中的一个节点服务器,也可以是由多个节点服务器组成的集群。
任务系统102包括:至少一台调度服务器1021,和至少一台节点服务器1022,至少一台调度服务器包括:主调度服务器A,节点服务器上设置有监控程序。主调度服务器A实现对任务的调度,节点服务器1022则完成主调度服务器A分配给它的任务。并且,在调度服务器上,封装有API(Application Programming Interface,应用程序编程接口),该API接口是一组定义、程序及协议的集合,通过API接口实现计算机软件之间的相互通信,同时API接口也是一种中间件,为各种不同平台提供数据共享,可以被任务系统外的其他服务器调用,接收其他服务器发送的信息和指令。
基于图1所示的数据更新系统结构,云服务器和任务系统之间进行数据交互完成监控程序更新的过程如图2所示,包括:
201:云服务器调用主调度服务器的API接口,向API接口发送数据更新信息。
数据更新信息至少包括:更新数据、自动化更新脚本,以及,用于指示至少一个待更新的节点服务器的指示信息。
更新数据包括可执行文件、动态链接库、配置文件等。
用于指示至少一个待更新的节点服务器的指示信息可以有多种形式,例如,其可以是,工作人员输入待更新的节点服务器的识别标识,如,通用唯一标识码,云服务器根据输入的识别标识生成的列表。该列表中包含的识别标识可以是所有节点服务器的识别标识,也可以是部分节点服务器的识别标识。
当任务系统中所有的节点服务器内监控程序均需要更新时,云服务器还可以创建一个State状态文件,该文件可以作为上述指示信息,该文件用于指示全员发布,则意味着,其指示的待更新的节点服务器为所有节点服务器。
202:主调度服务器依据数据更新信息中的指示信息,确定至少一个待更新的节点服务器。
203:主调度服务器向至少一个待更新的节点服务器传输更新数据和自动化更新脚本。
在待更新的节点服务器获取到更新数据和自动化脚本的情况下:
204:待更新的节点服务器运行自动化更新脚本,以利用更新数据更新监控程序。
在该方法中,云服务器利用调度服务器上的API接口,向主调度服务器发送更新信息,主调度服务器在接收到更新信息后,将更新数据和自动化运行脚本传输给至少一个待更新的节点服务器,待更新节点服务器运行自动化运行脚本,利用更新数据更新自身的监控程序。该方法利用任务系统的架构,通过主调度服务器将更新数据传输给待更新的节点服务器,从而实现了简单快速完成对云平台内待更新的节点服务器上的监控程序的更新。
在上述实施例中,用于指示至少一个待更新的节点服务器的指示信息可以为,包含有至少一个待更新的节点服务器识别标识的列表,则主调度服务器依据列表中至少一个待更新的节点服务器的识别标识,确定至少一个待更新的节点服务器。。
当然,本实施例并不限定指示信息的具体形式和主调度服务器确定待更新的节点服务器的具体方式,凡是能够起到指示待更新的节点服务器的信息,以及利用这些信息确定出待更新的节点服务器的方法都是本实施例保护的范围。
在确定待更新的节点服务器后,主调度服务器在执行向至少一个待更新的节点服务器传输更新数据和自动化更新脚本流程如图3所示,其中,节点服务器a是监控程序需要更新节点服务器,即,待更新的节点服务器,而节点服务器b不进行监控程序更新,该流程包括:
a301:主调度服务器向至少一个待更新的节点服务器发送更新数据和自动化更新脚本。
可替换的,方案二包括:
b301:主调度服务器向至少一个待更新的节点服务器发送更新通知,更新通知中包含有下载地址;
b302:待更新的节点服务器在接收到更新通知后,向主调度服务器发送的数据获取请求;
b303:主调度服务器响应至少一个待更新的节点服务器发送的数据获取请求,以使至少一个待更新的节点服务器基于下载地址下载更新数据和自动化更新脚本。
可替换的,方案三包括:
c301:所有节点服务器按照预设周期向主调度服务器发送的数据获取请求;
c302:主调度服务器响应至少一个待更新的节点服务器发送的数据获取请求;
c303:主调度服务器向至少一个待更新的节点服务器发送下载地址,以使至少一个待更新的节点服务器基于下载地址下载更新数据和自动化更新脚本。
对比方案一到方案三可以看出,方案一为主调度服务器主动下发更新数据和自动化更新脚本,而方案二和方案三为,主调度服务器更新数据和自动化更新脚本进行存储,并向节点服务器提供下载地址,节点服务器利用下载地址下载更新数据和自动化更新脚本。这两种不同的更新方式可以同时适应于各种不同的应用场景,只是在不同场景下各有优势。如果待更新的节点服务器是全部的节点服务器,以方案一来说,那么需要下发的数据量非常大,会占用主调度服务器大量数据,进而影响其他任务的执行。而此时,如果采用方案二和方案三中的方式,能够大大缩减主调度服务器的数据占用,提高了系统的稳定。如果主调度服务器将更新数据和自动化更新脚本存在自身之外的其他存储空间,那么对于主调度服务器的空间占用和数据占用也会进一步缩小。
同样是节点服务器从主调度服务器下载数据,方案二和方案三也有区别,方案二中,主调度服务器会通知待更新的节点服务器来下载数据,因此,数据更新的及时性较好。一旦有更新数据,则马上能更新到节点服务器。而方案三中,所有节点服务器周期性的向主调度服务器发送数据获取请求,如果当前没有更新数据,则主调度服务器不会响应数据获取请求,而一旦主调度服务器接收到了更新数据,则其会响应待更新的节点服务器的数据获取请求,而忽略不需要更新的节点服务器的数据获取请求。对比这两个方案可以看出,方案三较方案二,主调度服务器的工作量进一步被缩减,其可以有更多的数据应用到其他业务处理上,提高系统的业务处理能力。而方案二相比于方案三,在数据更新的及时性上更有优势,能够更快的完成更新操作。两个方案各有优点,在实际的应用场景中,可以根据不同的需求选择相应的方式,实现主调度服务器将更新数据和自动化更新脚本更新到至少一个待更新的节点服务器的目的。
在实际的应用中,由于运行环境的变化或者服务器自身的问题,可能会导致调度服务器与节点服务器的连接中断,节点服务器无法接收到更新信息,或者,节点服务器出现问题,因此也就无法进行监控程序的更新,从而导致更新过程的失败。并且,由于调度服务器无法向云服务器发送指示这些情况的信息,从而导致云服务器也无法获知该情况,无法及时的采用有效措施进行补救,大大降低了数据更新系统的稳定性和数据更新过程的有效性。
为了解决上述问题,如图1所示,本申请实施例公开的数据更新系统中还包含有数据库服务器103。该数据库服务器可以是独立于调度服务器和云服务器之外的,进行数据存储的服务器。此时,云服务器和主调度服务器除执行图2所示流程外,还包括如图4所示流程:
401:主调度服务器接收到数据更新信息后,创建数据更新任务。
在本实施例中,数据更新的过程以任务的形式执行。
402:云服务器按照预设时间周期发送任务状态请求,任务状态请求中包含有能够指示数据更新任务的识别信息。
因为主调度服务器无法直接和云服务器通信,所以该指示数据更新任务的识别信息可以是云服务器在发送数据更新信息时,包含在数据更新信息中的信息,可以是一个编号,也可以是将更新数据中的某一部分做哈希运算后的结果。在主调度服务器创建更新任务时,按照预先的约定,以该标识作为更新任务的标识或者是更新任务标识的一部分,以便于建立该识别信息和数据更新任务的对应关系,能够利用该识别信息找到数据更新任务。
当然,该识别信息也可以是主调度服务器在创建数据更新任务时,为该数据更新任务分配的识别标识,然后将该识别标识发送给数据库服务器,云服务器可以从数据库服务器获得该识别标识。
403:主调度服务器在接收到任务状态请求后,将与识别信息对应的数据更新任务的当前运行状态生成消息事件。
404:主调度服务器将消息事件发送给数据库服务器,消息事件中包含有识别信息。
405:云服务器从数据库服务器获取与识别信息对应的消息事件。
406:根据消息事件,在确定数据更新任务失败的情况下,再次调用主调度服务器的API接口,向API接口发送数据更新信息。
为了实现上述过程,主调度服务器需要具有存储任务运行状态和消息事件的功能,如果目前的主调度服务器不具有这些功能,可以通过在主调度服务器上设置事件拦截机制的方式,利用事件拦截机制,获取任务执行过程中的事件,进行存储或发送。
下面是一个具体的实例,在添加该事件拦截机制后,云服务器和主调度服务器之间的交互过程如图5所示:
501:云服务器在调用主调度服务器的API接口时,向数据库服务器写入新建数据更新任务的记录。
云服务器写入的数据更新任务记录用于记录整个数据更新任务的生命周期,例如,开始,执行中,结束。为了能够明确是哪条更新信息对应的记录,可以将更新信息的标识用于该记录的标识。假设数据更新信息的标识为D,则此时该记录的标识为D。在数据服务器接收到新建数据更新任务记录时,该数据更新任务的生命周期开始。
502:主调度服务器接收到数据更新信息时,创建数据更新任务,为该数据更新任务分配任务识别标识。
在本实施例中,主调度服务器直接为数据更新任务分配任务识别标识,在识别标识中包含数据更新信息的特征,例如,数据更新信息的发送时间,数据更新信息的大小等,包含数据更新信息的标识,或者,直接使用数据更新信息的标识,从而能够明确该数据更新任务对应的是哪条数据更新信息。
例如,数据更新信息的标识为D,数据更新任务的标识为D1
503:主调度服务器利用事件拦截机制将数据更新任务的任务识别标识发送给数据库服务器。
事件拦截服务器运行在主调度服务器上,在拦截事件的过程中,获取到数据更新任务的任务识别标识,然后将其发送给数据库服务器。数据库服务器接收到任务识别标识后,从任务识别标识中能够识别出是哪一条数据更新消息对应的数据更新任务的标识,然后,将该任务识别标识和该数据更新消息对应的数据更新任务的记录建立联系。假设数据库服务器每条数据更新任务记录,都包含识别标识区域和数据存储区域,识别标识区域用于记录每条记录的标识,数据存储区域用于记录具体的状态数据。同一数据更新任务的所有记录的识别标识区域中的内容相同。数据更新信息的标识为D,则与其对应的记录的标识也为D,当接收到的数据更新任务的标识为D1时,能够分析出,D1对应的数据更新任务是与标识为A的数据更新信息对应的,进而,其也和标识为D的数据更新任务记录对应。
504:云服务器从数据库服务器获得数据更新任务的任务识别标识。
云服务器从数据库服务器中得到与标识为D的数据更新信息对应的数据更新任务的任务识别标识D1
505:云服务器按照预定的时间周期,向主调度服务器发送任务状态查询请求,该请求中包含有数据更新任务的任务识别标识。
在运行过程中,云服务器会定期调用主调度服务器的find_job指令向主调度服务器查询识别标识为D1的数据更新任务是否完成。
506:主调度服务器在接收到任务状态查询请求后,将该数据更新任务的当前运行状态生成消息事件。
主调度服务器把任务识别标识为D1的数据更新任务的当前运行状态进行打包,生成消息事件。
507:主调度服务器利用事件拦截机制将消息事件存储到数据库服务器中。
事件拦截机制在实时监听是否生成了事件,一旦生成,则将该事件获取,并发送给数据库服务器。
508:云服务器从数据库服务器获取与数据更新任务的任务识别标识对应的消息事件。
云服务器直接从数据库服务器获取D1的状态消息。
当数据更新任务执行完毕之后,主调度服务器中会产生一个事件,该事件中记录着该任务的执行情况以及待更新的节点服务器执行数据更新任务的结果集,该事件同样会被事件拦截机制获取到,并写入到数据库中,记录在数据更新任务记录中,作为该任务的最终状态,并且结束该任务的生命周期。
如果数据更新任务没有执行完毕就中止了,那么主调度服务器也会产生一个事件,记录任务中止或者出错的状态,然后该事件也会被写入到数据库中。
509:在云服务器根据消息事件,确定数据更新任务失败的情况下,云服务器再次调用主调度服务器的API接口,向API接口发送数据更新信息,并向数据库服务器写入新建数据更新任务的记录。
由于从任务创建到完成的状态都将会记录在数据库服务器内,而云服务器可以从数据库服务器中获取数据更新任务的状态,如果云服务器获得的状态消息是执行成功,则不做处理。而如果其获得的状态消息是任务中止,任务出错等提示任务失败的消息,云服务器会再次调用API接口,重新发起数据更新任务,将更新数据信息再次发送。
图5所示实施例,只是实现上述功能的众多实施方式中的一个,并不限定只能按照上述流程实现图4所示功能。凡是能够实现图4所示功能的技术方案都是本实施例的保护范围。
通过上述操作,云服务器能够通过获取数据更新任务的执行状态,进而可以主动的采取补救措施,保证数据更新能够被完成,提高了数据更新系统的可靠性和稳定性。
在实际的应用中,造成任务失败的因素有很多,例如,节点服务器故障,这样受到影响的会是该节点服务器本身,虽然其自身无法完成数据更新过程,但是并不会对其他节点服务器造成影响。但是,如果是主调度服务器故障,调度服务器只包含一个调度服务器A,而又不存在可以替换的备调度服务器,那么整个任务系统都将瘫痪,无法运行。当出现这种情况的时候,即便云服务器能够从数据库服务器中得到数据更新过程失败的结果,向主调度服务器再次发送了数据更新消息,但是由于主调度服务器已经不可用,该数据更新任务还是不能执行。
为了解决上述问题,提高数据更新系统的可靠性和容灾性,任务系统还可以为主调度服务器设置备用调度服务器,该备用调度服务器可以为1个也可以为多个。以图1所示结构为例,如图1中虚线框部分所示,任务系统还包括备用调度服务器B。主调度服务器A和备调度服务器B互为热备份,它们的工作配置/工作目录文件都要同步,才能正常工作,因此,需要利用同步组件对其同步。
本实施例中的同步组件为SyncDaemon。但此处并不限定只能利用SyncDaemon,还可以使用心跳机制或者其他能够实现设备同步的机制或方法。每个调度服务器都安装了Keepalived,用于主备切换。其同步和主备切换的原理如图6所示。
Keepalived是一个交换机制软件,其工作原理是VRRP(Virtual RouterRedundancy Protocol,虚拟路由冗余协议)。在具体应用时,利用VRRP协议创建一个VIP(Virtual IP Address,虚拟IP地址),如本实施例中的主调度服务器A的IP地址为192.168.8.4,备用调度服务器B的IP地址为192.168.8.6,VIP为:192.168.8.100。
在这种模式下,VIP在作为对外的接口,与节点服务器进行通信。节点服务器在与主调度服务器连接时,其表面上访问的是VIP 192.168.8.100,而其实际访问到的是主调度服务器的IP地址192.168.8.4。
VRRP中存在着一种选举机制,用于定期的从执行调度任务的多个调度服务器中选择出优先级属性值最高的调度服务器作为主调度服务器,剩余的则成了备用调度服务器,例如,调度服务器A的优先级属性为100,调度服务器的优先级属性为90,则调度服务器A作为主调度服务器。Keepalived利用vrrp_script来检查其所在的调度服务器是否正常工作,如果该指令执行失败,则认为该调度服务器出现故障,则该调度服务器对应的优先级属性值会降低,使其低于其他的调度服务器。如果是A出现了问题,则在下一次选举时,它将不再是主调度服务器。而B则会成为主调度服务器,以保证任务系统能够继续工作。
但是,此时仍然存在一个问题,那就是,当主调度服务器出现故障,在最新的选举过程中,会变成备用调度服务器,这一过程中,A和节点服务器之间的连接就会断开,如果节点服务器不能发现这个问题,那么后续还是无法重新执行数据更新任务。
因此,节点服务器还需要按照预设时间间隔检测与主调度服务器之间的连接状态,在连接状态为无连接的情况下,向调度服务器发送连接请求。
在本实施例中,节点服务器可以按照预定的时间间隔,利用PING(PacketInternet Groper,因特网包探索器)向主调度服务器发送测试数据包,而主调度服务器如果工作正常,也会响应该测试数据包,证明两者之间的联通是顺畅的。如果主调度服务器出现故障,没有响应测试数据包,则证明两者间为断开连接状态,而此时,节点服务器会再次访问VIP,向VIP发送连接请求。
结合上一实施例,在节点服务器再次访问VIP时,节点服务器表面上仍然访问的是VIP192.168.8.100,但是,其实际访问的IP地址为调度服务器B的IP地址192.168.8.6。这样,即便是将主调度服务器A切换为备用调度服务器B,对于节点服务器而言,其进行连接的仍然是VIP,只是连接的实质发生了变化,但是这些变化并不会对节点服务器有任何影响。
结合上述实施例,在数据更新任务失败时,无论云服务器,还是调度服务器,或者是节点服务器,都会有相应的补救措施,无论是其中的任何一种方式,都可以单独应用在数据更新系统中,以提升数据更新系统的稳定性和可靠性。上述实施例以顺序的方式将三种方式结合在一起的方式,在此仅仅作为举例描述,并不限定三种方式必须同时使用。可以根据不同的应用场景下,对可靠性的不同要求而相应的选择适合的方式,无论是如何使用,都是本申请保护的范围。
本申请实施例公开的数据更新系统中的任务系统,可以利用saltstack架构构建。在此任务系统中,调度服务器和节点服务器采用C/S模式。调度服务器上封装了API接口,以供其他服务器调用。
云服务器在发送更新信息前,需要做以下准备工作:
将需要发送给主调度服务器的更新数据进行预设格式的打包,例如,将其打包为tar.gz或者zip格式。在更新数据中,包括本次更新所需要的可执行文件、动态链接库和配置文件等。
生成自动化更新脚本。该自动化更新脚本可以是工作人员现场编译的,也可以是预先编译好存储在某一位置,在需要时直接获取的。自动化更新脚本在运行时一般会执行四项操作:1、将更新数据tar.gz或zip解压到文件夹。2、比对节点服务器上现存监控程序的文件与解压的更新数据中的文件的修改时间、版本号。3、如果更新数据中的文件的修改时间晚于现存的监控程序文件,或者,更新数据中的文件的版本号高于现存的监控程序文件的版本号,则将更新数据的文件替换现存的监控程序的文件。4、将监控程序的进程重启,使监控程序在运行时调用更新后的数据,使得更新生效。
接收工作人员利用输入指令salt-client输入的待更新节点服务器的识别标识,例如,VM1,VM2,VM3,VM4。具体的操作指令为:salt-L“VM1,VM2,VM3,VM4”[cmd]。云服务器将接收到的节点服务器的识别标识存储为列表或者其他形式,以作为指示信息。或者,在待更新的节点服务器为全部节点服务器时,创建一个state状态文件,将全员发布状态固化于该文件中。具体的更新数据的过程如图7所示,包括:
701:云服务器调用API接口,将数据更新信息发送给API接口,同时,向数据库服务器写入新建数据更新任务的记录。
702:主调度服务器接收到数据更新信息后,依据数据更新信息中的列表,确定待更新的节点服务器为VM1,VM2,VM3,VM4,并且,创建数据更新任务,为数据更新任务分配任务识别标识。
703:利用事件拦截机制利用事件获取函数get_event获取该任务标识,将任务识别标识发送给数据库服务器。
每一个事件对应一条独立的消息,消息由json编码,格式如下:
{'tag':'salt/job/20160518235956026979/new','data':{'tgt_type':'glob','jid':'20160518235956026979','tgt':'*','_stamp':'2016-05-18T15:59:56.029385','user':'root','arg':[],'fun':'test.ping','minions':['host1','host2']}}
消息的标识tag部分标识着该消息的类型,而新建任务表示为,salt/job/xxxxx/new。
事件拦截机制一直处于监听状态,通过监听主调度服务器的消息队列,判断有没有事件生成。持续不断的执行get_event函数。事件拦截机制分析到是新建任务后就会去获取该任务对应的识别标识。
704:数据服务器建立新建数据更新任务的记录和任务识别标识的关系,以确保能够根据任务识别标识,查询到数据更新任务。
705:主调度服务器执行cp.getfile指令,直接向VM1,VM2,VM3,VM4下发更新数据,并执行cmd.run指令,向VM1,VM2,VM3,VM4下发自动化更新脚本运行指令。
706:待更新的节点服务器在获取到更新数据和自动化脚本的情况下,利用cmd.run指令运行自动化更新脚本,进行监控程序更新。
707:云服务器从数据服务器获取任务识别标识,然后按照预定的周期调用主调度服务器的find_job接口,向该接口发送包含有任务识别标识的任务状态查询请求。
708:主调度服务器接收到任务状态查询请求后,将目前的运行状态打包成一条消息事件。
709:主调度服务器利用事件拦截机制将消息事件发送到数据库服务器中。
7010:云服务器从数据库服务器中获取任务状态,即,获取与识别信息对应的消息事件。
7011:在任务状态为任务失败的情况下,返回执行再次向主调度服务器发送数据更新,再次向数据库服务器写入新建数据更新任务记录的步骤。
7012:主调度服务器在数据更新任务完成后,产生一个结果事件,记录着该任务的执行情况以及待更新节点服务器执行任务的结果集。
7013:主调度服务器利用事件拦截机制将该结果事件发送给数据库服务器。
可替换,如果指示信息是state文件,则调度服务器执行state.highstate指令,对所有节点服务器执行状态同步操作,节点服务器自动从主调度服务器中获取更新数据和自动化运行脚本。
本申请同时公开了一种数据更新装置,其结构如图8所示,包括:
接收模块801,用于通过API接口接收云服务器发送的数据更新信息,数据更新信息至少包括:监控程序的更新数据、自动化更新脚本以及用于指示至少一个待更新的节点服务器的指示信息;
确定模块802,用于依据数据更新信息中的指示信息,确定至少一个待更新的节点服务器;
数据传输模块803,用于向至少一个待更新的节点服务器传输更新数据和自动化更新脚本,以使待更新的节点服务器在获取到更新数据和自动化脚本的情况下,运行自动化更新脚本,以利用更新数据更新监控程序。
其中,数据传输模块包括:
数据发送单元,用于向至少一个待更新的节点服务器发送更新数据和自动化更新脚本。
可替换的,数据传输模块包括:
更新通知发送单元,用于向至少一个待更新的节点服务器发送更新通知,更新通知中包含有下载地址;
第一请求接收单元,用于接收至少一个待更新的节点服务器发送的数据获取请求;
第一响应单元,用于响应至少一个待更新的节点服务器发送的数据获取请求,以使至少一个待更新的节点服务器基于下载地址下载更新数据和自动化更新脚本。
可替换的,数据传输模块包括:
第二请求接收单元,用于接收至少一个节点服务器按照预设周期发送的数据获取请求;
第二响应单元,用于响应至少一个待更新的节点服务器发送的数据获取请求;
地址发送单元,用于向至少一个待更新的节点服务器发送下载地址,以使至少一个待更新的节点服务器基于下载地址下载更新数据和自动化更新脚本。
在上述实施例的基础上,该装置还包括:
任务创建模块,用于在接收到数据更新信息时,创建数据更新任务;
任务状态请求接收模块,用于接收云服务器按照预设时间周期发送的任务状态请求,任务状态请求中包含有能够指示数据更新任务的识别信息;
事件生成发送模块,用于将与识别信息对应的数据更新任务的当前运行状态生成事件,并发送给数据库服务器,事件中包含有识别信息。
本申请同时公开了一种调度服务器,该调度服务器可以包括上述的任意一种数据更新装置。
图9示出了该调度服务器的硬件结构框图,参考图9,调度服务器900可以包括:处理器901,存储器902和通信总线903。其中,处理器901和存储器902通过通信总线903实现相互间的通信。
处理器901,用于执行程序。
存储器902,用于存放程序。
程序可以包括程序代码,程序代码包括计算机操作指令。
处理器901可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器902可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
其中,程序可具体用于:
通过API接口接收云服务器发送的数据更新信息,数据更新信息至少包括:监控程序的更新数据、自动化更新脚本以及用于指示至少一个待更新的节点服务器的指示信息;
依据数据更新信息中的指示信息,确定至少一个待更新的节点服务器;
向至少一个待更新的节点服务器传输更新数据和自动化更新脚本,以使待更新的节点服务器在获取到更新数据和自动化脚本的情况下,运行自动化更新脚本,以利用更新数据更新监控程序。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (19)

1.一种数据更新系统,其特征在于,包括:云服务器、数据库服务器和任务系统,所述任务系统包括:至少一台调度服务器,和至少一台节点服务器,所述至少一台调度服务器包括:主调度服务器,所述节点服务器上设置有监控程序;
所述云服务器调用所述主调度服务器的API接口,向所述API接口发送数据更新信息,所述数据更新信息至少包括:所述监控程序的更新数据、自动化更新脚本以及用于指示至少一个待更新的节点服务器的指示信息;
所述主调度服务器接收到所述数据更新信息后,创建数据更新任务;依据所述数据更新信息中的指示信息,确定至少一个待更新的节点服务器,向所述至少一个待更新的节点服务器传输所述更新数据和自动化更新脚本;
所述待更新的节点服务器在获取到所述更新数据和自动化脚本的情况下,运行所述自动化更新脚本,以利用所述更新数据更新所述监控程序;
所述云服务器还用于,按照预设时间周期发送任务状态请求,所述任务状态请求中包含有能够指示所述数据更新任务的识别信息;
所述主调度服务器还用于,在接收到所述任务状态请求后,将与所述识别信息对应的数据更新任务的当前运行状态生成包含有所述识别信息的消息事件,并发送给所述数据库服务器,所述消息事件用于所述云服务器确定是否再次向所述API接口发送数据更新信息。
2.根据权利要求1所述的系统,其特征在,
所述云服务器还用于,从所述数据库服务器获取与所述识别信息对应的消息事件,根据所述消息事件,在确定所述数据更新任务失败的情况下,再次调用主调度服务器的API接口,向所述API接口发送数据更新信息。
3.根据权利要求1所述的系统,其特征在于,所述用于指示所述至少一个待更新的节点服务器的指示信息为,包含有所述至少一个待更新的节点服务器识别标识的列表;
所述主调度服务器在执行所述依据数据更新信息中的指示信息,确定所述至少一个待更新的节点服务器的步骤时,具体用于:
依据所述列表中所述至少一个待更新的节点服务器的识别标识,确定所述至少一个待更新的节点服务器。
4.根据权利要求1或3所述的系统,其特征在于,所述主调度服务器在执行向所述至少一个待更新的节点服务器传输所述更新数据和自动化更新脚本的步骤时,具体用于:
向所述至少一个待更新的节点服务器发送所述更新数据和自动化更新脚本。
5.根据权利要求1或3所述的系统,其特征在于,所述主调度服务器在执行向所述至少一个待更新的节点服务器传输所述更新数据和自动化更新脚本的步骤时,具体用于:
向所述至少一个待更新的节点服务器发送更新通知,所述更新通知中包含有下载地址;
接收所述至少一个待更新的节点服务器发送的数据获取请求;
响应所述至少一个待更新的节点服务器发送的数据获取请求,以使所述至少一个待更新的节点服务器基于所述下载地址下载所述更新数据和自动化更新脚本。
6.根据权利要求1或3所述的系统,其特征在于,所述主调度服务器在执行向所述至少一个待更新的节点服务器传输所述更新数据和自动化更新脚本的步骤时,具体用于:
接收所述至少一个节点服务器按照预设周期发送的数据获取请求;
响应所述至少一个待更新的节点服务器发送的数据获取请求;
向所述至少一个待更新的节点服务器发送下载地址,以使所述至少一个待更新的节点服务器基于所述下载地址下载所述更新数据和自动化更新脚本。
7.根据权利要求1所述的系统,其特征在于,所述节点服务器还用于,按照预设时间间隔检测与所述主调度服务器之间的连接状态,在所述连接状态为无连接的情况下,向调度服务器发送连接请求。
8.一种数据更新方法,其特征在于,应用于数据更新系统中的主调度服务器,该方法包括:
通过API接口接收云服务器发送的数据更新信息,所述数据更新信息至少包括:监控程序的更新数据、自动化更新脚本以及用于指示至少一个待更新的节点服务器的指示信息;
创建数据更新任务,并依据所述数据更新信息中的指示信息,确定至少一个待更新的节点服务器;
向所述至少一个待更新的节点服务器传输所述更新数据和自动化更新脚本,以使所述待更新的节点服务器在获取到所述更新数据和自动化脚本的情况下,运行所述自动化更新脚本,以利用所述更新数据更新所述监控程序;
接收所述云服务器按照预设时间周期发送的任务状态请求,所述任务状态请求中包含有能够指示所述数据更新任务的识别信息;
将与所述识别信息对应的数据更新任务的当前运行状态生成包含有所述识别信息的消息事件,并发送给数据库服务器,所述消息事件用于所述云服务器确定是否再次通过所述API接口发送数据更新信息。
9.根据权利要求8所述的方法,其特征在于,所述用于指示所述至少一个待更新的节点服务器的指示信息为,包含有所述至少一个待更新的节点服务器识别标识的列表。
10.根据权利要求9所述的方法,其特征在于,所述依据数据更新信息中的指示信息,确定所述至少一个待更新的节点服务器包括:
依据所述列表中所述至少一个待更新的节点服务器的识别标识,确定所述至少一个待更新的节点服务器。
11.根据权利要求8或10所述的方法,其特征在于,向所述至少一个待更新的节点服务器传输所述更新数据和自动化更新脚本的过程包括:
向所述至少一个待更新的节点服务器发送所述更新数据和自动化更新脚本。
12.根据权利要求8或10所述的方法,其特征在于,向所述至少一个待更新的节点服务器传输所述更新数据和自动化更新脚本的过程包括:
向所述至少一个待更新的节点服务器发送更新通知,所述更新通知中包含有下载地址;
接收所述至少一个待更新的节点服务器发送的数据获取请求;
响应所述至少一个待更新的节点服务器发送的数据获取请求,以使所述至少一个待更新的节点服务器基于所述下载地址下载所述更新数据和自动化更新脚本。
13.根据权利要求8或10所述的方法,其特征在于,向所述至少一个待更新的节点服务器传输所述更新数据和自动化更新脚本的过程包括:
接收所述至少一个节点服务器按照预设周期发送的数据获取请求;
响应所述至少一个待更新的节点服务器发送的数据获取请求;
向所述至少一个待更新的节点服务器发送下载地址,以使所述至少一个待更新的节点服务器基于所述下载地址下载所述更新数据和自动化更新脚本。
14.一种数据更新装置,其特征在于,包括:
接收模块,用于通过API接口接收云服务器发送的数据更新信息,所述数据更新信息至少包括:监控程序的更新数据、自动化更新脚本以及用于指示至少一个待更新的节点服务器的指示信息;
确定模块,用于依据所述数据更新信息中的指示信息,确定至少一个待更新的节点服务器;
数据传输模块,用于向所述至少一个待更新的节点服务器传输所述更新数据和自动化更新脚本,以使所述待更新的节点服务器在获取到所述更新数据和自动化脚本的情况下,运行所述自动化更新脚本,以利用所述更新数据更新所述监控程序;
任务创建模块,用于在接收到所述数据更新信息时,创建数据更新任务;
任务状态请求接收模块,用于接收云服务器按照预设时间周期发送的任务状态请求,所述任务状态请求中包含有能够指示所述数据更新任务的识别信息;
事件生成发送模块,用于将与所述识别信息对应的数据更新任务的当前运行状态生成包含有所述识别信息的消息事件,并发送给数据库服务器,所述消息事件用于所述云服务器确定是否再次向所述API接口发送数据更新信息。
15.根据权利要求14所述的装置,其特征在于,所述数据传输模块包括:
数据发送单元,用于向所述至少一个待更新的节点服务器发送所述更新数据和自动化更新脚本。
16.根据权利要求14所述的装置,其特征在于,所述数据传输模块包括:
更新通知发送单元,用于向所述至少一个待更新的节点服务器发送更新通知,所述更新通知中包含有下载地址;
第一请求接收单元,用于接收所述至少一个待更新的节点服务器发送的数据获取请求;
第一响应单元,用于响应所述至少一个待更新的节点服务器发送的数据获取请求,以使所述至少一个待更新的节点服务器基于所述下载地址下载所述更新数据和自动化更新脚本。
17.根据权利要求14所述的装置,其特征在于,所述数据传输模块包括:
第二请求接收单元,用于接收所述至少一个节点服务器按照预设周期发送的数据获取请求;
第二响应单元,用于响应所述至少一个待更新的节点服务器发送的数据获取请求;
地址发送单元,用于向所述至少一个待更新的节点服务器发送下载地址,以使所述至少一个待更新的节点服务器基于所述下载地址下载所述更新数据和自动化更新脚本。
18.一种调度服务器,其特征在于,包括:包括处理器和存储器;
所述存储器用于存放程序;
所述处理器拥有执行所述程序,以实现如权利要求8-13任意一项所述的数据更新方法的各个步骤。
19.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序,所述计算机程序用于执行权利要求8-13任意一项所述的数据更新方法的各个步骤。
CN201610482645.2A 2016-06-27 2016-06-27 一种数据更新方法、装置及系统 Active CN107544783B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610482645.2A CN107544783B (zh) 2016-06-27 2016-06-27 一种数据更新方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610482645.2A CN107544783B (zh) 2016-06-27 2016-06-27 一种数据更新方法、装置及系统

Publications (2)

Publication Number Publication Date
CN107544783A CN107544783A (zh) 2018-01-05
CN107544783B true CN107544783B (zh) 2020-11-24

Family

ID=60961501

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610482645.2A Active CN107544783B (zh) 2016-06-27 2016-06-27 一种数据更新方法、装置及系统

Country Status (1)

Country Link
CN (1) CN107544783B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110633564B (zh) * 2018-06-25 2022-01-14 北京国双科技有限公司 文件生成方法和装置
CN110874238B (zh) * 2018-09-03 2023-04-28 阿里巴巴集团控股有限公司 一种线上业务更新方法及其装置
CN110245078B (zh) * 2019-05-24 2020-11-13 平安国际智慧城市科技股份有限公司 一种软件的压力测试方法、装置、存储介质和服务器
CN110597541B (zh) * 2019-09-16 2021-09-17 腾讯科技(深圳)有限公司 基于区块链的接口更新处理方法、装置、设备及存储介质
CN110750282B (zh) * 2019-10-14 2021-04-02 支付宝(杭州)信息技术有限公司 用于运行应用程序的方法、装置及gpu节点
CN110888663B (zh) * 2019-11-11 2020-09-29 中科有讯(北京)科技有限公司 应用更新方法、业务服务器、中转服务器、集群及存储介质
CN111553776B (zh) * 2020-04-26 2023-08-08 成都新致云服信息技术有限公司 数据处理方法、装置和电子设备
CN112615912B (zh) * 2020-12-11 2022-07-12 中国建设银行股份有限公司 一种节点调度处理方法、装置及存储介质
CN116644215B (zh) * 2023-07-27 2023-09-29 北京亿中邮信息技术有限公司 一种跨组织结构的数据更新方法以及更新系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102075358A (zh) * 2010-12-31 2011-05-25 网宿科技股份有限公司 针对大规模服务器集群的内容分发和部署的系统和方法
CN103037019A (zh) * 2013-01-07 2013-04-10 北京华胜天成科技股份有限公司 一种基于云计算的分布式数据采集系统及方法
CN104539487A (zh) * 2015-01-20 2015-04-22 成都益联科创科技有限公司 一种基于云平台的系统测试及可靠性评估方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102075358A (zh) * 2010-12-31 2011-05-25 网宿科技股份有限公司 针对大规模服务器集群的内容分发和部署的系统和方法
CN103037019A (zh) * 2013-01-07 2013-04-10 北京华胜天成科技股份有限公司 一种基于云计算的分布式数据采集系统及方法
CN104539487A (zh) * 2015-01-20 2015-04-22 成都益联科创科技有限公司 一种基于云平台的系统测试及可靠性评估方法

Also Published As

Publication number Publication date
CN107544783A (zh) 2018-01-05

Similar Documents

Publication Publication Date Title
CN107544783B (zh) 一种数据更新方法、装置及系统
US11740975B2 (en) System and method for managing blockchain nodes
KR101970839B1 (ko) 서비스의 2차 위치에서의 작업의 재생 기법
US10678648B2 (en) Method, apparatus, and system for migrating virtual machine backup information
JP5708937B2 (ja) 構成情報管理システム、構成情報管理方法、及び構成情報管理用プログラム
JP2021518018A (ja) 関数チェックポイントを使用したサービスハブのための関数移植性
CN113127133B (zh) 跨平台的虚拟机热迁移方法、装置、设备和介质
CN106452836B (zh) 主节点设置方法及装置
CN113067850B (zh) 一种多云场景下的集群编排系统
CN107465709B (zh) 分布式镜像构建任务方法及装置、系统
JP7345921B2 (ja) マスタースレーブアーキテクチャのota差分更新方法とシステム
CN112559461A (zh) 文件传输方法及装置、存储介质及电子设备
CN107168774B (zh) 一种基于本地存储的虚拟机迁移方法及系统
US20240086236A1 (en) Computing node management method and system
CN112035062B (zh) 云计算的本地存储的迁移方法、计算机设备及存储介质
CN114615268B (zh) 基于Kubernetes集群的服务网络、监控节点、容器节点及设备
CN116346834A (zh) 一种会话同步方法、装置、计算设备及计算机存储介质
CN114996352A (zh) 数据库管理系统及方法
US20160077861A1 (en) Information processing system, storage apparatus, and program
CN114930313A (zh) 用于管理区块链节点的系统和方法
CN111435320A (zh) 一种数据处理方法及其装置
CN116820686B (zh) 物理机的部署方法、虚拟机和容器统一监控的方法及装置
CN113973049B (zh) 一种fpga集群管理与部署比特流的方法
US20240061708A1 (en) Controller for computing environment frameworks
CN116614358A (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