CN114356533B - 微服务无感知发布系统、方法、电子设备及存储介质 - Google Patents

微服务无感知发布系统、方法、电子设备及存储介质 Download PDF

Info

Publication number
CN114356533B
CN114356533B CN202210250067.5A CN202210250067A CN114356533B CN 114356533 B CN114356533 B CN 114356533B CN 202210250067 A CN202210250067 A CN 202210250067A CN 114356533 B CN114356533 B CN 114356533B
Authority
CN
China
Prior art keywords
task
block
user request
pusher
abnormal
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
CN202210250067.5A
Other languages
English (en)
Other versions
CN114356533A (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 Renke Interactive Network Technology Co Ltd
Original Assignee
Beijing Renke Interactive Network 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 Renke Interactive Network Technology Co Ltd filed Critical Beijing Renke Interactive Network Technology Co Ltd
Priority to CN202210250067.5A priority Critical patent/CN114356533B/zh
Publication of CN114356533A publication Critical patent/CN114356533A/zh
Application granted granted Critical
Publication of CN114356533B publication Critical patent/CN114356533B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了微服务无感知发布系统、方法、电子设备及存储介质,包括:任务管理器、任务执行器、任务推动器以及任务修复器;任务管理器用于获取用户请求,根据用户请求将用户请求对应的任务暂停、继续、终止或查看;任务执行器用于提供执行接口或回滚接口给任务推动器调用;任务推动器包含拦截表,用于调度任务管理器、任务执行器以及任务修复器;任务修复器用于在检测到异常中断的任务后对异常中断的任务进行动态修复。本发明通过采用任务管理器、任务执行器、任务推动器以及任务修复器使得在服务宕机或硬件环境异常导致的任务中断时仍能处理完被中断的任务,从而实现数据量大或处理流程耗时长类微服务的无感知发布。

Description

微服务无感知发布系统、方法、电子设备及存储介质
技术领域
本发明涉及计算机技术领域,具体涉及微服务无感知发布系统、方法、电子设备及存储介质。
背景技术
软件因为功能更新或漏洞修复需要不定时发布,如何保证软件服务发布过程中不影响到用户的正常使用是个难点。
目前微服务软件项目中使用到的微服务无感知发布方式多数为多节点逐个替换,每个节点停机不影响客户使用,每个节点停机之前需要如下几个步骤:
1、要确保不会再有新的请求进来,所以需要设置一个流量挡板,将流量路由到其他正常的节点。
2、保证正常处理已进来的请求线程,设置一个延迟时间来延迟关闭服务进程。
3、如果涉及到注册中心,则需要在第一步结束后注销注册中心。
4、停止项目中的定时任务,停止线程池,关闭其他需要关闭的资源。
上述方案适用场景有局限性,只能适用于同步请求且业务执行时间比较短的服务场景,但是针对于一些异步请求并且执行周期比较长的服务场景,仍不能解决。
综上,目前亟需一种微服务无感知发布系统,用于解决上述现有技术存在的问题。
发明内容
由于现有方法存在上述问题,本发明提出微服务无感知发布系统、方法、电子设备及存储介质。
第一方面,本发明提供了微服务无感知发布系统,包括:任务管理器、任务执行器、任务推动器以及任务修复器;
所述任务管理器用于获取用户请求,根据所述用户请求将所述用户请求对应的任务暂停、继续、终止或查看;
所述任务执行器用于提供执行接口或回滚接口给所述任务推动器调用;
所述任务推动器包含拦截表,用于调度所述任务管理器、所述任务执行器以及所述任务修复器;
所述任务修复器用于在检测到异常中断的任务后对所述异常中断的任务进行动态修复。
进一步地,所述任务管理器具体用于将所述用户请求发送至所述任务推动器以使所述任务推动器根据所述用户请求修改所述用户请求对应的任务的任务状态以及所述拦截表。
进一步地,所述任务执行器包括:任务块、回滚块以及任务执行上下文;
所述任务块由任务切割后得到;所述任务块与所述回滚块一一对应;
所述回滚块用于在所述任务块异常中断时,处理所述任务块对应的回滚内容;
所述任务执行上下文用于连接任意两个相邻的任务块,在任务中断时通过所述任务修复器自动拉起。
进一步地,所述任务推动器具体用于获取当前任务块,根据所述拦截表判断当前任务块对应的任务是否继续执行,若是,则更新任务状态,缓存当前任务块对应的任务执行上下文并推动当前任务块执行,在执行完当前任务块后获取下一个任务块。
进一步地,所述任务修复器具体用于获取当前任务的任务创建时间以及任务活跃时间,根据所述任务创建时间以及所述任务活跃时间判断当前任务对否异常,若异常,则将当前任务推送到异常队列中。
进一步地,所述任务修复器还用于监听所述异常队列的队列数据,判断异常队列中的异常任务是否达到重试次数阈值,若达到,则通过所述任务管理器终止所述异常任务。
进一步地,所述任务修复器还用于获取所述异常队列中异常任务的任务标识,根据所述任务标识确定所述异常任务对应的任务执行上下文,根据所述任务执行上下文确定所述异常任务的任务状态,通过所述任务推动器执行所述任务状态对应的回滚块以及任务块。
第二方面,本发明提供了一种基于上述第一方面的微服务无感知发布的方法,包括:
通过任务管理器获取用户请求,根据所述用户请求将所述用户请求对应的任务暂停、继续、终止或查看;
通过任务推动器调用任务执行器的执行接口或回滚接口以使所述任务执行器执行所述用户请求对应的任务;
通过任务修复器定时检测所述用户请求对应的任务是否异常中断,在确定所述用户请求对应的任务异常中断后对所述用户请求对应的任务进行动态修复。
第三方面,本发明提供了一种微服务无感知发布的装置,包括:
获取模块,用于获取用户请求,根据所述用户请求将所述用户请求对应的任务暂停、继续、终止或查看;
处理模块,用于执行所述用户请求对应的任务,定时检测所述用户请求对应的任务是否异常中断,在确定所述用户请求对应的任务异常中断后对所述用户请求对应的任务进行动态修复。
第四方面,本发明还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第二方面所述的微服务无感知发布的方法。
第五方面,本发明还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第二方面所述的微服务无感知发布的方法。
由上述技术方案可知,本发明提供的微服务无感知发布系统、方法、电子设备及存储介质,通过采用任务管理器、任务执行器、任务推动器以及任务修复器使得在服务宕机或硬件环境异常导致的任务中断时仍能处理完被中断的任务,不依赖注册中心或者网关的提前下线,随时可以服务停机,从而实现数据量大或处理流程耗时长类微服务的无感知发布。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1为本发明提供的微服务无感知发布系统的结构框图;
图2为本发明提供的任务管理器操作界面的示意图;
图3为本发明提供的微服务无感知发布的方法的流程示意图;
图4为本发明提供的微服务无感知发布的装置的结构示意图;
图5为本发明提供的电子设备的结构示意图。
具体实施方式
下面结合附图,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
图1为本发明实施例提供的一种微服务无感知发布系统的示意图,该系统包括:任务管理器100、任务执行器200、任务推动器300以及任务修复器400。
需要说明的是,在微服务发布过程中正在执行的任务会被迫中断,通过本发明实施例中任务管理器、任务执行器、任务推动器以及任务修复器对被迫中断的任务及时恢复,从而实现微服务的无感知发布。
具体的,任务管理器100用于获取用户请求,根据用户请求将用户请求对应的任务暂停、继续、终止或查看。
本发明实施例中,任务管理器用于管理所有的任务,比如任务的暂停、继续、终止、查看等。
举例来说,一个任务可以为导入数据、导出数据等。
在一种可能的实施方式中,任务管理器获取用户发起的任务暂停请求,任务管理器将任务暂停请求发送至任务推动器,以使任务推动器暂停任务暂停请求对应的任务。
本发明实施例中,将任务切割成多个任务块,每一个任务块都可以单独执行。
举例来说,当前任务执行到任务块C,那么任务推动器会等待任务块C执行完毕后,将当前任务的任务状态设置为暂停状态,并且将任务暂停请求对应的任务加入到拦截表中,以使任务暂停请求对应的任务被拦截,从而不再继续执行。
在一种可能的实施方式中,任务管理器获取用户发起的任务继续请求,任务管理器将任务继续请求发送至任务推动器,以使任务推动器继续执行任务继续请求对应的任务,任务推动器将拦截表中任务继续请求对应的任务删除,并且推动任务继续请求对应的任务继续执行。
在一种可能的实施方式中,任务管理器获取用户发起的任务终止请求,任务管理器将任务终止请求发送至任务推动器,以使任务推动器终止任务终止请求对应的任务。
举例来说,如果任务块A正在执行中,当任务块A执行完毕时,会对任务进行拦截,并且不存储到拦截表中,如果当前任务处于暂停状态,那么修改任务状态为终止状态,并且将任务从拦截表中删除。
进一步地,图2为本发明实施例提供的任务管理器操作界面的示意图。
从图上可以看出,任务列表中从左到右依次对应用户发起的任务继续请求、任务暂停请求、任务终止请求等。
举例来说,当前任务执行时间过长,且当前任务会给服务器带来危害比如频繁查询数据库、频繁操作缓存等,此时向任务管理器发起任务暂停请求或任务终止请求,对当前任务进行暂停或终止。
上述方案,通过任务管理器监控任务状态,实现了任务可以及时暂停、继续等,降低了故障风险。
进一步地,任务执行器200用于提供执行接口或回滚接口给任务推动器调用。
具体的,任务执行器包括:任务块、回滚块以及任务执行上下文。
需要说明的是,任务块由任务切割后得到;任务块与回滚块一一对应。
本发明实施例中,任务块是由任务切割出来的分块,每一个任务块都可以单独执行。
举例来说,执行完一个任务需要30分钟,将此任务切割成10个任务块,每个任务块需要三分钟。第一个任务块执行数据的校验,第二个任务块执行数据的分类,第三个任务块执行数据的去重等。
本发明实施例中,每个任务块绑定一个回滚块。
进一步地,回滚块用于在任务块异常中断时,处理任务块对应的回滚内容。
举例来说,当前正在执行任务块4,执行任务块4异常中断,此时,回滚块将任务块4已经执行的部分删去。
任务执行上下文用于连接任意两个相邻的任务块,在任务中断时通过任务修复器自动拉起。
本发明实施例中,通过任务执行上下文来贯穿所有的任务块。
需要说明的是,任务执行上下文在缓存的同时存储至数据库中。
上述方案,通过回滚块处理任务块对应的回滚内容,使得系统不会因为服务停机或者硬件故障产生脏数据,保证了数据一致性。
进一步地,任务推动器300包含拦截表,用于调度任务管理器、任务执行器以及任务修复器。
任务推动器具体用于获取当前任务块,根据拦截表判断当前任务块对应的任务是否继续执行,若是,则更新任务状态,缓存当前任务块对应的任务执行上下文并推动当前任务块执行,在执行完当前任务块后获取下一个任务块。
进一步地,任务修复器400用于在检测到异常中断的任务后对异常中断的任务进行动态修复。
任务修复器具体用于获取当前任务的任务创建时间以及任务活跃时间,根据任务创建时间以及任务活跃时间判断当前任务对否异常。
需要说明的是,任务活跃时间可以是任务级别的,也可以是任务块级别的。
本发明实施例中,每个任务在执行任务块的前后都进行一次任务活跃时间的更新。
举例来说,任务活跃时间是任务级别的,任务活跃时间为30分钟,也就是说,执行该任务不超过30分钟,根据当前时刻以及任务创建时间判断执行该任务已经31分钟,超过了任务活跃时间,此时确定当前任务发生异常,若异常则将当前任务推送到异常队列中。
上述方案通过任务活跃时间、任务创建时间来检测异常任务,提高了效率,实现了检测异常任务的自动化。
本发明实施例中,将异常任务推送到异常队列中,使得多个服务器节点可以修复该异常任务,提高了异常修复的效率。
在一种可能的实施方式中,任务修复器定时检测是否存在异常任务。
举例来说,任务修复器每30秒根据多个任务的任务活跃时间、任务创建时间来检测是否存在异常任务。
进一步地,任务修复器还用于监听异常队列的队列数据,判断异常队列中的异常任务是否达到重试次数阈值,若达到,则通过任务管理器终止异常任务。
本发明实施例中,任务修复器监听队列数据,再次分析任务活跃时间,确定是否继续执行。
进一步地,判断异常队列中的异常任务是否达到最大重试次数,如果达到最大重试次数,可以终止该任务。
上述方案,通过设定重试次数阈值避免了执行过程中可能存在漏洞的异常任务不断地被修复,节省了系统资源,降低了能耗。
任务修复器还用于获取异常队列中异常任务的任务标识,根据任务标识确定异常任务对应的任务执行上下文,根据任务执行上下文确定异常任务的任务状态,通过任务推动器执行任务状态对应的回滚块以及任务块。
本发明实施例中,任务修复器根据异常任务的任务标识抓取缓存中的任务执行上下文,根据任务执行上下文确定任务状态,执行异常任务对应的回滚块。
进一步地,在执行异常任务对应的回滚块完成后执行异常任务对应的任务块。
上述方案,通过采用任务管理器、任务执行器、任务推动器以及任务修复器使得在服务宕机或硬件环境异常导致的任务中断时仍能处理完被中断的任务,不依赖注册中心或者网关的提前下线,随时可以服务停机,从而实现数据量大或处理流程耗时长类微服务的无感知发布。
基于上述的微服务无感知发布系统,图3示例性的示出了本发明实施例提供的微服务无感知发布的方法的流程。该流程可以由上述微服务无感知发布系统执行。
如图3所示,该流程具体包括:
步骤301,通过任务管理器获取用户请求,根据用户请求将用户请求对应的任务暂停、继续、终止或查看。
本发明实施例中,任务管理器用于管理所有的任务,比如任务的暂停、继续、终止、查看等。
举例来说,一个任务可以为导入数据、导出数据等。
在一种可能的实施方式中,任务管理器获取用户发起的任务暂停请求,任务管理器将任务暂停请求发送至任务推动器,以使任务推动器暂停任务暂停请求对应的任务。
本发明实施例中,将任务切割成多个任务块,每一个任务块都可以单独执行。
举例来说,当前任务执行到任务块1,那么任务推动器会等待任务块1执行完毕后,将当前任务的任务状态设置为暂停状态,并且将任务暂停请求对应的任务加入到拦截表中,以使任务暂停请求对应的任务被拦截,从而不再继续执行。
步骤302,通过任务推动器调用任务执行器的执行接口或回滚接口以使任务执行器执行用户请求对应的任务。
具体的,任务执行器包括:任务块、回滚块以及任务执行上下文。
需要说明的是,任务块由任务切割后得到;任务块与回滚块一一对应。
本发明实施例中,任务块是由任务切割出来的分块,每一个任务块都可以单独执行。
进一步地,回滚块用于在任务块异常中断时,处理任务块对应的回滚内容。
举例来说,当前正在执行任务块2,执行任务块2异常中断,此时,回滚块将任务块2已经执行的部分删去。
需要说明的是,任务执行上下文包含任务状态。
步骤303,通过任务修复器定时检测用户请求对应的任务是否异常中断,在确定用户请求对应的任务异常中断后对用户请求对应的任务进行动态修复。
具体的,获取当前任务的任务创建时间以及任务活跃时间,根据任务创建时间以及任务活跃时间判断当前任务对否异常。
需要说明的是,任务活跃时间可以是任务级别的,也可以是任务块级别的。
在一种可能的实施方式中,每个任务在执行任务块的前后都进行一次任务活跃时间的更新。
举例来说,任务活跃时间是任务级别的,任务活跃时间为20分钟,也就是说,执行该任务不超过20分钟,根据当前时刻以及任务创建时间判断执行该任务已经21分钟,超过了任务活跃时间,此时确定当前任务发生异常,若异常则将当前任务推送到异常队列中。
本发明实施例中,将异常任务推送到异常队列中,使得多个服务器节点可以修复该异常任务,保证了任务的幂等性,提高了资源利用率,提高了异常修复的效率。
在一种可能的实施方式中,任务修复器定时检测是否存在异常任务。
举例来说,任务修复器每10秒根据多个任务的任务活跃时间、任务创建时间来检测是否存在异常任务。
进一步地,监听异常队列的队列数据,判断异常队列中的异常任务是否达到重试次数阈值,若达到,则通过任务管理器终止异常任务。
本发明实施例中,任务修复器监听队列数据,再次分析任务活跃时间,确定是否继续执行。
进一步地,判断异常队列中的异常任务是否达到最大重试次数,如果达到最大重试次数,可以终止该任务。
上述方案,通过设定重试次数阈值避免了执行过程中可能存在漏洞的异常任务不断地被修复,节省了系统资源,降低了能耗。
进一步地,获取异常队列中异常任务的任务标识,根据任务标识确定异常任务对应的任务执行上下文,根据任务执行上下文确定异常任务的任务状态,通过任务推动器执行任务状态对应的回滚块以及任务块。
本发明实施例中,任务修复器根据异常任务的任务标识抓取缓存中的任务执行上下文,根据任务执行上下文确定任务状态,执行异常任务对应的回滚块。
进一步地,在执行异常任务对应的回滚块完成后执行异常任务对应的任务块。
上述方案,通过任务修复器定时检测用户请求对应的任务是否异常中断并在确定用户请求对应的任务异常中断后对用户请求对应的任务进行动态修复使得在服务宕机或硬件环境异常导致的任务中断时仍能处理完被中断的任务,不依赖注册中心或者网关的提前下线,随时可以服务停机,从而实现微服务的无感知发布。
基于同一发明构思,图4示例性的示出了本发明实施例提供的一种微服务无感知发布的装置,该装置可以为一种微服务无感知发布的方法的流程。
所述装置,包括:
获取模块401,用于获取用户请求,根据所述用户请求将所述用户请求对应的任务暂停、继续、终止或查看;
处理模块402,用于执行所述用户请求对应的任务,定时检测所述用户请求对应的任务是否异常中断,在确定所述用户请求对应的任务异常中断后对所述用户请求对应的任务进行动态修复。
基于相同的发明构思,本发明又一实施例提供了一种电子设备,参见图5,所述电子设备具体包括如下内容:处理器501、存储器502、通信接口503和通信总线504;
其中,所述处理器501、存储器502、通信接口503通过所述通信总线504完成相互间的通信;所述通信接口503用于实现各设备之间的信息传输;
所述处理器501用于调用所述存储器502中的计算机程序,所述处理器执行所述计算机程序时实现上述微服务无感知发布的方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:通过任务管理器获取用户请求,根据所述用户请求将所述用户请求对应的任务暂停、继续、终止或查看;通过任务推动器调用任务执行器的执行接口或回滚接口以使所述任务执行器执行所述用户请求对应的任务;通过任务修复器定时检测所述用户请求对应的任务是否异常中断,在确定所述用户请求对应的任务异常中断后对所述用户请求对应的任务进行动态修复。
基于相同的发明构思,本发明又一实施例提供了一种非暂态计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述微服务无感知发布的方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:通过任务管理器获取用户请求,根据所述用户请求将所述用户请求对应的任务暂停、继续、终止或查看;通过任务推动器调用任务执行器的执行接口或回滚接口以使所述任务执行器执行所述用户请求对应的任务;通过任务修复器定时检测所述用户请求对应的任务是否异常中断,在确定所述用户请求对应的任务异常中断后对所述用户请求对应的任务进行动态修复。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,微服务无感知发布系统,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,微服务无感知发布系统,或者网络设备等)执行各个实施例或者实施例的某些部分所述的微服务无感知发布的方法。
此外,在本发明中,诸如“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
此外,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
此外,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (7)

1.一种微服务无感知发布系统,其特征在于,包括:任务管理器、任务执行器、任务推动器以及任务修复器;
所述任务管理器用于获取用户请求,根据所述用户请求将所述用户请求对应的任务暂停、继续、终止或查看;
所述任务执行器用于提供执行接口或回滚接口给所述任务推动器调用;
所述任务推动器包含拦截表,用于调度所述任务管理器、所述任务执行器以及所述任务修复器;
所述任务修复器用于在检测到异常中断的任务后对所述异常中断的任务进行动态修复;
其中,所述任务执行器包括:任务块、回滚块以及任务执行上下文;
所述任务块由任务切割后得到;所述任务块与所述回滚块一一对应;
所述回滚块用于在所述任务块异常中断时,处理所述任务块对应的回滚内容;
所述任务执行上下文用于连接任意两个相邻的任务块,在任务中断时通过所述任务修复器自动拉起;
所述任务推动器具体用于获取当前任务块,根据所述拦截表判断当前任务块对应的任务是否继续执行,若是,则更新任务状态,缓存当前任务块对应的任务执行上下文并推动当前任务块执行,在执行完当前任务块后获取下一个任务块;
所述任务修复器还用于获取异常队列中异常任务的任务标识,根据所述任务标识确定所述异常任务对应的任务执行上下文,根据所述任务执行上下文确定所述异常任务的任务状态,通过所述任务推动器执行所述任务状态对应的回滚块以及任务块。
2.根据权利要求1所述的微服务无感知发布系统,其特征在于,所述任务管理器具体用于将所述用户请求发送至所述任务推动器以使所述任务推动器根据所述用户请求修改所述用户请求对应的任务的任务状态以及所述拦截表。
3.根据权利要求1所述的微服务无感知发布系统,其特征在于,所述任务修复器具体用于获取当前任务的任务创建时间以及任务活跃时间,根据所述任务创建时间以及所述任务活跃时间判断当前任务对否异常,若异常,则将当前任务推送到异常队列中。
4.根据权利要求3所述的微服务无感知发布系统,其特征在于,所述任务修复器还用于监听所述异常队列的队列数据,判断异常队列中的异常任务是否达到重试次数阈值,若达到,则通过所述任务管理器终止所述异常任务。
5.一种基于权利要求1至4任一项所述微服务无感知发布系统微服务无感知发布的方法,其特征在于,包括:
通过任务管理器获取用户请求,根据所述用户请求将所述用户请求对应的任务暂停、继续、终止或查看;
通过任务推动器调用任务执行器的执行接口或回滚接口以使所述任务执行器执行所述用户请求对应的任务;
通过任务修复器定时检测所述用户请求对应的任务是否异常中断,在确定所述用户请求对应的任务异常中断后对所述用户请求对应的任务进行动态修复;
其中,所述任务执行器包括:任务块、回滚块以及任务执行上下文;
所述任务块由任务切割后得到;所述任务块与所述回滚块一一对应;
所述回滚块用于在所述任务块异常中断时,处理所述任务块对应的回滚内容;
通过所述任务执行上下文用于连接任意两个相邻的任务块,在任务中断时通过所述任务修复器自动拉起;
通过所述任务推动器具体用于获取当前任务块,根据所述拦截表判断当前任务块对应的任务是否继续执行,若是,则更新任务状态,缓存当前任务块对应的任务执行上下文并推动当前任务块执行,在执行完当前任务块后获取下一个任务块;
通过所述任务修复器还用于获取异常队列中异常任务的任务标识,根据所述任务标识确定所述异常任务对应的任务执行上下文,根据所述任务执行上下文确定所述异常任务的任务状态,通过所述任务推动器执行所述任务状态对应的回滚块以及任务块。
6.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求5所述方法的步骤。
7.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求5所述方法的步骤。
CN202210250067.5A 2022-03-15 2022-03-15 微服务无感知发布系统、方法、电子设备及存储介质 Active CN114356533B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210250067.5A CN114356533B (zh) 2022-03-15 2022-03-15 微服务无感知发布系统、方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210250067.5A CN114356533B (zh) 2022-03-15 2022-03-15 微服务无感知发布系统、方法、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN114356533A CN114356533A (zh) 2022-04-15
CN114356533B true CN114356533B (zh) 2022-06-14

Family

ID=81095239

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210250067.5A Active CN114356533B (zh) 2022-03-15 2022-03-15 微服务无感知发布系统、方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114356533B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115866029B (zh) * 2022-11-23 2024-06-14 中国工商银行股份有限公司 微服务下线处理方法、装置、计算机设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105700937A (zh) * 2016-01-04 2016-06-22 北京百度网讯科技有限公司 多线程任务处理方法和装置
CN110618864A (zh) * 2019-09-19 2019-12-27 北京明略软件系统有限公司 一种中断任务恢复方法及装置
CN110990145A (zh) * 2019-10-31 2020-04-10 北京浪潮数据技术有限公司 一种分布式系统的后台任务处理机制及方法
CN111262797A (zh) * 2020-01-09 2020-06-09 深圳壹账通智能科技有限公司 一种文件下载方法及相关产品
CN112130892A (zh) * 2020-09-23 2020-12-25 平安科技(深圳)有限公司 产品灰度发布方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11531564B2 (en) * 2020-07-09 2022-12-20 Vmware, Inc. Executing multi-stage distributed computing operations with independent rollback workflow

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105700937A (zh) * 2016-01-04 2016-06-22 北京百度网讯科技有限公司 多线程任务处理方法和装置
CN110618864A (zh) * 2019-09-19 2019-12-27 北京明略软件系统有限公司 一种中断任务恢复方法及装置
CN110990145A (zh) * 2019-10-31 2020-04-10 北京浪潮数据技术有限公司 一种分布式系统的后台任务处理机制及方法
CN111262797A (zh) * 2020-01-09 2020-06-09 深圳壹账通智能科技有限公司 一种文件下载方法及相关产品
CN112130892A (zh) * 2020-09-23 2020-12-25 平安科技(深圳)有限公司 产品灰度发布方法、装置、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《用于IaaS控制系统的分布式工作流系统设计与实现》;蒋宜通;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20170315(第03期);全文 *

Also Published As

Publication number Publication date
CN114356533A (zh) 2022-04-15

Similar Documents

Publication Publication Date Title
US8204979B2 (en) Adaptive client/server control protocol
US9015315B2 (en) Identification and monitoring of distributed business transactions
WO2020024405A1 (zh) 基于分布式协调的测试方法、装置、服务器及存储介质
CN109656742B (zh) 一种节点异常处理方法、装置及存储介质
CN104408071A (zh) 一种基于集群管理器的分布式数据库高可用方法及系统
CN110895484A (zh) 任务调度方法及装置
CN109445927B (zh) 一种存储集群的任务管理方法及装置
WO2016045439A1 (zh) 一种vnfm容灾保护的方法、装置和nfvo、存储介质
JP2008123357A (ja) 並列計算機システム、並列計算方法および並列計算機用プログラム
CN111901422A (zh) 一种集群中节点的管理方法、系统及装置
KR101211207B1 (ko) 캐시 클라우드 구조를 이용한 캐시 시스템 및 캐싱 서비스 제공 방법
CN114356533B (zh) 微服务无感知发布系统、方法、电子设备及存储介质
CN108196940A (zh) 删除容器的方法和相关设备
CN110895483A (zh) 任务恢复方法及装置
CN109582459A (zh) 应用的托管进程进行迁移的方法及装置
CN108304296A (zh) 一种服务器监控方法、系统、设备及计算机可读存储介质
CN107729213B (zh) 一种后台任务监控方法及装置
CN117130730A (zh) 面向联邦Kubernetes集群的元数据管理方法
CN110895486A (zh) 分布式任务调度系统
CN110196749A (zh) 虚拟机的恢复方法及装置、存储介质及电子装置
CN100359865C (zh) 一种检测方法
CN113254166A (zh) 一种处理io请求的方法、存储介质和虚拟化模拟器
CN112698929A (zh) 一种信息采集方法及装置
CN104468674B (zh) 数据迁移方法及装置
CN105743696A (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