CN111538738B - 服务升级方法、装置、电子设备及存储介质 - Google Patents
服务升级方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111538738B CN111538738B CN202010342353.5A CN202010342353A CN111538738B CN 111538738 B CN111538738 B CN 111538738B CN 202010342353 A CN202010342353 A CN 202010342353A CN 111538738 B CN111538738 B CN 111538738B
- Authority
- CN
- China
- Prior art keywords
- service node
- service
- mode
- quartz
- task
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明实施例涉及计算机领域,公开了一种服务升级方法、装置、电子设备及存储介质。本申请的部分实施例中,服务上线方法包括:应用于任务调度引擎Quartz架构的管理节点,Quartz架构的数据库中存储有第一行级锁和第二行级锁,服务上线方法包括:将部署在生产环境中的待测试的第一服务节点的工作模式配置为调试模式;其中,处于调试模式的服务节点通过抢占第二行级锁拉取Quartz架构中的任务;在检测到上线指令后,将第一服务节点的工作模式配置为生产模式;其中,处于生产模式的服务节点通过抢占第一行级锁拉取Quartz架构中的任务。该实施例中,可以减少由于新上线的服务节点发生故障导致任务丢失的情况。
Description
技术领域
本发明实施例涉及计算机领域,特别涉及一种服务升级方法、装置、电子设备及存储介质。
背景技术
随着业务的增长和对业务可靠性要求的提高,现有很多商业调度框架,都基于开源的任务调度引擎Quartz框架来实现。Quartz是一个完全由java开发的开源的任务日程管理系统。如图1所示,在现有的Quartz的分布式架构中,数据库是各节点上调度器的枢纽,各个节点并不感知其他节点的存在,只是通过数据库来进行间接的沟通。Quartz的分布式策略是一种以数据库作为边界资源的并发策略,每个节点都遵守相同的操作规范,使得对数据库的操作可以串行执行,而不同的调度器又可以互不影响的并行运行。Quartz集群架构在进行任务读取时,不同的服务器通过抢占数据库行级锁的方式,从数据库中分别把任务a、任务b和任务c调度起来,从而保证不会出现同一个任务被多个服务器拉起的情况。
然而,发明人发现现有技术中至少存在如下问题:为提高服务质量,常常需要上线新版本的服务节点。为确保新版本的服务节点能够运行,运维人员会在测试环境下对新版本的服务节点进行测试。然而,由于测试环境与生产环境隔离,即使新版本的服务节点在测试环境测试通过,在生产环境运行时也可能发生故障。若新版本的服务节点拉取任务后出现故障,无法释放数据库中的行级锁,这将导致被拉取的任务丢失。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明实施方式的目的在于提供一种服务升级方法、装置、电子设备及存储介质,使得可以减少由于新上线的服务节点发生故障导致任务丢失的情况。
为解决上述技术问题,本发明的实施方式提供了一种服务上线方法,应用于任务调度引擎Quartz架构的管理节点,Quartz架构的数据库中存储有第一行级锁和第二行级锁,服务上线方法包括:将部署在生产环境中的待测试的第一服务节点的工作模式配置为调试模式;其中,处于调试模式的服务节点通过抢占第二行级锁拉取Quartz架构中的任务;在检测到上线指令后,将第一服务节点的工作模式配置为生产模式;其中,处于生产模式的服务节点通过抢占第一行级锁拉取Quartz架构中的任务。
本发明的实施方式还提供了一种任务调度引擎Quartz架构的服务上线装置,Quartz架构的数据库中存储有第一行级锁和第二行级锁,服务上线装置包括:第一配置模块,用于将部署在生产环境中的待测试的第一服务节点的工作模式配置为调试模式;其中,处于调试模式的服务节点通过抢占第二行级锁拉取Quartz架构中的任务;第二配置模块,用于在检测到上线指令后,将第一服务节点的工作模式配置为生产模式;其中,处于生产模式的服务节点通过抢占第一行级锁拉取Quartz架构中的任务。
本发明的实施方式还提供了一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上述实施方式提及的服务上线方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述实施方式提及的服务上线方法。
本发明实施方式相对于现有技术而言,将待测试的服务节点部署在生产环境中,使得服务节点可以在生产环境下进行测试。并且,通过在Quartz架构的数据库中设置两个不同的行级锁,生产模式的服务节点和调试模式的服务节点可以通过抢占不同的锁来拉取任务,使得服务节点的运行不会影响生产环境中老版本的服务节点的运行。相比现有技术,由于服务节点在通过生产环境下的测试后,才切换至生产模式,投入使用,这可以避免在服务节点无法在生产环境下正常运行的情况下,将该服务节点上线至生产环境,导致任务丢失的问题。
另外,上线指令在确定第一服务节点测试成功后被触发,用于指示更新第一服务节点的工作模式。
另外,在将第一服务节点的工作模式配置为生产模式之后,服务上线方法还包括:在确定第一服务节点调取的任务已执行完成后,重启第一服务节点。
另外,在将第一服务节点的工作模式配置为生产模式之后,服务上线方法还包括:确定生产环境中与第一服务节点对应的第二服务节点;其中,第二服务节点为第一服务节点的上一版本的服务节点;将第二服务节点下线。
另外,在将第一服务节点的工作模式配置为生产模式之后,将第二服务节点下线之前,服务上线方法还包括:监控第一服务节点的运行状态;根据监控结果,确定第一服务节点正常运行。
另外,确定第一服务节点是否测试成功的过程包括:反馈第一服务节点执行任务产生的执行参数;获取运维人员输入的测试结果指示信息;测试结果指示信息指示测试是否成功;若确定测试结果指示信息指示测试成功,则确定第一服务节点测试成功;若确定测试结果指示信息指示测试失败,则确定第一服务节点测试失败。
另外,确定第一服务节点是否测试成功的过程包括:获取第一服务节点执行任务产生的执行参数;判断执行参数是否符合预设要求;若确定是,确定第一服务节点测试成功;若确定不是,确定第一服务节点测试失败。
另外,执行参数包括第一指示信息,和/或,第二指示信息;其中,第一指示信息指示任务执行成功的次数,第二指示信息指示执行任务所消耗的时间。
另外,服务上线装置还包括:重启模块,用于在第二配置模块将第一服务节点的工作模式配置为生产模式之后,在确定第一服务节点调取的任务已执行完成后,重启第一服务节点。
另外,服务上线装置还包括:下线模块,用于在将第一服务节点的工作模式配置为生产模式之后,确定生产环境中与第一服务节点对应的第二服务节点;其中,第二服务节点为第一服务节点的上一版本的服务节点;将第二服务节点下线。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是现有技术中的Quartz集群架构的示意图;
图2是根据本发明的第一实施方式的服务上线方法的流程示意图;
图3是根据本发明的第二实施方式的服务上线方法的流程示意图;
图4是根据本发明的第二实施方式的Quartz架构的架构示意图;
图5是根据本发明的第三实施方式的服务上线装置的结构示意图;
图6是根据本发明的第四实施方式的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明公开的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明公开的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本发明的第一实施方式涉及一种服务上线方法,应用于任务调度引擎Quartz架构的管理节点,Quartz架构的数据库中存储有第一行级锁和第二行级锁,第一行级锁与第二行级锁不同。如图2所示,服务上线方法包括以下步骤:
步骤101:将部署在生产环境中的待测试的第一服务节点的工作模式配置为调试模式。
具体的说,处于调试模式的服务节点通过抢占第二行级锁拉取Quartz架构中的任务。运维人员在需要上线新版本的第一服务节点时,可以将第一服务节点先设置为调试模式。管理节点根据运维人员的设置,将第一服务节点的工作模式配置为调试模式。
步骤102:在检测到上线指令后,将第一服务节点的工作模式配置为生产模式。
具体的说,处于生产模式的服务节点通过抢占第一行级锁拉取Quartz架构中的任务。若该第一服务节点的各方面性能符合预设要求,触发上线指令。管理节点在检测到上线指令后,将第一服务节点的工作模式配置为生产模式,以上线该第一服务节点。第一服务节点在工作模式被配置为生产模式后,与其他处于生产模式的服务节点共同抢锁。
在本实施方式中,对Quartz架构进行了改进,使得生产模式的服务节点和调试模式的服务节点在拉取任务的过程中,抢占不同的锁,以使调试模式的服务节点的任务拉取不会影响生产模式的服务节点的任务拉取。基于该架构,将第一服务节点部署在生产环境中,并配置为调试模式,使得服务节点可以在生产环境下进行测试,在通过生产环境下的测试后,才切换至生产模式,投入使用,这可以避免在服务节点无法在生产环境下正常运行的情况下,将该服务节点上线至生产环境,导致任务丢失的问题,进而使得Quartz架构中上线的服务节点的稳定性更有保障。
在一个实施例中,上线指令在确定第一服务节点测试成功后被触发,用于指示更新第一服务节点的工作模式。例如,管理节点通过更改服务节点的配置信息,改变服务节点的工作模式。若服务节点的配置信息为0,则表示服务节点的工作模式为调试模式,若服务节点的配置信息为1,则表示服务节点的工作模式为生产模式。该情况下,上线指令可以是将第一服务节点的配置信息改为1的指令。
值得一提的是,通过更改服务节点的配置信息更改服务节点的工作模式,使得更改工作模式的操作更为简单。
以下对管理节点确定第一服务节点是否测试成功的方法进行举例说明。
方法1:反馈第一服务节点执行任务产生的执行参数;获取运维人员输入的测试结果指示信息;测试结果指示信息指示测试是否成功;若确定测试结果指示信息指示测试成功,则确定第一服务节点测试成功;若确定测试结果指示信息指示测试失败,则确定第一服务节点测试失败。
方法2:获取第一服务节点执行任务产生的执行参数;判断执行参数是否符合预设要求;若确定是,确定第一服务节点测试成功;若确定不是,确定第一服务节点测试失败。
需要说明的是,本领域技术人员可以理解,管理节点记录的执行参数可以第一服务节点执行任务产生的任意参数,实际应用中,可以根据项目需求设置,预设要求可以根据设置的执行参数设置,本实施方式不做限制。
例如,若执行参数包括第一指示信息,和/或,第二指示信息;其中,第一指示信息指示任务执行成功的次数,第二指示信息指示执行任务所消耗的时间。预设要求可以是任务执行成功的次数大于第一预设值,和/或,执行任务所消耗的时间小于第二预设值。其中,第一预设值和第二预设值可以根据任务的实际情况需要设置,例如,第一预设值可以是任意正整数,如1-5中的任意整数,第二预设值可以是大于0的任意时间长度,例如,300ms等。
值得一提的是,管理节点可以基于执行参数自行判断是否上线第一服务节点,降低了运维人员的工作量,减少了Quartz架构的运维成本。
需要说明的是,以上仅为举例说明,并不对本发明的技术方案构成限定。
与现有技术相比,本实施方式中提供的服务上线方法,将待测试的服务节点部署在生产环境中,使得服务节点可以在生产环境下进行测试。并且,通过在Quartz架构的数据库中设置两个不同的行级锁,生产模式的服务节点和调试模式的服务节点可以通过抢占不同的锁来拉取任务,使得服务节点的运行不会影响生产环境中老版本的服务节点的运行。相比现有技术,由于服务节点在通过生产环境下的测试后,才切换至生产模式,投入使用,这可以避免在服务节点无法在生产环境下正常运行的情况下,将该服务节点上线至生产环境,导致任务丢失的问题。
本发明的第二实施方式涉及一种服务上线方法,本实施方式在第一实施方式的基础上做了进一步改进,具体改进之处为:在将第一服务节点的工作模式配置为生产模式后,增加了一些其他相关步骤。
具体的说,如图3所示,在本实施方式中,包含步骤201至步骤204,其中,步骤201和步骤202分别与第一实施方式中的步骤101和步骤102大致相同,此处不再赘述。下面主要介绍不同之处:
步骤201:将部署在生产环境中的待测试的第一服务节点的工作模式配置为调试模式。
步骤202:在检测到上线指令后,将第一服务节点的工作模式配置为生产模式。
步骤203:在确定第一服务节点调取的任务已执行完成后,重启第一服务节点。
具体的说,在第一服务节点调取的任务未完成的情况下进行重启,可能会出现任务丢失的情况。为避免任务丢失的情况,管理节点在确定第一服务节点调取的任务已执行完成后,再对第一服务节点进行重启。对第一服务节点进行重启,以使更新后的配置信息生效,使得第一服务节点在生产模式下工作。
需要说明的是,本领域技术人员可以理解,实际应用中,可以根据需要设置重启步骤,本实施方式中,重启的目的在于使配置生效,若实际应用中,技术人员通过其他方式使配置生效,则可以不执行步骤203,或者,将步骤203替换为其他使配置生效的方式。
步骤204:确定生产环境中与第一服务节点对应的第二服务节点;将第二服务节点下线。
具体的说,为避免同一服务长期存在不同版本的服务节点,在第一服务节点上线成功后,在已上线的服务节点中,查找是否存在该第一服务节点的老版本(即第二服务节点),若确定存在,则将老版本的服务节点下线。
值得一提的是,在确定新上线的服务节点稳定性符合要求后,及时下线老版本的服务节点,可以避免同一服务存在多个版本抢占任务的情况。
在一个实施例中,将第二服务节点下线之前,管理节点监控第一服务节点的运行状态;根据监控结果,确定第一服务节点正常运行。具体的说,管理节点在上线第一服务节点后,先让第一服务节点和第二服务节点同时运行一段时间,以免第一服务节点出现不适用于生产模式或其他情况,需要回退至老版本时,老版本丢失的情况。
本实施方式中,通过对Quartz框架源码进行调整,以使得Quartz服务节点可以呈现为两种工作模式。一种是生产模式,一种为调试模式。生产模式的Quartz服务节点正常从数据库取任务并执行,具体过程可参考现有的Quratz服务取任务过程。调试模式的Quartz服务节点也可以能从数据库中取任务,但是并不会通过抢占数据库中属于生产模式的行级锁。基于这样的分布式调度灰度上线方案,在可靠性要求高的情况下,先在生产环境中将新版本的Quartz服务部署为调试模式。在对新版本的Quartz服务充分测试之后,进行模式切换,将调试模式切换到生产模式。以此类推,将其他调试模式的Quartz服务进行发布、测试、切换,从而滚动上线,等系统稳定之后,将老版本的Quartz服务下线。
假设,Quartz架构的架构示意图如图4所示,Quartz架构中包括处于生产模式的服务节点和第一服务节点。处于生产模式的服务节点包括服务节点A301、服务节点B302和服务节点C303,处于调试模式的服务节点(第一服务节点)包括服务节点D304、服务节点E305和服务节点F306。数据库307中存储有任务a、任务b、任务c和任务d。因此,当前处于生产模式的Quartz服务节点有三个,均为版本1.0,本次上线目标为上线三个版本为2.0的Quartz服务节点(即服务节点D304、服务节点E305和服务节点F306)。采用本实施方式所提供的方法,首先可以把待上线的2.0版本的Quartz服务节点配置成调试模式,并部署到生产环境。进入到调试模式后,调试模式的Quartz服务节点调度的任务依然可以被生产模式的Quartz服务节点所执行。
在一个例子中,调试过程的具体流程主要包括如下步骤:
步骤1001:调度器调取线程。
步骤1002:获取待触发的触发器(trigger);其包括子步骤10021至子步骤10024。
子步骤10021:通过数据库锁表(QRTZ_LOCKS)中的TRIGGER_ACCESS行加锁;
子步骤10022:读取触发器对应的任务的静态信息(JobDetail);
子步骤10023:读取trigger表中触发器信息并标记为“已获取”;
子步骤10024:提交(commit)事务,释放TRIGGER_ACCESS锁。
步骤1003:触发trigger。其包括子步骤10031至子步骤10036。
子步骤10031:数据库QRTZ_LOCKS表STATE_ACCESS行加锁;
子步骤10032:确认trigger的状态;
子步骤10033:读取trigger的JobDetail信息;
子步骤10034:读取trigger的时间点集合信息(Calendar);
子步骤10035:更新trigger信息;
子步骤10036:commit事务,释放STATE_ACCESS锁。
其中,为增加调试模式,可以在数据库QRTZ_LOCK中增加两条记录,即增加两把锁,一把锁可以是TIGGER_ACCESS锁,另一把锁可以是STATE_ACCESS锁。当Quartz服务节点处于调试模式的时候,就去数据库获取这两把锁,分别进行获取trigger,执行trigger的任务。这样生产模式和调试模式在获取锁的步骤时,就可以各自获取各自的锁,不产生影响。所以在生产模式下触发的任务,在调试模式下依然可以触发。但是生产模式的Quartz服务之间不能互相抢占,因为使用的是同一把锁。
在处于调试模式的Quartz服务节点执行任务的过程中,对调试模式的服务节点进行充分的测试。测试通过后,将调试模式的Quartz服务节点的配置切换成生产模式,并上线。这个时候切到生产模式的Quartz服务节点又回去抢占生产模式的锁。故新切换为生成模式的Quartz服务节点不会和原有的Quartz服务节点互相影响,不会重复执行任务。可选择的,在所有调试模式的Quartz服务节点都切换成生产模式之后,并下线原有的生产模式的服务节点。上述过程中,由于调试模式和生产模式均可调度任务,不会应该处于调试模式的第一服务节点出现故障而导致任务丢失。
需要说明的是,以上仅为举例说明,并不对本发明的技术方案构成限定。
与现有技术相比,本实施方式中提供的服务上线方法,将待测试的服务节点部署在生产环境中,使得服务节点可以在生产环境下进行测试。并且,通过在Quartz架构的数据库中设置两个不同的行级锁,生产模式的服务节点和调试模式的服务节点可以通过抢占不同的锁来拉取任务,使得服务节点的运行不会影响生产环境中老版本的服务节点的运行。相比现有技术,由于服务节点在通过生产环境下的测试后,才切换至生产模式,投入使用,这可以避免在服务节点无法在生产环境下正常运行的情况下,将该服务节点上线至生产环境,导致任务丢失的问题。除此之外,对第一服务节点进行重启,使得第一服务节点的配置信息可以及时生效。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明的第三实施方式涉及一种任务调度引擎Quartz架构的服务上线装置,Quartz架构的数据库中存储有第一行级锁和第二行级锁,第一行级锁与第二行级锁不同。如图5所示,服务上线装置包括:第一配置模块401,用于将部署在生产环境中的待测试的第一服务节点的工作模式配置为调试模式;其中,处于调试模式的服务节点通过抢占第二行级锁拉取Quartz架构中的任务;第二配置模块402,用于在检测到上线指令后,将第一服务节点的工作模式配置为生产模式;其中,处于生产模式的服务节点通过抢占第一行级锁拉取Quartz架构中的任务。
在一个实施例中,服务上线装置还包括:重启模块,用于在第二配置模块将第一服务节点的工作模式配置为生产模式之后,在确定第一服务节点调取的任务已执行完成后,重启第一服务节点。
在一个实施例中,服务上线装置还包括:下线模块,用于在将第一服务节点的工作模式配置为生产模式之后,确定生产环境中与第一服务节点对应的第二服务节点;其中,第二服务节点为第一服务节点的上一版本的服务节点;将第二服务节点下线。
不难发现,本实施方式为与第一实施方式相对应的系统实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本发明的第三实施方式涉及一种电子设备,如图6所示,包括:至少一个处理器501;以及,与至少一个处理器501通信连接的存储器502;其中,存储器502存储有可被至少一个处理器501执行的指令,指令被至少一个处理器501执行,以使至少一个处理器501能够执行如上述实施方式提及的服务上线方法。
该电子设备包括:一个或多个处理器501以及存储器502,图6中以一个处理器501为例。处理器501、存储器502可以通过总线或者其他方式连接,图6中以通过总线连接为例。存储器502作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器501通过运行存储在存储器502中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述服务升级方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施方式中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器502中,当被一个或者多个处理器501执行时,执行上述任意方法实施方式中的服务升级方法。
上述产品可执行本申请实施方式所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施方式中详尽描述的技术细节,可参见本申请实施方式所提供的方法。
本发明的第五实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (10)
1.一种服务上线方法,其特征在于,应用于任务调度引擎Quartz架构的管理节点,Quartz架构的数据库中存储有第一行级锁和第二行级锁,所述服务上线方法包括:
将部署在生产环境中的待测试的第一服务节点的工作模式配置为调试模式;其中,处于调试模式的服务节点通过抢占所述第二行级锁拉取所述Quartz架构中的任务;
在检测到上线指令后,将所述第一服务节点的工作模式配置为生产模式;其中,处于生产模式的服务节点通过抢占所述第一行级锁拉取所述Quartz架构中的任务。
2.根据权利要求1所述的服务上线方法,其特征在于,所述上线指令在确定所述第一服务节点测试成功后被触发,用于指示更新所述第一服务节点的工作模式。
3.根据权利要求1所述的服务上线方法,其特征在于,在所述将所述第一服务节点的工作模式配置为生产模式之后,所述服务上线方法还包括:
在确定所述第一服务节点调取的任务已执行完成后,重启所述第一服务节点。
4.根据权利要求1所述的服务上线方法,其特征在于,在所述将所述第一服务节点的工作模式配置为生产模式之后,所述服务上线方法还包括:
确定所述生产环境中与所述第一服务节点对应的第二服务节点;其中,所述第二服务节点为所述第一服务节点的上一版本的服务节点;
将所述第二服务节点下线。
5.根据权利要求4所述的服务上线方法,其特征在于,在所述将所述第一服务节点的工作模式配置为生产模式之后,所述将所述第二服务节点下线之前,所述服务上线方法还包括:
监控所述第一服务节点的运行状态;
根据监控结果,确定所述第一服务节点正常运行。
6.一种任务调度引擎Quartz架构的服务上线装置,其特征在于,Quartz架构的数据库中存储有第一行级锁和第二行级锁,所述服务上线装置包括:
第一配置模块,用于将部署在生产环境中的待测试的第一服务节点的工作模式配置为调试模式;其中,处于调试模式的服务节点通过抢占所述第二行级锁拉取所述Quartz架构中的任务;
第二配置模块,用于在检测到上线指令后,将所述第一服务节点的工作模式配置为生产模式;其中,处于生产模式的服务节点通过抢占所述第一行级锁拉取所述Quartz架构中的任务。
7.根据权利要求6所述的任务调度引擎Quartz架构的服务上线装置,其特征在于,所述服务上线装置还包括:
重启模块,用于在所述第二配置模块将所述第一服务节点的工作模式配置为生产模式之后,在确定所述第一服务节点调取的任务已执行完成后,重启所述第一服务节点。
8.根据权利要求7所述的任务调度引擎Quartz架构的服务上线装置,其特征在于,所述服务上线装置还包括:
下线模块,用于在所述将所述第一服务节点的工作模式配置为生产模式之后,确定所述生产环境中与所述第一服务节点对应的第二服务节点;其中,所述第二服务节点为所述第一服务节点的上一版本的服务节点;将所述第二服务节点下线。
9.一种电子设备,其特征在于,包括:至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至5中任一项所述的服务上线方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的服务上线方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010342353.5A CN111538738B (zh) | 2020-04-27 | 2020-04-27 | 服务升级方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010342353.5A CN111538738B (zh) | 2020-04-27 | 2020-04-27 | 服务升级方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111538738A CN111538738A (zh) | 2020-08-14 |
CN111538738B true CN111538738B (zh) | 2023-04-14 |
Family
ID=71973045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010342353.5A Active CN111538738B (zh) | 2020-04-27 | 2020-04-27 | 服务升级方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111538738B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113485850A (zh) * | 2021-04-25 | 2021-10-08 | 北京思特奇信息技术股份有限公司 | 一种分布式文件系统的服务配置方法和配置系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1682188A (zh) * | 2002-09-23 | 2005-10-12 | 英特尔公司 | 数据访问控制 |
CN101932999A (zh) * | 2007-12-20 | 2010-12-29 | 汇丰技术股份有限公司 | 用于并行开发和部署项目的自动方法和系统 |
CN102521009A (zh) * | 2010-10-20 | 2012-06-27 | 微软公司 | 创建并部署服务准备完毕虚拟硬盘 |
CN103765813A (zh) * | 2011-08-22 | 2014-04-30 | Lg电子株式会社 | 在线系统和使用其的方法 |
CN110442349A (zh) * | 2019-08-01 | 2019-11-12 | 北京百度网讯科技有限公司 | 用于服务扩容的方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7020697B1 (en) * | 1999-10-01 | 2006-03-28 | Accenture Llp | Architectures for netcentric computing systems |
US9639448B2 (en) * | 2013-06-27 | 2017-05-02 | Sap Se | Multi-version systems for zero downtime upgrades |
US9542277B2 (en) * | 2014-09-30 | 2017-01-10 | International Business Machines Corporation | High availability protection for asynchronous disaster recovery |
US10261885B2 (en) * | 2016-11-02 | 2019-04-16 | Servicenow, Inc. | Debug event handling |
US9983982B1 (en) * | 2017-01-04 | 2018-05-29 | Visa International Service Association | Testing software code in a production environment |
US11137998B2 (en) * | 2018-10-08 | 2021-10-05 | Ebay Inc. | Dependency lock in CICD pipelines |
-
2020
- 2020-04-27 CN CN202010342353.5A patent/CN111538738B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1682188A (zh) * | 2002-09-23 | 2005-10-12 | 英特尔公司 | 数据访问控制 |
CN101932999A (zh) * | 2007-12-20 | 2010-12-29 | 汇丰技术股份有限公司 | 用于并行开发和部署项目的自动方法和系统 |
CN102521009A (zh) * | 2010-10-20 | 2012-06-27 | 微软公司 | 创建并部署服务准备完毕虚拟硬盘 |
CN103765813A (zh) * | 2011-08-22 | 2014-04-30 | Lg电子株式会社 | 在线系统和使用其的方法 |
CN110442349A (zh) * | 2019-08-01 | 2019-11-12 | 北京百度网讯科技有限公司 | 用于服务扩容的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111538738A (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3643049B1 (en) | Edge devices and associated networks utilising microservices | |
CN102622298B (zh) | 一种软件测试系统及方法 | |
CN107660289B (zh) | 自动网络控制 | |
US9485151B2 (en) | Centralized system management on endpoints of a distributed data processing system | |
US9189317B1 (en) | Software sustaining system | |
US9483314B2 (en) | Systems and methods for fault tolerant batch processing in a virtual environment | |
EP2972824B1 (en) | Computer system using in-service software upgrade | |
CN113569987A (zh) | 模型训练方法和装置 | |
US11550615B2 (en) | Kubernetes resource policy enforcement | |
CN109144701A (zh) | 一种任务流管理方法、装置、设备及系统 | |
US10498817B1 (en) | Performance tuning in distributed computing systems | |
CN106657167A (zh) | 管理服务器、服务器集群、以及管理方法 | |
US11822423B2 (en) | Structured software delivery and operation automation | |
US7673178B2 (en) | Break and optional hold on failure | |
CN110569113A (zh) | 分布式任务的调度方法及系统、计算机可读存储介质 | |
CN111258591A (zh) | 程序部署任务执行方法、装置、计算机设备和存储介质 | |
CN111538738B (zh) | 服务升级方法、装置、电子设备及存储介质 | |
CN111679888A (zh) | 一种代理容器的部署方法及装置 | |
Li et al. | Adopting autonomic computing capabilities in existing large-scale systems: An industrial experience report | |
CN113726553A (zh) | 一种节点故障恢复方法、装置、电子设备及可读存储介质 | |
CN110162312B (zh) | 一种基于IML的BeeGFS配置方法与装置 | |
US10243793B1 (en) | Modular system framework for software network function automation | |
EP3993353A2 (en) | System and method for managing clusters in an edge network | |
CN115437766A (zh) | 一种任务处理方法和装置 | |
US20240061708A1 (en) | Controller for computing environment frameworks |
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 |