CN111796854B - 一种模块热升级的方法、装置、电子设备和可读存储介质 - Google Patents
一种模块热升级的方法、装置、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN111796854B CN111796854B CN202010637431.4A CN202010637431A CN111796854B CN 111796854 B CN111796854 B CN 111796854B CN 202010637431 A CN202010637431 A CN 202010637431A CN 111796854 B CN111796854 B CN 111796854B
- Authority
- CN
- China
- Prior art keywords
- module
- hot
- upgrade
- version
- management module
- 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
- 238000000034 method Methods 0.000 title claims abstract description 357
- 230000008569 process Effects 0.000 claims abstract description 310
- 238000012545 processing Methods 0.000 claims description 36
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及电子设备领域,尤其涉及一种模块热升级的方法、装置、电子设备和可读存储介质,所述方法包括第一模块接收版本热升级请求;其中所述第一模块包括进程组,所述进程组中的每一个进程相互独立;根据所述版本热升级请求,所述进程管理模块管理所述第一模块进程组完成热升级;其中,所述进程管理模块控制所述第一模块在热升级期间持续接收服务请求。基于本申请的技术方案实现了应用不重启时更新版本的目的,即实现了应用的热升级。
Description
技术领域
本申请涉及电子设备领域,尤其涉及一种模块热升级的方法、装置、电子设备和可读存储介质。
背景技术
目前金融电子支付已经成为了主流的消费支付方式,因此用于电子支付的收单系统的运营需求越来越高,要求收单系统各应用能够实现24小时运营,但是基于金融科技的高安全性要求,收单系统经常因为安全性或其他新功能需求而需要进程版本升级,但是收单系统的应用版本升级常用的流程一般为停止本应用外部渠道联机交易接入,处理完成存量接入的处理工作后,整体停止应用后升级应用版本,随后再升级完成后才整体启动应用,并随后开放本应用外部渠道联机交易接入。因此,基于目前的电子消费需求,对收单系统的应用实现热升级已经成为了一种急迫的需求。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:
第一方面,本申请实施例提供一种模块热升级方法,所述方法包括:
第一模块接收版本热升级请求;其中所述第一模块包括进程组,所述进程组中的每一个进程相互独立;
根据所述版本热升级请求,所述进程管理模块管理所述第一模块进程组完成热升级;其中,所述进程管理模块控制所述第一模块在热升级期间持续接收服务请求。
可选地,所述进程管理模块管理所述第一模块进程组完成热升级包括:
所述进程管理模块获取所述第一模块的进程组信息;
根据所述获取结果和预设条件,向第一模块发送第一通知消息;其中所述第一通知消息用于控制第一模块按照预设条件释放进程资源用于热升级。
可选地,所述第一通知消息用于控制第一模块按照预设条件释放进程资源用于热升级包括:
识别所述第一模块进程组中的第一类进程和第二类进程;其中所述第一类进程是任务处理未完成的进程,所述第二类进程是任务处理完成的进程;
若所述第二类进程数量不满足所述预设条件,则等待第一类进程释放资源退出进程组以完成所述第一模块的版本热升级;
若所述第二类进程数量满足所述预设条件,则控制所述第二类进程释放资源退出进程组以完成第一模块的版本热升级。
可选地,所述方法还包括:所述第一类进程和/或第二类进程退出后,所述第一模块向所述进程管理模块发送第二通知消息,所述第二通知消息用于表征进程退出结果。
可选地,所述方法还包括:
在第一模块热升级期间,所述第一模块接收到第一服务请求;
所述进程管理模块根据所述第一服务请求启动所述第一模块的第一进程,其中所述第一进程为响应所述第一服务请求的进程。
可选地,若所述第一模块在热升级前接收到第二服务请求,则在所述进程管理模块管理所述第一模块进程组完成热升级后,所述方法还包括:
判断所述第二服务请求任务是否完成,若未完成;
则所述进程管理模块检查所述第一模块进程组中的进程数量和状态是否正常;
若不正常,则所述进程管理模块根据所述第二请求启动所述第一模块的第二进程,其中所述第二进程为响应所述第二服务请求的进程。
可选地,所述第一服务请求和第二服务请求按照消息队列方式进行传输。
可选地,所述进程管理模块获取所述第一模块的进程组信息包括:
至少获取第一模块进程组中进程数量、各进程的状态和ID信息、
可选地,所述方法还包括:
所述进程管理模块还用于判断所述第一模块是否接收到热升级版本;
如果判断接收到热升级版本,则所述进程管理模块管理所述第一模块进程组完成热升级;
第二方面,本申请实施例提供了一种模块热升级装置,所述装置包括:第一模块和进程管理模块,其中第一模块包括接收单元和处理单元;其中,
所述第一模块的接收单元,用于接收版本热升级请求;其中所述第一模块包括进程组,所述进程组中的每一个进程相互独立;
所述进程管理模块,用于根据所述版本热升级请求管理所述第一模块进程组完成热升级;其中,所述进程管理模块控制所述第一模块在热升级期间持续接收服务请求;其中所述处理单元用于处理所述接收的服务请求。
可选地,所述进程管理模块具体用于:
获取所述第一模块的进程组信息;
根据所述获取结果和预设条件,向第一模块发送第一通知消息;其中所述第一通知消息用于控制第一模块按照预设条件释放进程资源用于热升级。
第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行上述模块热升级方法。
第四方面,一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述模块热升级的方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例提供的模块热升级方案,通过第一模块接收版本热升级请求;其中所述第一模块包括进程组,所述进程组中的每一个进程相互独立;根据所述版本热升级请求,所述进程管理模块管理所述第一模块进程组完成热升级;其中,所述进程管理模块控制所述第一模块在热升级期间持续接收服务请求。基于本方案,在应用版本升级更新时,由于应用模块使用进程组的方式构成多进程多活方式,并且多进程间相互隔离,对消息队列中的消息是抢占式处理,所以进程管理模块控制应用模块的部分进程下线进行升级过程中,整个应用模块仍然可以对外提供服务,由此可以实现不重启应用更新版本的目的,即实现了应用的热升级。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的收单系统的结构示意图;
图2为本申请实施例提供的一种模块热升级方法的流程示意图;
图3为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本申请实施例涉及电子设备的模块热升级技术,尤其涉及金融业务中收单系统的应用热升级技术,因此为更清楚地介绍本申请实施例,下面介绍一些可能用于实施例的金融业务定义、概念或装置:
收单业务:收单业务是指签约银行向商户提供的本外币资金结算服务。
收单系统:承接收单业务,负责接入前端渠道(POS、二维码、线上支付等)提供联机服务,并进行持卡人、商户资金处理。本申请中主要涉及联机服务部分。
发卡机构:发行银行卡或维护与卡关联的账户,并与持卡人在这两方面具有协议关系的机构。
收单机构:与商户签有协议或为持卡人提供服务,直接或间接凭交易单据(包括电子单据或纸单据)参加交换的清算会员单位。
特约商户:与收单机构签有商户协议,受理银行卡的零售商、个人、公司或其他组织,本文以下简称为商户。
收单系统的主要技术功能为处理作为收单机构角色时,处理持卡人账务和商户账务的系统。以支付交易为例,主要流程为接收前端渠道系统的请求报文,根据请求报文计算需要扣减持卡人的金额、入商户账的金额、手续费的金额,然后对相应的账务操作报文往相应的后端持卡人、商户账、手续费系统,完成整个收单联机处理流程。因此收单系统需要有这些功能:接收前端发起的请求,对请求报文进行转换,内部逻辑处理(计算持卡人、商户账、手续费金额),将内部报文转换为后端系统报文,向后端发起请求并获取后端响应结果。
目前对于收单系统,日常应用版本升级更新常用的流程一般为停止本应用外部渠道联机交易接入;处理完成存量接入的处理工作后,整体停止应用;升级应用版本;整体启动应用;开放本应用外部渠道联机交易接入。
此版本升级方案的缺点在于:
1、更新应用需对整个应用的外部渠道联机交易接入进行停止,无法持续对外服务
2.、整个版本更新的流程长,耗时长,需等待存量交易完成处理后才能整体停止应用
3.、容易影响商户的交易,如外部系统在系统停止外部渠道接入后仍发起请求,则会导致交易超时或者失败。
4.、应用启动后开放外部渠道接入的前面部分“预热”交易因应用内部需要进行数据库建链等初始化操作,容易处理时间长而出现流控的情况。
基于现有收单系统应用版本升级更新的缺陷,本申请提出了一种无须整体重启应用,不停止外部接入实时联机交易的情况下完成版本更新的方法。
下面将结合附图对本申请实施方式作进一步地详细描述。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
为使本申请的目的、技术方案和优点更加清楚,本申请实施例提供了一种收单系统的结构示意图,如图1所示,收单系统由至少一个第一模块(应用模块)101和进程管理模块102组成,图1中虚线矩形框表示收单系统,其中进程管理模块也可称之为“独立的生命周期管理守护模块”(简称为守护模块),是指使用一个独立的守护模块,对其他非守护模块中的进程进行维护管理,负责对接收单元、转换单元、处理单元、输出单元的生命周期进行管理,即负责拉起各单元中的进程、通知各单元中的进程自行结束,对单元进程死亡的监测,包括控制其它模块中的进程数量、工作状态,在版本升级过程中,守护模块通过对模块中的进程按批次进行“通知结束”(关闭)、“重新拉起”(启动)两个步骤实现版本升级。守护模块与第一模块的各单元之间的通讯方式包括但不限于信号传输通讯。在本申请实施例中可以将应用模块具化为:1011接收单元、1012输出单元、1013转换单元、1014处理单元,其中:
所述1011接收单元,用于接收前端的业务请求,其中所述业务请求包括但不限于版本升级请求和服务请求;还用于通过消息队列将业务请求发送给转换单元。
所述1012输出单元,负责从消息队列获取业务请求消息后与后端系统通讯,后端系统返回报文后,将返回报文通过消息队列返回给转换单元;
所述1013转换单元,负责业务请求报文格式与内部可处理报文格式的转换及安全校验;
所述1014处理单元,用于根据业务请求进行业务处理,具体包括负责对收单交易进行入库、更新、后端交易组合、金额计算等工作,并将后端交易请求通过消息队列发送给转换单元。
所述各单元之间相互独立并基于抢占式消息队列进行通讯,相应地每个单元都有进程数大于等于2的进程组构成,进程组内的进程对消息队列中的消息进行抢占式处理。
其中“抢占式消息队列”,是指不同单元之间的通讯使用消息队列进行传输,例如为Linux消息队列或分布式的消息队列,1个消息只能被单元中的其中1个进程独占消费,其余进程不能干预。收单系统的第一模块基于HTTP通讯协议前后端系统完成信息的接收输出。
图2示出了本申请实施例提供的一种模块热升级方法的流程示意图,所述方法应用于图1示出的收单系统,如图2所示,该方法主要可以包括:
S201、第一模块接收版本热升级请求;其中所述第一模块包括进程组,所述进程组中的每一个进程相互独立;
S202、根据所述版本热升级请求,所述进程管理模块管理所述第一模块进程组完成热升级;其中,所述进程管理模块控制所述第一模块在热升级期间持续接收服务请求。
在本申请实施例中,其中所述第一模块包括进程组,所述进程组中的每一个进程相互独立,具体是指将收单系统的应用进行应用模块(即为发明内容中的第一模块,下同)分离处理,对整个收单系统的逻辑处理流程进行切分,并进行单元化处理。每个应用模块划分为图1所示的单元,每一个单元是由包括N(N>=2)个进程的进程组构成,每个进程之间的工作独立,没有依赖关系,任何1个进程死亡均不影响其它进程工作,也不影响整个模块的工作。
在本申请可选实施例中,进一步地,所述进程管理模块管理所述第一模块进程组完成热升级包括:所述进程管理模块获取所述第一模块的进程组信息;根据所述获取结果和预设条件,向第一模块发送第一通知消息;其中所述第一通知消息用于控制第一模块按照预设条件释放进程资源用于热升级。其中所述预设条件为所述进程管理模块可按照自定义关闭第一模块进程的批次和数量,例如当获取到第一模块进程组中有10个进程,如果进程管理模块定义了按照4批次关闭10个进程,那么控制第一模块的进程按照上述定义分别在4批次次序关闭。本申请实施例的具体流程为:
步骤1、应用模块的接收单元接收到版本升级请求和升级版本文件;
步骤2、所述守护模块检测并获取该应用模块当前进程组信息,其中所述进程组信息包括当前进程组中进程ID信息,进程数量和进程状态等;
步骤3、根据获取到的应用模块的进程信息,所述守护模块按照预设条件向所述应用模块发送第一通知,所述第一通知用于通知业务模块按照预设条件结束部分进程,即所述第一通知用于控制所述应用模块按照预设条件结束满足部分进程用以实现应用模块版本升级。
在本申请可选实施例中,所述第一通知消息用于控制第一模块按照预设条件释放进程资源用于热升级具体包括:
识别所述应用模块(第一模块)进程组中的第一类进程和第二类进程;其中所述第一类进程是任务处理未完成的进程,所述第二类进程是任务处理完成的进程;若所述第二类进程数量满足所述预设条件,则控制所述第二类进程释放资源退出进程组以完成应用模块的版本热升级。
若所述第二类进程数量不满足所述预设条件,则等待第一类进程释放资源退出进程组以完成所述第一模块的版本热升级;
步骤4所述第一类进程和/或第二类进程退出后,所述应用模块向所述守护模块发送第二通知消息,所述第二通知消息用于表征进程退出结果。
需要特别说明的是,在步骤3守护模块控制应用模块进程组中的进程结束释放资源用以模块版本升级的过程中,所述应用模块的接收单元持续接收前端的业务请求,其中包括业务服务请求。
基于上述的实施例的技术方案,收单系统在应用模块版本升级时,守护模块根据实际需要,对需要进行版本升级的应用模块进行升级,由于应用模块按照逻辑流程被具化为相互分离的业务单元,业务单元使用进程组的方式构成多个进程同时运行,并且每个进程间相互隔离,业务单元对消息队列中的消息是抢占式处理,所以部分进程下线进行升级过程中,整个应用模块仍然可以对外提供服务,由此可以实现收单系统在不重启应用模块的情况下更新应用模块版本的目的,即实现了收单系统的应用模块热升级。
在本申请可选实施例中,所述模块热升级方法还包括:在第一模块热升级期间,所述第一模块接收到第一服务请求;所述进程管理模块根据所述第一服务请求启动所述第一模块的第一进程,其中所述第一进程为响应所述第一服务请求的进程。若所述第一模块在热升级前接收到第二服务请求,则在所述进程管理模块管理所述第一模块进程组完成热升级后,所述方法还包括:
判断所述第二服务请求任务是否完成,若未完成;
则所述进程管理模块检查所述第一模块进程组中的进程数量和状态是否正常;
若不正常,则所述进程管理模块根据所述第二请求启动所述第一模块的第二进程,其中所述第二进程为响应所述第二服务请求的进程
本实施例在基于上一实施例的基础上继续介绍本申请实施例方案具体为:在上述实施例在步骤3守护模块通过控制所述应用模块进程进行热升级过程中或热升级之前,所述应用模块的接收单元接收单前端服务请求,则守护模块在应用模块在结束部分进程释放资源后进一步检查目前应用模块是否完成了该服务请求任务,进而进一步检查应用模块的进程数量和状态是否正常,如果不正常,则控制启动相应的进程以完成该服务请求任务。
在可选实施例中,所述进程管理模块获取所述第一模块的进程组信息包括:至少获取第一模块进程组中进程数量、各进程的状态和ID信息、
在可选实施例中,所述进程管理模块还用于判断所述第一模块是否接收到热升级版本;如果判断接收到热升级版本,则所述进程管理模块管理所述第一模块进程组完成热升级。
在可选实施例中,当所述应用模块接收到守护模块的第一通知消息时,所述第一模块进一步判断当前任务是否可以中断,如果不可以中断,则所述第一模块在完成当前任务后再按照所述第一通知消息的释放进程资源。
基于上述实施例的模块热升级方法,收单系统可以在不停止整个应用对外服务进程升级,升级版本过程中可以正常对外服务,更适合7*24对外服务的应用服务,且版本升级过程中性能无影响。
基于图2的模块热升级方法,本申请实施例提供了一种模块热升级装置,应用于收单系统,如图1所示,所述装置包括:101第一模块和102进程管理模块,如前所述,第一模块进一步包括1011接收单元、1012输出单元、1013转换单元,1014处理单元,其中:
所述1011接收单元,用于接收版本热升级请求;其中所述第一模块包括进程组,所述进程组中的每一个进程相互独立;
所述进程管理模块,用于根据所述版本热升级请求管理所述第一模块进程组完成热升级;其中,所述进程管理模块控制所述第一模块在热升级期间持续接收服务请求,其中所述1014处理单元用于处理所述接收的服务请求。
在可选实施例中,所述进程管理模块具体用于:
获取所述第一模块的进程组信息;根据所述获取结果和预设条件,向第一模块发送第一通知消息;其中所述第一通知消息用于控制第一模块按照预设条件释放进程资源用于热升级。
可以理解的是,本实施例中的模块热升级装置的上述各模块具有实现图2中所示的实施例中的方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述各模块的功能描述具体可以参见图2中所示实施例中的方法的对应描述,在此不再赘述。
本申请实施例提供了一种电子设备,包括处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行本申请任一实施方式中所提供的模块热升级方法。
作为一个示例,图3示出了本申请实施例所适用的一种电子设备的结构示意图,如图3所示,该电子设备2000包括:处理器2001和存储器2003。其中,处理器2001和存储器2003相连,如通过总线2002相连。可选的,电子设备2000还可以包括收发器2004。需要说明的是,实际应用中收发器2004不限于一个,该电子设备2000的结构并不构成对本申请实施例的限定。
其中,处理器2001应用于本申请实施例中,用于实现上述方法实施例所示的方法。收发器2004可以包括接收机和发射机,收发器2004应用于本申请实施例中,用于执行时实现本申请实施例的电子设备与其他设备通信的功能。
处理器2001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(FieldProgrammable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器2001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线2002可包括一通路,在上述组件之间传送信息。总线2002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线2002可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random AccessMemory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read OnlyMemory,电可擦可编程只读存储器)、CD-ROM(Compact Disc ReadOnlyMemory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器2003用于存储执行本申请方案的应用程序代码,并由处理器2001来控制执行。处理器2001用于执行存储器2003中存储的应用程序代码,以实现本申请任一实施方式中所提供的模块热升级方法。
本申请实施例提供的电子设备,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述方法实施例所示的模块热升级方法。
本申请实施例提供的计算机可读存储介质,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供的模块热升级方案,通过第一模块接收版本热升级请求;其中所述第一模块包括进程组,所述进程组中的每一个进程相互独立;根据所述版本热升级请求,所述进程管理模块管理所述第一模块进程组完成热升级;其中,所述进程管理模块控制所述第一模块在热升级期间持续接收服务请求。基于本方案,在应用版本升级更新时,由于应用模块使用进程组的方式构成多进程多活方式,并且多进程间相互隔离,对消息队列中的消息是抢占式处理,所以进程管理模块控制应用模块的部分进程下线进行升级过程中,整个应用模块仍然可以对外提供服务,由此可以实现不重启应用更新版本的目的,即实现了应用的热升级。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种应用于收单系统的模块热升级的方法,其特征在于,所述方法包括:
第一模块接收版本热升级请求;其中所述第一模块包括进程组,所述进程组中的每一个进程相互独立;
根据所述版本热升级请求,进程管理模块管理所述第一模块进程组完成热升级;其中,所述进程管理模块控制所述第一模块在热升级期间持续接收服务请求;
所述进程管理模块管理所述第一模块进程组完成热升级包括:
所述进程管理模块获取所述第一模块的进程组信息;所述进程组信息包括进程ID信息、进程数量和进程状态;
根据获取结果和预设条件,向第一模块发送第一通知消息;其中,所述第一通知消息用于控制第一模块按照预设条件释放进程资源用于热升级;所述预设条件包括所述进程管理模块按照自定义关闭第一模块进程的批次和数量;
所述第一模块为应用模块,所述进程管理模块为守护模块;所述应用模块包括接收单元、输出单元、转换单元和处理单元,所述各单元之间相互独立并基于抢占式消息队列进行通讯,每个单元由包括N个进程的进程组构成,进程组内的进程对消息队列中的消息进行抢占式处理,其中,N≥2;
所述第一通知消息用于控制第一模块按照预设条件释放进程资源用于热升级包括:
识别所述第一模块进程组中的第一类进程和第二类进程;其中所述第一类进程是任务处理未完成的进程,所述第二类进程是任务处理完成的进程;
若所述第二类进程数量不满足所述预设条件,则等待第一类进程释放资源退出进程组以完成所述第一模块的版本热升级;
若所述第二类进程数量满足所述预设条件,则控制所述第二类进程释放资源退出进程组以完成第一模块的版本热升级。
2.根据权利要求1所述的模块热升级方法,其特征在于,所述方法还包括:所述第一类进程和/或第二类进程退出后,所述第一模块向所述进程管理模块发送第二通知消息,所述第二通知消息用于表征进程退出结果。
3.根据权利要求1所述的模块热升级方法,其特征在于,所述方法还包括:
在第一模块热升级期间,所述第一模块接收到第一服务请求;
所述进程管理模块根据所述第一服务请求启动所述第一模块的第一进程,其中所述第一进程为响应所述第一服务请求的进程。
4.根据权利要求1所述的模块热升级方法,其特征在于,若所述第一模块在热升级前接收到第二服务请求,则在所述进程管理模块管理所述第一模块进程组完成热升级后,所述方法还包括:
判断所述第二服务请求是否完成,若未完成;
则所述进程管理模块检查所述第一模块进程组中的进程数量和状态是否正常;
若不正常,则所述进程管理模块根据所述第二服务请求启动所述第一模块的第二进程,其中所述第二进程为响应所述第二服务请求的进程。
5.根据权利要求3或4所述的模块热升级方法,其特征在于,所述第一服务请求和第二服务请求按照消息队列方式进行传输。
6.根据权利要求1-4任一项所述的模块热升级方法,其特征在于,所述进程管理模块获取所述第一模块的进程组信息包括:
至少获取第一模块进程组中进程数量、各进程的状态和ID信息。
7.根据权利要求1-4任一项所述的模块热升级方法,其特征在于,所述方法还包括:
所述进程管理模块还用于判断所述第一模块是否接收到热升级版本;
如果判断接收到热升级版本,则所述进程管理模块管理所述第一模块进程组完成热升级。
8.一种应用于收单系统的模块热升级的装置,其特征在于,所述装置包括:第一模块和进程管理模块,其中第一模块包括接收单元和处理单元;其中,
所述第一模块的接收单元,用于接收版本热升级请求;其中所述第一模块包括进程组,所述进程组中的每一个进程相互独立;
所述进程管理模块,用于根据所述版本热升级请求管理所述第一模块进程组完成热升级;其中,所述进程管理模块控制所述第一模块在热升级期间持续接收服务请求;其中所述处理单元用于处理所述接收的服务请求;
所述进程管理模块具体用于:
获取所述第一模块的进程组信息;所述进程组信息包括进程ID信息、进程数量和进程状态;
根据获取结果和预设条件,向第一模块发送第一通知消息;其中,所述第一通知消息用于控制第一模块按照预设条件释放进程资源用于热升级;所述预设条件包括所述进程管理模块按照自定义关闭第一模块进程的批次和数量;
所述第一模块为应用模块,所述进程管理模块为守护模块;所述应用模块包括接收单元、输出单元、转换单元和处理单元,所述各单元之间相互独立并基于抢占式消息队列进行通讯,每个单元由包括N个进程的进程组构成,进程组内的进程对消息队列中的消息进行抢占式处理,其中,N≥2;
所述第一通知消息用于控制第一模块按照预设条件释放进程资源用于热升级包括:
识别所述第一模块进程组中的第一类进程和第二类进程;其中所述第一类进程是任务处理未完成的进程,所述第二类进程是任务处理完成的进程;
若所述第二类进程数量不满足所述预设条件,则等待第一类进程释放资源退出进程组以完成所述第一模块的版本热升级;
若所述第二类进程数量满足所述预设条件,则控制所述第二类进程释放资源退出进程组以完成第一模块的版本热升级。
9.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010637431.4A CN111796854B (zh) | 2020-07-03 | 2020-07-03 | 一种模块热升级的方法、装置、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010637431.4A CN111796854B (zh) | 2020-07-03 | 2020-07-03 | 一种模块热升级的方法、装置、电子设备和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111796854A CN111796854A (zh) | 2020-10-20 |
CN111796854B true CN111796854B (zh) | 2023-03-31 |
Family
ID=72810240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010637431.4A Active CN111796854B (zh) | 2020-07-03 | 2020-07-03 | 一种模块热升级的方法、装置、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111796854B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112333471A (zh) * | 2020-11-05 | 2021-02-05 | 上海网达软件股份有限公司 | 音视频在线转码器的热升级方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677433A (zh) * | 2016-03-15 | 2016-06-15 | 深圳创维-Rgb电子有限公司 | 服务器程序热升级的方法及装置 |
CN107515761A (zh) * | 2016-06-17 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 虚拟机管理服务模块热升级的方法和设备 |
CN108021378A (zh) * | 2016-11-03 | 2018-05-11 | 阿里巴巴集团控股有限公司 | 升级系统、基于虚拟机的升级方法及装置 |
CN109725920A (zh) * | 2018-12-29 | 2019-05-07 | 咪咕文化科技有限公司 | 一种服务实例的更新方法、装置及存储介质 |
CN110874236A (zh) * | 2019-11-13 | 2020-03-10 | 中国建设银行股份有限公司 | 一种跨平台应用装置、终端及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101702692B (zh) * | 2009-10-30 | 2011-12-07 | 南京中兴软创科技股份有限公司 | 一种对消息处理系统进行热更新的系统及其方法 |
CN101964725B (zh) * | 2010-09-01 | 2014-12-10 | 中兴通讯股份有限公司 | 业务不中断升级的方法和系统 |
US8417737B2 (en) * | 2010-10-20 | 2013-04-09 | Microsoft Corporation | Online database availability during upgrade |
CN103713925A (zh) * | 2013-12-26 | 2014-04-09 | 北海创新科存储技术有限公司 | 避免存储阵列在升级过程的业务中断方法和装置 |
US9459858B2 (en) * | 2015-01-07 | 2016-10-04 | International Business Machines Corporation | Selectively hotpatching only a selection of processes of a running instance of an application that match a selection criteria |
CN107748668B (zh) * | 2017-11-27 | 2021-02-02 | 奇安信科技集团股份有限公司 | 一种应用程序升级的方法及装置 |
WO2020062057A1 (zh) * | 2018-09-28 | 2020-04-02 | 华为技术有限公司 | 一种主机升级方法及设备 |
-
2020
- 2020-07-03 CN CN202010637431.4A patent/CN111796854B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677433A (zh) * | 2016-03-15 | 2016-06-15 | 深圳创维-Rgb电子有限公司 | 服务器程序热升级的方法及装置 |
CN107515761A (zh) * | 2016-06-17 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 虚拟机管理服务模块热升级的方法和设备 |
CN108021378A (zh) * | 2016-11-03 | 2018-05-11 | 阿里巴巴集团控股有限公司 | 升级系统、基于虚拟机的升级方法及装置 |
CN109725920A (zh) * | 2018-12-29 | 2019-05-07 | 咪咕文化科技有限公司 | 一种服务实例的更新方法、装置及存储介质 |
CN110874236A (zh) * | 2019-11-13 | 2020-03-10 | 中国建设银行股份有限公司 | 一种跨平台应用装置、终端及存储介质 |
Non-Patent Citations (4)
Title |
---|
Agnes C. Noubissi等.Hot Updates for Java Based Smart Cards.2011 IEEE 27th International Conference on Data Engineering Workshops.2011,第168-173页. * |
quinn.hong .实现程序的热升级 - 方式一.https://www.cnblogs.com/houkui/p/4249168.html.2015,第1-7页. * |
张洪秀.大型分布式交易系统动态升级机制的设计与实现.中国优秀硕士学位论文全文数据库 信息科技辑.2019,I138-995. * |
陈峰.基于多版本执行的云软件动态更新.中国优秀硕士学位论文全文数据库 信息科技辑.2017, I138-186. * |
Also Published As
Publication number | Publication date |
---|---|
CN111796854A (zh) | 2020-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2019257460A1 (en) | Method and system for processing of a real-time rebate at transaction authorization | |
US10896415B2 (en) | System for executing a computer process for processing a transaction, and related computer process | |
JP2020514849A (ja) | Icカードベースの取引処理およびクレジット決済承認方法、デバイス、およびシステム | |
CN101587579A (zh) | 信用卡还款系统及方法 | |
EP3588414A1 (en) | Aggregated transaction processing | |
CN111047310A (zh) | 数字资产的发行和转让、在线融资的实现方法和装置 | |
US20130073462A1 (en) | Processing a Payment Transaction From a Mobile Device | |
CN111897838A (zh) | 一种交易查询方法、装置、电子设备及其可读存储介质 | |
CN111796854B (zh) | 一种模块热升级的方法、装置、电子设备和可读存储介质 | |
AU2018202367A1 (en) | Automatic data transfer | |
CN111144889A (zh) | 基于区块链的积分结算方法及区块链记账系统 | |
CN111640006B (zh) | 银行代收付方法、装置、终端及存储介质 | |
US20080071654A1 (en) | Method, system, and apparatus for remittance processing over a network | |
US20240094960A1 (en) | Systems and methods for real time access to external resource | |
CN115760102A (zh) | 收款系统、收款方法、计算机设备和计算机可读存储介质 | |
CN116777543A (zh) | 一种支持支核一体的聚合支付方法及系统 | |
US8566241B2 (en) | Deposit pending check clearance | |
CN115526722A (zh) | 一种处理冲正交易的方法及装置 | |
JP2002163458A (ja) | 口座振替管理方法及び同管理装置 | |
WO2023277805A1 (en) | Repayment server and method for providing payback of a loan | |
CN111582851B (zh) | 基于大数据的平台打款方法、装置、电子设备及存储介质 | |
CN113724070A (zh) | 信息处理方法、装置、电子设备和介质 | |
CN113610518A (zh) | 一种基于联机交易触发的银行卡欠费追缴处理方法及装置 | |
KR20210144120A (ko) | 오픈뱅킹 서비스 방법 및 시스템 | |
WO2020060672A1 (en) | Methods and apparatus for chargebacks of push payment transactions |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220914 Address after: 25 Financial Street, Xicheng District, Beijing 100033 Applicant after: CHINA CONSTRUCTION BANK Corp. Address before: 25 Financial Street, Xicheng District, Beijing 100033 Applicant before: CHINA CONSTRUCTION BANK Corp. Applicant before: Jianxin Financial Science and Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |