CN112612513A - 消息中间件的升级方法、装置、计算机设备及存储介质 - Google Patents
消息中间件的升级方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112612513A CN112612513A CN202011621784.1A CN202011621784A CN112612513A CN 112612513 A CN112612513 A CN 112612513A CN 202011621784 A CN202011621784 A CN 202011621784A CN 112612513 A CN112612513 A CN 112612513A
- Authority
- CN
- China
- Prior art keywords
- message middleware
- message
- target
- middleware
- application program
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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
-
- 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
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)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例公开了一种消息中间件的升级方法、装置、计算机设备及存储介质,其中所述方法包括根据用户发送的升级请求构建目标消息中间件以及补偿节点;根据用户发送的配置请求配置相应的应用程序的第一连接接口,以使应用程序通过第一连接接口与目标消息中间件相连接;运行补偿节点,以从原始消息中间件中拉取消息数据,并将所拉取的消息数据发送至目标消息中间件;检测目标消息中间件中的消息队列是否存在消息数据堆积;若是,将应用程序分为若干子程序以依次进行重启,并将重启后的子程序所生成的消息数据直接发送至目标消息中间件。本发明可以通过对消息中间件的无感升级从而减少其消息队列中的消息数据的丢失,提升了系统安全性能。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种消息中间件的升级方法、装置、计算机设备及存储介质。
背景技术
消息中间件是现代互联网应用必不可少的中间件,具有解耦系统之间依赖关系、流量削峰、数据最终一致性等特点。
目前市场上的消息中间件版本迭代速度较快,其中涉及多个重要特性更新及BUG修复,同时很多的版本不能友好支持个性化业务场景,比如事务消息、服务端过滤等等,且存在高等级安全隐患,比如Fastjson漏洞等。
其次,版本升级意味着需要重新搭建一套消息中间件集群,并手动迁移所有应用程序及数据,而应用程序在重启过程中不可避免地会发生消息丢失情况,造成业务损失。
发明内容
本发明实施例提供一种消息中间件的升级方法、装置、计算机设备及存储介质,能够实现无消息丢失的消息中间件的升级,减少漏洞数量,提升系统安全性能。
第一方面,本发明实施例提供了一种消息中间件的升级方法,该方法包括:
若接收到用户发送的升级请求,根据所述升级请求构建目标消息中间件以及补偿节点;
根据用户发送的配置请求配置相应的应用程序的第一连接接口,以使所述应用程序通过所述第一连接接口与所述目标消息中间件相连接,其中,所述应用程序通过第二连接接口与原始消息中间件相连,所述原始消息中间件用于接收应用程序发送的消息数据;
运行所述补偿节点,以从原始消息中间件中拉取消息数据,并将所拉取的消息数据发送至目标消息中间件;
检测所述目标消息中间件中的消息队列是否存在消息数据堆积;
若检测到所述目标消息中间件中的消息队列存在消息数据堆积,将应用程序分为若干子程序以依次进行重启,并将重启后的子程序所生成的消息数据直接发送至目标消息中间件。
第二方面,本发明实施例还提供了一种消息中间件的升级装置,该装置包括:
构建单元,用于若接收到用户发送的升级请求,根据所述升级请求构建目标消息中间件以及补偿节点;
配置单元,用于根据用户发送的配置请求配置相应的应用程序的第一连接接口,以使所述应用程序通过所述第一连接接口与所述目标消息中间件相连接,其中,所述应用程序通过第二连接接口与原始消息中间件相连,所述原始消息中间件用于接收应用程序发送的消息数据;
运行单元,用于运行所述补偿节点,以从原始消息中间件中拉取消息数据,并将所拉取的消息数据发送至目标消息中间件;
队列检测单元,用于检测所述目标消息中间件中的消息队列是否存在消息数据堆积;
重启单元,用于若检测到所述目标消息中间件中的消息队列存在消息数据堆积,将应用程序分为若干子程序以依次进行重启,并将重启后的子程序所生成的消息数据直接发送至目标消息中间件。
第三方面,本发明实施例还提供了一种计算机设备,其包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序当被处理器执行时可实现上述方法。
本发明实施例提供了一种消息中间件的升级方法、装置、计算机设备及存储介质。其中,所述方法包括:根据用户发送的升级请求构建目标消息中间件以及补偿节点;根据用户发送的配置请求配置相应的应用程序的第一连接接口,以使应用程序通过第一连接接口与目标消息中间件相连接;运行补偿节点,以从原始消息中间件中拉取消息数据,并将所拉取的消息数据发送至目标消息中间件;检测目标消息中间件中的消息队列是否存在消息数据堆积;若是,将应用程序分为若干子程序以依次进行重启,并将重启后的子程序所生成的消息数据直接发送至目标消息中间件。本发明实施例由于对消息中间件的无感升级,可实现减少其消息队列中的消息数据的丢失,提升系统安全性能效果。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种消息中间件的升级方法的流程示意图;
图1a是本发明实施例提供的一种消息中间件的升级方法的应用场景示意图;
图2是本发明实施例提供的一种消息中间件的升级方法的子流程示意图;
图3是本发明实施例提供的一种消息中间件的升级方法的子流程示意图;
图4是本发明另一实施例提供的一种消息中间件的升级方法的流程示意图;
图5是本发明实施例提供的一种消息中间件的升级装置的示意性框图;
图6是本发明实施例提供的一种消息中间件的升级装置的配置单元的示意性框图;
图7是本发明实施例提供的一种消息中间件的升级装置的重启单元的示意性框图;
图8是本发明另一实施例提供的一种消息中间件的升级装置的示意性框图;
图9是本发明实施例提供的一种计算机设备结构组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
请参阅图1和图1a,图1是本申请实施例提供的一种消息中间件的升级方法的示意流程图,图1a是本申请实施例中消息中间件的升级方法的场景示意图。该消息中间件的升级方法应用于管理服务器10中。该管理服务器10根据消息中间件的升级方法构建目标消息中间件20以及补偿节点30,并配置应用程序40的第一连接接口,从而使得其于目标消息中间件20相连,管理服务器10还能够运行补偿节点30以从原始消息中间件50中拉取消息数据,并发送至目标消息中间件20中;当管理服务器10检测到目标消息中间件中的消息队列又消息数据堆积,则将应用程序40分为若干子程序依次进行重启,从而将重启后的子程序生成的相关消息数据直接发送至目标消息中间件20中。管理服务器10还能够在检测到目标消息中间件20的消息书被预设拉取函数发送至后端服务器60后,且目标消息中间件20处理消息数据的延迟时间未超过预设值,原始消息中间件50无消息数据时,关闭补偿节点30。
以下将以管理服务器10的角度详细地介绍该消息中间件的升级方法的各个步骤。
请参阅图1,图1是本发明实施例提供的一种消息中间件的升级方法的示意流程图。如图1所示,该方法的步骤包括步骤S101~S105。
步骤S101,若接收到用户发送的升级请求,根据所述升级请求构建目标消息中间件以及补偿节点。
在本实施例中,消息中间件是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统。管理服务器在接收到用户发送的升级请求后,可以对升级请求进行解析以得到相关信息,从而构建目标消息中间件以及补偿节点。
例如,管理服务器可以根据升级请求中所包括的地址获取本地的消息中间件升级包或通过联网从互联网上下载消息中间件的升级包,以及补偿节点的软件包,通过对升级包以及软件包的解析,能够得到相应的目标消息中间件与补偿节点。其中,消息中间件可以是RocketMQ。
步骤S102,根据用户发送的配置请求配置相应的应用程序的第一连接接口,以使所述应用程序通过所述第一连接接口与所述目标消息中间件相连接,其中,所述应用程序通过第二连接接口与原始消息中间件相连,所述原始消息中间件用于接收应用程序发送的消息数据。
在本实施例中,管理服务器能够接收用户发送的配置请求,并根据用户所提交的配置请求中的相关信息对相应的应用程序的第一连接接口进行配置。通常,应用程序生成的消息数据是发送至原始消息中间件中的,也即应用程序是通过第二连接接口与原始消息中间件相连接的,为了实现消息中间件的无感升级,需要使得应用程序能够通过第一连接接口实现与目标消息中间件的连接。
进一步地,如图2所示,所述目标消息中间件包括目标连接参数,所述应用程序的第二连接接口包括原始配置参数,所述原始消息中间件包括原始连接参数,所述原始配置参数与所述原始连接参数相匹配;所述步骤S102包括步骤S201~S202。
步骤S201,根据用户发送的配置请求获取所述目标消息中间件的目标连接参数,并调取应用程序的第一连接接口的第一配置参数。
其中,管理服务器可以根据用户发送的配置请求获取目标消息中间件的目标连接参数,该目标连接参数可以是用于认定目标消息中间件的身份标志相关的参数。同时,应用程序需要通过连接接口与外部设备或外部系统相连,故可以通过配置其连接接口的参数来确认其所要连接的外部设备或外部系统,此时可以根据配置请求同样地调取应用程序地第一连接接口地第一配置参数。
步骤S202,根据所获取的目标连接参数将所述应用程序的第一配置参数调整为与所述目标连接参数相匹配的目标配置参数,以使所述应用程序通过第一连接接口与所述目标消息中间件相连。
其中,管理服务器嫩巩固根据所获取的目标连接参数对所述应用程序的第一配置参数进行调整,并将其调整为与目标连接参数相匹配的目标配置参数,通过对第一连接接口的参数的配置,可以实现应用程序与目标消息中间件的连接。
进一步地,上述实施例中的所述第一连接接口以及第二连接接口均可以为API接口。
进一步地,所述步骤S102还包括以下步骤:
步骤S203,读取所述应用程序的第二连接接口的原始配置参数,将所述原始配置参数存储至预设数据库中。
其中,为了确保消息中间件升级过程中的稳定性,保证升级过程中应用程序的稳定运行,管理服务器可以读取所述应用程序的第二连接接口的原始配置参数,并将所述原始配置参数存储在预设数据库中,以确保相关数据的安全性。
步骤S103,运行所述补偿节点,以从原始消息中间件中拉取消息数据,并将所拉取的消息数据发送至目标消息中间件。
在本实施例中,管理服务器在配置完应用程序的第一连接接口,并使得应用程序与目标消息中间件相连接后,可以运行所述补偿节点,该补偿节点能够从原始消息中间件中拉取消息数据,并将消息数据发送至目标消息中间件中,从而保证在消息中间件在升级过程中不会有消息丢失,并保证业务的连续性,从而实现消息中间件的平滑升级。
步骤S104,检测所述目标消息中间件中的消息队列是否存在消息数据堆积。
在本实施例中,管理服务器还能够检测所述目标消息中间件是否存在消息数据堆积,从而确保目标消息中间件的正常使用。若无消息数据堆积,即表明消息中间件的升级失败,可进行相应的预警,以便于重新进行升级。进一步地,还可以每隔一段时间对消息中间件进行一次检测,即检测该目标消息中间件正常工作。若检测所述目标消息中间件中的消息队列没有消息数据堆积,则可以根据预先设置的预警规则实现相应的预警。
步骤S105,若检测到所述目标消息中间件中的消息队列存在消息数据堆积,将应用程序分为若干子程序以依次进行重启,并将重启后的子程序所生成的消息数据直接发送至目标消息中间件。
在本实施例中,若管理服务器检测到所述目标消息中间件中的消息队列存在消息数据堆积,此时则可以将应用程序分为若干子程序,并依次对子程序进行重启,即当所有的子程序完成重启后,即实现了整个应用程序的重启,通常,重启后的子程序所生成的消息数据即直接发送至目标消息中间件中,即可以实现新旧消息数据的全部迁移,完成消息中间件的升级,有效减少了消息数据的丢失。
进一步地,如图3所示,所述步骤105包括步骤S301~S303。
步骤S301,将应用程序分为若干子程序。
其中,管理服务器可以将应用程序分为若干子程序,以确保应用程序运行的连续性,极大地提高了用户地使用体验度。通常可以将应用程序作为一个整体进行重启,也可以分为两个或者三个或者四个或者其他的数量。
步骤S302,将所有子程序进行排序,以每隔第一预设时间依次重启所有子程序。
其中,管理服务器可以对所有的子程序进行排序,以便于每隔预设时间依次重启所有的子程序,即在重启其中一个子程序时,其余的子程序仍然正常使用,同时重启后的子程序也正常使用。
步骤S303,将重启后的子程序生成的消息数据直接发送至目标消息中间件。
其中,未重启的子程序所生成的消息数据时直接发送至原始消息中间件中的,并通过补偿程序将原始消息中间件中的消息数据拉取出来,并推送至目标消息中间件中;而重启后的子程序所生成的消息数据则时直接发送至目标消息中间件中的。当所有的子程序完成升级后,即应用程序完成所有升级,此时应用程序所生成的所有消息数据应全部发送至目标消息中间件中,以完成消息中间件升级。
综上,本发明实施例由于对消息中间件的无感升级,可实现减少其消息队列中的消息数据的丢失,提升系统安全性能效果。
请参阅图4,图4是本发明另一实施例提供的一种消息中间件的升级方法的示意流程图。如图4所示,该方法的步骤包括步骤S401~S409。其中与上述实施例中的步骤S101-S105类似的步骤的相关解释和详细说明在此不再赘述,下面详细说明的为本实施例中所增加的步骤。
步骤S401,若接收到用户发送的升级请求,根据所述升级请求构建目标消息中间件以及补偿节点。
步骤S402,根据用户发送的配置请求配置相应的应用程序的第一连接接口,以使所述应用程序通过所述第一连接接口与所述目标消息中间件相连接,其中,所述应用程序通过第二连接接口与原始消息中间件相连,所述原始消息中间件用于接收应用程序发送的消息数据。
步骤S403,运行所述补偿节点,以从原始消息中间件中拉取消息数据,并将所拉取的消息数据发送至目标消息中间件。
步骤S404,检测所述目标消息中间件中的消息队列是否存在消息数据堆积。
步骤S405,若检测到所述目标消息中间件中的消息队列存在消息数据堆积,将应用程序分为若干子程序以依次进行重启,并将重启后的子程序所生成的消息数据直接发送至目标消息中间件。
步骤S406,检测目标消息中间件的消息数据是否被预设拉取函数发送至后端服务器。
在本实施例中,管理服务器可以检测目标消息中间件的消息数据是否被预设拉取函数发送至后端服务器中,即检测消息中间件中消息数据是否被消费处理掉。若没有检测到消息中间件中的消息数据被预设拉取函数拉取并发送至后端服务器,则表明该目标消息中间件的连通性存在问题,可以根据预先设置的预警规则进行预警,以便用户进行处理。
步骤S407,若检测到目标消息中间件的消息数据被预设拉取函数发送至后端服务器,计算目标消息中间件处理消息数据的延迟时间,并判断所述延迟时间是否超过预设值。
在本实施例中,若管理服务器检测到目标消息中间件的消息数据被预设拉取函数发送至后端服务器中,此时可以计算目标消息中间件处理消息数据的延迟时间,通常延迟时间过长,即超过预设值时,则表明目标消息中间件可能存在问题。
步骤S408,若所述延迟时间未超过预设值,检测所述原始消息中间件中是否还存在消息数据。
在本实施例中,若管理服务器检测到所述延迟时间未超过预设值,则可以检测所述原始消息中间件是否还存在消息数据。通常,补偿节点启动后,可以直接从原始消息中间件中拉取消息数据,若原始消息中间件中还有消息数据,此时补偿节点继续运行。
步骤S409,若原始消息中间件中无消息数据,关闭所述补偿节点。
在本实施例中,若管理服务器检测到原始消息中间件中没有消息数据了,此时则可以关闭所述补偿节点。
进一步地,若所述延迟时间未超过预设值,所述步骤S408之前,包括:
检测所述补偿节点的运行时长是否超过预设时长。
其中,若检测到所述补偿节点地运行时长未超过预设时长,执行所述步骤S408。
在本实施例中,若所述延迟时间未超过预设值,管理服务器能够检测所述补偿节点的运行时长是否超过预设时长,若所述补偿节点的运行时长超过预设时长,则可以根据预设预警规则进行预警,以便用户进行查看检测。
本领域普通技术员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。
请参阅图5,对应上述一种消息中间件的升级方法,本发明实施例还提出一种消息中间件的升级装置,该装置100包括:构建单元101、配置单元102、运行单元103、队列检测单元104以及重启单元105。
所述构建单元101,用于若接收到用户发送的升级请求,根据所述升级请求构建目标消息中间件以及补偿节点。
在本实施例中,消息中间件是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统。管理服务器在接收到用户发送的升级请求后,可以对升级请求进行解析以得到相关信息,从而构建目标消息中间件以及补偿节点。
所述配置单元102,用于根据用户发送的配置请求配置相应的应用程序的第一连接接口,以使所述应用程序通过所述第一连接接口与所述目标消息中间件相连接,其中,所述应用程序通过第二连接接口与原始消息中间件相连,所述原始消息中间件用于接收应用程序发送的消息数据。
在本实施例中,管理服务器能够接收用户发送的配置请求,并根据用户所提交的配置请求中的相关信息对相应的应用程序的第一连接接口进行配置。通常,应用程序生成的消息数据是发送至原始消息中间件中的,也即应用程序是通过第二连接接口与原始消息中间件相连接的,为了实现消息中间件的无感升级,需要使得应用程序能够通过第一连接接口实现与目标消息中间件的连接。
进一步地,如图6所示,所述目标消息中间件包括目标连接参数,所述应用程序的第二连接接口包括原始配置参数,所述原始消息中间件包括原始连接参数,所述原始配置参数与所述原始连接参数相匹配;所述配置单元102包括参数获取单元201以及参数调整单元202。
所述参数获取单元201,用于根据用户发送的配置请求获取所述目标消息中间件的目标连接参数,并调取应用程序的第一连接接口的第一配置参数。
其中,管理服务器可以根据用户发送的配置请求获取目标消息中间件的目标连接参数,该目标连接参数可以是用于认定目标消息中间件的身份标志相关的参数。同时,应用程序需要通过连接接口与外部设备或外部系统相连,故可以通过配置其连接接口的参数来确认其所要连接的外部设备或外部系统,此时可以根据配置请求同样地调取应用程序地第一连接接口地第一配置参数。
所述参数调整单元202,用于根据所获取的目标连接参数将所述应用程序的第一配置参数调整为与所述目标连接参数相匹配的目标配置参数,以使所述应用程序通过第一连接接口与所述目标消息中间件相连。
其中,管理服务器嫩巩固根据所获取的目标连接参数对所述应用程序的第一配置参数进行调整,并将其调整为与目标连接参数相匹配的目标配置参数,通过对第一连接接口的参数的配置,可以实现应用程序与目标消息中间件的连接。
进一步地,上述实施例中的所述第一连接接口以及第二连接接口均可以为API接口。
进一步地,所述配置单元102还包括以下单元:
参数读取单元203,用于读取所述应用程序的第二连接接口的原始配置参数,将所述原始配置参数存储至预设数据库中。
其中,为了确保消息中间件升级过程中的稳定性,保证升级过程中应用程序的稳定运行,管理服务器可以读取所述应用程序的第二连接接口的原始配置参数,并将所述原始配置参数存储在预设数据库中,以确保相关数据的安全性。
所述运行单元103,用于运行所述补偿节点,以从原始消息中间件中拉取消息数据,并将所拉取的消息数据发送至目标消息中间件。
在本实施例中,管理服务器在配置完应用程序的第一连接接口,并使得应用程序与目标消息中间件相连接后,可以运行所述补偿节点,该补偿节点能够从原始消息中间件中拉取消息数据,并将消息数据发送至目标消息中间件中,从而保证在消息中间件在升级过程中不会有消息丢失,并保证业务的连续性,从而实现消息中间件的平滑升级。
所述队列检测单元104,用于检测所述目标消息中间件中的消息队列是否存在消息数据堆积。
在本实施例中,管理服务器还能够检测所述目标消息中间件是否存在消息数据堆积,从而确保目标消息中间件的正常使用。若无消息数据堆积,即表明消息中间件的升级失败,可进行相应的预警,以便于重新进行升级。进一步地,还可以每隔一段时间对消息中间件进行一次检测,即检测该目标消息中间件正常工作。若检测所述目标消息中间件中的消息队列没有消息数据堆积,则可以根据预先设置的预警规则实现相应的预警。
所述重启单元105,用于若检测到所述目标消息中间件中的消息队列存在消息数据堆积,将应用程序分为若干子程序以依次进行重启,并将重启后的子程序所生成的消息数据直接发送至目标消息中间件。
在本实施例中,若管理服务器检测到所述目标消息中间件中的消息队列存在消息数据堆积,此时则可以将应用程序分为若干子程序,并依次对子程序进行重启,即当所有的子程序完成重启后,即实现了整个应用程序的重启,通常,重启后的子程序所生成的消息数据即直接发送至目标消息中间件中,即可以实现新旧消息数据的全部迁移,完成消息中间件的升级,有效减少了消息数据的丢失。
进一步地,如图7所示,所述重启单元105包括分类单元301、排序单元302以及数据发送单元303。
所述分类单元301,用于将应用程序分为若干子程序。
其中,管理服务器可以将应用程序分为若干子程序,以确保应用程序运行的连续性,极大地提高了用户地使用体验度。通常可以将应用程序作为一个整体进行重启,也可以分为两个或者三个或者四个或者其他的数量。
所述排序单元302,用于将所有子程序进行排序,以每隔第一预设时间依次重启所有子程序。
其中,管理服务器可以对所有的子程序进行排序,以便于每隔预设时间依次重启所有的子程序,即在重启其中一个子程序时,其余的子程序仍然正常使用,同时重启后的子程序也正常使用。
所述数据发送单元303,用于将重启后的子程序生成的消息数据直接发送至目标消息中间件。
其中,未重启的子程序所生成的消息数据时直接发送至原始消息中间件中的,并通过补偿程序将原始消息中间件中的消息数据拉取出来,并推送至目标消息中间件中;而重启后的子程序所生成的消息数据则时直接发送至目标消息中间件中的。当所有的子程序完成升级后,即应用程序完成所有升级,此时应用程序所生成的所有消息数据应全部发送至目标消息中间件中,以完成消息中间件升级。
请参阅图8,对应上述一种消息中间件的升级方法,本发明另一实施例还提出一种消息中间件的升级装置,该装置400包括:构建单元401、配置单元402、运行单元403、队列检测单元404、重启单元405、数据检测单元406、时间处理单元407、消息检测单元408以及关闭单元409。
所述构建单元401,若接收到用户发送的升级请求,根据所述升级请求构建目标消息中间件以及补偿节点。
所述配置单元402,根据用户发送的配置请求配置相应的应用程序的第一连接接口,以使所述应用程序通过所述第一连接接口与所述目标消息中间件相连接,其中,所述应用程序通过第二连接接口与原始消息中间件相连,所述原始消息中间件用于接收应用程序发送的消息数据。
所述运行单元403,运行所述补偿节点,以从原始消息中间件中拉取消息数据,并将所拉取的消息数据发送至目标消息中间件。
所述队列检测单元404,检测所述目标消息中间件中的消息队列是否存在消息数据堆积。
所述重启单元405,若检测到所述目标消息中间件中的消息队列存在消息数据堆积,将应用程序分为若干子程序以依次进行重启,并将重启后的子程序所生成的消息数据直接发送至目标消息中间件。
所述数据检测单元406,用于检测目标消息中间件的消息数据是否被预设拉取函数发送至后端服务器。
在本实施例中,管理服务器可以检测目标消息中间件的消息数据是否被预设拉取函数发送至后端服务器中,即检测消息中间件中消息数据是否被消费处理掉。若没有检测到消息中间件中的消息数据被预设拉取函数拉取并发送至后端服务器,则表明该目标消息中间件的连通性存在问题,可以根据预先设置的预警规则进行预警,以便用户进行处理。
所述时间处理单元407,用于若检测到目标消息中间件的消息数据被预设拉取函数发送至后端服务器,计算目标消息中间件处理消息数据的延迟时间,并判断所述延迟时间是否超过预设值。
在本实施例中,若管理服务器检测到目标消息中间件的消息数据被预设拉取函数发送至后端服务器中,此时可以计算目标消息中间件处理消息数据的延迟时间,通常延迟时间过长,即超过预设值时,则表明目标消息中间件可能存在问题。
所述消息检测单元408,用于若所述延迟时间未超过预设值,检测所述原始消息中间件中是否还存在消息数据。
在本实施例中,若管理服务器检测到所述延迟时间未超过预设值,则可以检测所述原始消息中间件是否还存在消息数据。通常,补偿节点启动后,可以直接从原始消息中间件中拉取消息数据,若原始消息中间件中还有消息数据,此时补偿节点继续运行。
所述关闭单元409,用于若原始消息中间件中无消息数据,关闭所述补偿节点。
在本实施例中,若管理服务器检测到原始消息中间件中没有消息数据了,此时则可以关闭所述补偿节点。
进一步地,若所述延迟时间未超过预设值,所述消息检测单元408之前,包括:
时长检测单元,用于检测所述补偿节点的运行时长是否超过预设时长。
其中,若检测到所述补偿节点地运行时长未超过预设时长,执行所述消息检测单元408。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述消息中间件的升级装置400和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
由以上可见,在硬件实现上,以上构建单元101、配置单元102、运行单元103、队列检测单元104以及重启单元105等可以以硬件形式内嵌于或独立于消息中间件的升级装置中,也可以以软件形式存储于消息中间件的升级装置的存储器中,以便处理器调用执行以上各个单元对应的操作。该处理器可以为中央处理单元(CPU)、微处理器、单片机等。
上述消息中间件的升级装置可以实现为一种计算机程序的形式,计算机程序可以在如图9所示的计算机设备上运行。
图9为本发明一种计算机设备的结构组成示意图。该设备可以是服务器,其中,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参照图9,该计算机设备500包括通过系统总线501连接的处理器502、存储器、内存储器504和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032,该计算机程序5032被执行时,可使得处理器502执行一种消息中间件的升级方法。
该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种消息中间件的升级方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现上述实施例中的消息中间件的升级方法的步骤。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该计算机程序被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,该计算机程序被处理器执行时使处理器执行上述实施例中的消息中间件的升级方法的步骤。
所述存储介质为实体的、非瞬时性的存储介质,例如可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的实体存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种消息中间件的升级方法,其特征在于,所述方法包括:
若接收到用户发送的升级请求,根据所述升级请求构建目标消息中间件以及补偿节点;
根据用户发送的配置请求配置相应的应用程序的第一连接接口,以使所述应用程序通过所述第一连接接口与所述目标消息中间件相连接,其中,所述应用程序通过第二连接接口与原始消息中间件相连,所述原始消息中间件用于接收应用程序发送的消息数据;
运行所述补偿节点,以从原始消息中间件中拉取消息数据,并将所拉取的消息数据发送至目标消息中间件;
检测所述目标消息中间件中的消息队列是否存在消息数据堆积;
若检测到所述目标消息中间件中的消息队列存在消息数据堆积,将应用程序分为若干子程序以依次进行重启,并将重启后的子程序所生成的消息数据直接发送至目标消息中间件。
2.如权利要求1所述的方法,其特征在于,所述目标消息中间件包括目标连接参数,所述应用程序的第二连接接口包括原始配置参数,所述原始消息中间件包括原始连接参数,所述原始配置参数与所述原始连接参数相匹配;所述根据用户发送的配置请求配置相应的应用程序的第一连接接口,以使所述应用程序通过所述第一连接接口与所述目标消息中间件相连接的步骤,包括:
根据用户发送的配置请求获取所述目标消息中间件的目标连接参数,并调取应用程序的第一连接接口的第一配置参数;
根据所获取的目标连接参数将所述应用程序的第一配置参数调整为与所述目标连接参数相匹配的目标配置参数,以使所述应用程序通过第一连接接口与所述目标消息中间件相连。
3.如权利要求2所述的方法,其特征在于,所述第一连接接口以及第二连接接口均为API接口。
4.如权利要求2所述的方法,其特征在于,所述方法还包括:
读取所述应用程序的第二连接接口的原始配置参数,将所述原始配置参数存储至预设数据库中。
5.如权利要求1所述的方法,其特征在于,所述将应用程序分为若干子程序以依次进行重启,并将重启后的子程序所生成的消息数据直接发送至目标消息中间件的步骤,包括:
将应用程序分为若干子程序;
将所有子程序进行排序,以每隔第一预设时间依次重启所有子程序;
将重启后的子程序生成的消息数据直接发送至目标消息中间件。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
检测目标消息中间件的消息数据是否被预设拉取函数发送至后端服务器;
若检测到目标消息中间件的消息数据被预设拉取函数发送至后端服务器,计算目标消息中间件处理消息数据的延迟时间,并判断所述延迟时间是否超过预设值;
若所述延迟时间未超过预设值,检测所述原始消息中间件中是否还存在消息数据;
若原始消息中间件中无消息数据,关闭所述补偿节点。
7.如权利要求6所述的方法,其特征在于,所述检测所述原始消息中间件中是否还存在消息数据的步骤之前,包括:
检测所述补偿节点的运行时长是否超过预设时长;
其中,若所述补偿节点的运行时长未超过预设时长,执行所述检测所述原始消息中间件中是否还存在消息数据的步骤。
8.一种消息中间件的升级装置,其特征在于,所述装置包括:
构建单元,用于若接收到用户发送的升级请求,根据所述升级请求构建目标消息中间件以及补偿节点;
配置单元,用于根据用户发送的配置请求配置相应的应用程序的第一连接接口,以使所述应用程序通过所述第一连接接口与所述目标消息中间件相连接,其中,所述应用程序通过第二连接接口与原始消息中间件相连,所述原始消息中间件用于接收应用程序发送的消息数据;
运行单元,用于运行所述补偿节点,以从原始消息中间件中拉取消息数据,并将所拉取的消息数据发送至目标消息中间件;
队列检测单元,用于检测所述目标消息中间件中的消息队列是否存在消息数据堆积;
重启单元,用于若检测到所述目标消息中间件中的消息队列存在消息数据堆积,将应用程序分为若干子程序以依次进行重启,并将重启后的子程序所生成的消息数据直接发送至目标消息中间件。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011621784.1A CN112612513A (zh) | 2020-12-31 | 2020-12-31 | 消息中间件的升级方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011621784.1A CN112612513A (zh) | 2020-12-31 | 2020-12-31 | 消息中间件的升级方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112612513A true CN112612513A (zh) | 2021-04-06 |
Family
ID=75249687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011621784.1A Pending CN112612513A (zh) | 2020-12-31 | 2020-12-31 | 消息中间件的升级方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112612513A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114268667A (zh) * | 2021-12-20 | 2022-04-01 | 中国平安财产保险股份有限公司 | 数据转发方法、装置、计算机设备及存储介质 |
CN115174440A (zh) * | 2022-07-11 | 2022-10-11 | 中国银行股份有限公司 | 连通性检测方法、装置、存储介质和设备 |
CN116028245A (zh) * | 2023-02-09 | 2023-04-28 | 中国证券登记结算有限责任公司 | 一种基于消息中间件的业务消息处理方法和装置 |
-
2020
- 2020-12-31 CN CN202011621784.1A patent/CN112612513A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114268667A (zh) * | 2021-12-20 | 2022-04-01 | 中国平安财产保险股份有限公司 | 数据转发方法、装置、计算机设备及存储介质 |
CN114268667B (zh) * | 2021-12-20 | 2024-05-07 | 中国平安财产保险股份有限公司 | 数据转发方法、装置、计算机设备及存储介质 |
CN115174440A (zh) * | 2022-07-11 | 2022-10-11 | 中国银行股份有限公司 | 连通性检测方法、装置、存储介质和设备 |
CN115174440B (zh) * | 2022-07-11 | 2024-03-26 | 中国银行股份有限公司 | 连通性检测方法、装置、存储介质和设备 |
CN116028245A (zh) * | 2023-02-09 | 2023-04-28 | 中国证券登记结算有限责任公司 | 一种基于消息中间件的业务消息处理方法和装置 |
CN116028245B (zh) * | 2023-02-09 | 2023-10-13 | 中国证券登记结算有限责任公司 | 一种基于消息中间件的业务消息处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112612513A (zh) | 消息中间件的升级方法、装置、计算机设备及存储介质 | |
US10348861B2 (en) | Software upgrade method and terminal | |
CN110825563B (zh) | 系统恢复方法、装置以及电子设备 | |
CN107844306B (zh) | 应用程序的修复方法、装置、存储介质及终端 | |
US7216344B2 (en) | Side-by-side drivers | |
CN111752637B (zh) | 多服务巡检管理方法、装置、计算机设备及存储介质 | |
CN111708566A (zh) | 软件增量更新方法、装置、系统及计算机可读存储介质 | |
CN106886422A (zh) | 软件升级方法及装置、电子设备 | |
CN110543327A (zh) | 业务组件复用方法、装置、计算机设备及存储介质 | |
CN111752577B (zh) | 一种系统版本的升级方法及设备 | |
CN112470119B (zh) | 一种分布式系统中的业务升级方法、装置及分布式系统 | |
CN111966380A (zh) | 一种bmc固件升级方法、系统、终端及存储介质 | |
CN110851166A (zh) | 用户无感知的应用程序更新方法、装置及计算机设备 | |
CN109032649B (zh) | Ota升级方法、装置、设备及存储介质 | |
CN113396391A (zh) | 应用程序启动的方法、装置、电子设备及存储介质 | |
CN111176693B (zh) | 一种数字电视系统的升级方法 | |
CN110910945B (zh) | 测试ssd信号健壮性的方法、装置、计算机设备及存储介质 | |
CN110058866B (zh) | 集群组件安装方法及设备 | |
CN112269601A (zh) | 一种bmc及其部件资产信息管理方法、装置和存储介质 | |
CN111966286A (zh) | 一种多数据池分级迁移的方法及系统 | |
CN115004667A (zh) | 信息推送方法、装置、电子设备及计算机可读介质 | |
CN110727439A (zh) | 软件安装包构建方法、装置、计算机设备及存储介质 | |
CN107632840B (zh) | 应用程序的任务执行方法和系统 | |
CN114222001B (zh) | 边缘设备及方法、系统、电子设备及存储介质 | |
RU2816293C1 (ru) | Способ установки приложений, устройство-установщик и система, реализующие упомянутый способ |
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 |