CN112422684A - 目标消息的处理方法及装置、存储介质、电子装置 - Google Patents
目标消息的处理方法及装置、存储介质、电子装置 Download PDFInfo
- Publication number
- CN112422684A CN112422684A CN202011300263.6A CN202011300263A CN112422684A CN 112422684 A CN112422684 A CN 112422684A CN 202011300263 A CN202011300263 A CN 202011300263A CN 112422684 A CN112422684 A CN 112422684A
- Authority
- CN
- China
- Prior art keywords
- target
- message
- subscription
- service
- identification information
- 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.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 105
- 238000003672 processing method Methods 0.000 title description 8
- 230000002159 abnormal effect Effects 0.000 claims abstract description 84
- 238000012544 monitoring process Methods 0.000 claims abstract description 60
- 238000000034 method Methods 0.000 claims abstract description 46
- 238000012545 processing Methods 0.000 claims abstract description 23
- 238000001514 detection method Methods 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 18
- 230000008030 elimination Effects 0.000 claims description 5
- 238000003379 elimination reaction Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000013024 troubleshooting Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供了一种目标消息的处理方法及装置、存储介质、电子装置,上述方法包括:获取目标消息的订阅服务端在目标周期内向预设存储队列中写入的服务标识信息,其中,服务标识信息包含以下至少之一:订阅服务端的目标标识,目标标识的有效时间,不同的目标标识分别用于标识不同的订阅服务端;通过消息发布中心对预设存储队列中的服务标识信息进行监听,得到监听结果;根据监听结果确定向订阅服务端发送目标消息的发送策略,因此,可以解决现有技术中在异常下,订阅服务端接收目标消息失败后,目标消息被丢失等问题,确保了目标消息发送的连续性,提高了目标消发送的稳定性与容错性。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种目标消息的处理方法及装置、存储介质、电子装置。
背景技术
Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者客户端(sub)接收消息。Redis客户端可以订阅任意数量的频道。
图1展示了频道channel1,以及订阅这个频道的三个客户端:client2、client5和client1之间的关系,当有新消息通过PUBLISH命令发送给频道channel1时,这个消息就会被发送给订阅它的三个客户端,一旦消息被发送,如果没有订阅者接收,那么消息就会丢失,并且现有技术存在以下缺点:(1)单个客户端因为特殊状况订阅失败后,发布方并不清楚具体哪一个客户端成功收到本次消息,那些没有收到消息,不能帮助开发人员很快的定位问题;(2)现有技术当异常情况解决后,该条消息所参与的业务并不能自主恢复,需要运维或者开发人员在线下处理,才能恢复,系统体验很差;(3)一般客户端出现因为特殊状况订阅失败后,一般只能采用线下开发代码构造消息体同时连接生产环境进行重新发布,效率低下,同时需要处理者要有一定的业务支持,并不能很快的实现线下重新发布一次消息。
针对相关技术中,在异常下,订阅服务端接收目标消息失败后,目标消息被丢失等问题,尚未提出有效的技术方案。
发明内容
本发明实施例提供了一种目标消息的处理方法及装置、存储介质、电子装置,以至少解决相关技术中,订阅服务端在目标消息接收失败后,目标消息被丢失等问题。
根据本发明的一个实施例,提供了一种目标消息的处理方法,包括:获取目标消息的订阅服务端在目标周期内向预设存储队列中写入的服务标识信息,其中,所述服务标识信息包含以下至少之一:所述订阅服务端的目标标识,所述目标标识的有效时间,不同的目标标识分别用于标识不同的订阅服务端;通过消息发布中心对所述预设存储队列中的所述服务标识信息进行监听,得到监听结果;根据所述监听结果确定向所述订阅服务端发送所述目标消息的发送策略。
在一个示例性实施例中,获取目标消息的订阅服务端在目标周期内向预设存储队列中写入的服务标识信息之前,上述方法还包括:获取所述订阅服务端当前订阅的业务种类;根据所述业务种类设置所述服务标识信息的有效时间。
在一个示例性实施例中,通过消息发布中心对所述预设存储队列中的所述服务标识信息进行监听,包括:通过所述消息发布中心中的监听器对所述服务标识信息进行心跳检测;在所述心跳检测的状态结果为异常的情况下,在所述预设存储队列中生成所述目标消息对应的目标文件,并将所述目标文件保存在所述预设存储队列中。
在一个示例性实施例中,通过所述消息发布中心中的监听器对所述服务标识信息进行心跳检测之前,上述方法还包括:在所述监听器中设置所述心跳检测的判断条件,其中,在所述服务标识信息符合所述判断条件的情况下,确定所述服务标识信息为异常。
在一个示例性实施例中,根据所述监听结果确定向所述订阅服务端发送所述目标消息的发送策略,包括:当所述监听结果指示所述预设存储队列中的所述订阅服务端未出现异常时,将所述目标消息直接发送至所述目标消息对应的订阅服务端中;当所述监听结果指示所述预设存储队列中的部分订阅服务端出现异常时,将所述部分订阅服务端对应的目标消息缓存在所述预设存储队列中,并通过所述消息发布中心通知目标对象所述部分订阅服务端出现异常情况。
在一个示例性实施例中,将所述部分订阅服务端对应的目标消息缓存在所述预设存储队列中之后,上述方法还包括:按照所述部分订阅服务端对应的目标消息对应的发送顺序依次发送所述部分订阅服务端对应的目标消息。
在一个示例性实施例中,通过所述消息发布中心通知目标对象所述部分订阅服务端出现异常情况之后,上述方法还包括:指示所述目标对象对出现异常情况的订阅服务端进行故障排除;在出现异常情况的订阅服务端恢复正常后,将缓存在所述预设存储队列中的所述部分订阅服务端对应的目标消息发送至恢复正常的订阅服务端。
根据本发明的另一个实施例,提供了一种目标消息的处理装置,包括:获取模块,用于获取目标消息的订阅服务端在目标周期内向预设存储队列中写入的服务标识信息,其中,所述服务标识信息包含以下至少之一:所述订阅服务端的目标标识,所述目标标识的有效时间,不同的目标标识分别用于标识不同的订阅服务端;监听模块,用于通过消息发布中心对所述预设存储队列中的所述服务标识信息进行监听,得到监听结果;确定模块,用于根据所述监听结果确定向所述订阅服务端发送所述目标消息的发送策略。
在一个示例性实施例中,上述装置还包括:第一设置模块,用于获取所述订阅服务端当前订阅的业务种类;根据所述业务种类设置所述服务标识信息的有效时间。
在一个示例性实施例中,上述监听模块,还用于通过所述消息发布中心中的监听器对所述服务标识信息进行心跳检测;在所述心跳检测的状态结果为异常的情况下,在所述预设存储队列中生成所述目标消息对应的目标文件,并将所述目标文件保存在所述预设存储队列中。
在一个示例性实施例中,上述装置还包括:第二设置模块,用于在所述监听器中设置所述心跳检测的判断条件,其中,在所述服务标识信息符合所述判断条件的情况下,确定所述服务标识信息为异常。
在一个示例性实施例中,上述确定模块,还用于当所述监听结果指示所述预设存储队列中的所述订阅服务端未出现异常时,将所述目标消息直接发送至所述目标消息对应的订阅服务端中;当所述监听结果指示所述预设存储队列中的部分订阅服务端出现异常时,将所述部分订阅服务端对应的目标消息缓存在所述预设存储队列中,并通过所述消息发布中心通知目标对象所述部分订阅服务端出现异常情况。
在一个示例性实施例中,上述装置还包括:发送模块,按照所述部分订阅服务端对应的目标消息对应的发送顺序依次发送所述部分订阅服务端对应的目标消息。
在一个示例性实施例中,上述装置还包括:指示模块,用于指示所述目标对象对出现异常情况的订阅服务端进行故障排除;在出现异常情况的订阅服务端恢复正常后,将缓存在所述预设存储队列中的所述部分订阅服务端对应的目标消息发送至恢复正常的订阅服务端。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,获取目标消息的订阅服务端在目标周期内向预设存储队列中写入的服务标识信息,其中,所述服务标识信息包含以下至少之一:所述订阅服务端的目标标识,所述目标标识的有效时间,不同的目标标识分别用于标识不同的订阅服务端;通过消息发布中心对所述预设存储队列中的所述服务标识信息进行监听,得到监听结果;根据所述监听结果确定向所述订阅服务端发送所述目标消息的发送策略,也就是说,通过预设存储队列可将异常情况下,订阅服务端接收失败的目标消息进行保存,并在订阅服务端恢复正常后,进行目标消息的重新发送,因此,可以解决现有技术中在异常下,订阅服务端接收目标消息失败后,目标消息被丢失等问题,确保了目标消息发送的连续性,提高了目标消发送的稳定性与容错性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是相关技术中频道与客户端之间的订阅关系示意图;
图2是本发明实施例的一种目标消息的处理方法的计算机终端的硬件结构框图;
图3是根据本发明实施例的目标消息的处理方法的流程图;
图4是本发明可选实施例的基于Redis发布订阅功能遇到网络原因防止消息丢失的解决方案的系统结构示意图;
图5是本发明可选实施例的目标消息的处理方法的流程示意图;
图6是根据本发明实施例的目标消息的处理装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例所提供的方法实施例可以在计算机终端或者设备终端类似的运算装置中执行。以运行在计算机终端上为例,图2是本发明实施例的一种目标消息的处理方法的计算机终端的硬件结构框图。如图2所示,计算机终端可以包括一个或多个(图2中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图2中所示更多或者更少的组件,或者具有与图2所示等同功能或比图2所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的目标消息的处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种目标消息的处理方法,图3是根据本发明实施例的目标消息的处理方法的流程图,该流程包括如下步骤:
步骤S202,获取目标消息的订阅服务端在目标周期内向预设存储队列中写入的服务标识信息,其中,所述服务标识信息包含以下至少之一:所述订阅服务端的目标标识,所述目标标识的有效时间,不同的目标标识分别用于标识不同的订阅服务端;
步骤S204,通过消息发布中心对所述预设存储队列中的所述服务标识信息进行监听,得到监听结果;
步骤S206,根据所述监听结果确定向所述订阅服务端发送所述目标消息的发送策略。
通过上述步骤,获取目标消息的订阅服务端在目标周期内向预设存储队列中写入的服务标识信息,其中,所述服务标识信息包含以下至少之一:所述订阅服务端的目标标识,所述目标标识的有效时间,不同的目标标识分别用于标识不同的订阅服务端;通过消息发布中心对所述预设存储队列中的所述服务标识信息进行监听,得到监听结果;根据所述监听结果确定向所述订阅服务端发送所述目标消息的发送策略,也就是说,通过预设存储队列可将异常情况下,订阅服务端接收失败的目标消息进行保存,并在订阅服务端恢复正常后,进行目标消息的重新发送,因此,可以解决现有技术中在异常下,订阅服务端接收目标消息失败后,目标消息被丢失等问题,确保了目标消息发送的连续性,提高了目标消发送的稳定性与容错性。
在一个示例性实施例中,获取目标消息的订阅服务端在目标周期内向预设存储队列中写入的服务标识信息之前,上述方法还包括:获取所述订阅服务端当前订阅的业务种类;根据所述业务种类设置所述服务标识信息的有效时间。
需要说明的是,由于订阅服务端的种类多种多样,不同业务的目标消息的发送时间也是不一致的,因此,在将订阅服务端中的服务标识信息在目标周期内写入到预设存储队列时,需要根据订阅服务端当前的业务种类为其确定相应的有效时间,根据业务种类的优先等级为其设置相应等级的有效时间,并将设置完成的有效时间发送至预设存储队列中,使得预设存储队列中的目标消息可以在确认的对应有效时间内进行发送。
在一个示例性实施例中,通过消息发布中心对所述预设存储队列中的所述服务标识信息进行监听,包括:通过所述消息发布中心中的监听器对所述服务标识信息进行心跳检测;在所述心跳检测的状态结果为异常的情况下,在所述预设存储队列中生成所述目标消息对应的目标文件,并将所述目标文件保存在所述预设存储队列中。
也就是说,为了保证订阅服务端的状态信息,通过消息发布中心中的监听器对预设存储队列中写入的服务标识信息进行心跳检测,当服务标识信息不存在或者服务标识信息的有效时间已过期时,心跳检测的状态结果为异常的情况,说明该服务标识信息对应的订阅服务端出现异常,此时,在预设存储队列中生成目标消息对应的目标文件,该目标文件用于将发送到异常订阅服务端的目标消息进行有序存储,并且目标文件保存在预设存储队列中。
需要说明的是,目标文件可以是Redis任务队列,也可以是数据库或者文件,本发明对此不作过多限定。
在一个示例性实施例中,通过所述消息发布中心中的监听器对所述服务标识信息进行心跳检测之前,上述方法还包括:在所述监听器中设置所述心跳检测的判断条件,其中,在所述服务标识信息符合所述判断条件的情况下,确定所述服务标识信息为异常。
为了确保监听器在进行心跳检测时的判断结果更加准确,还可以根据订阅服务端所上传服务标识信息的情况,对监听器的判断条件进行设置,当出现符合判断条件的相关服务标识信息时,可快速的确定出服务标识信息为异常,其对应的订阅服务端此时也异常。
在一个示例性实施例中,根据所述监听结果确定向所述订阅服务端发送所述目标消息的发送策略,包括:当所述监听结果指示所述预设存储队列中的所述订阅服务端未出现异常时,将所述目标消息直接发送至所述目标消息对应的订阅服务端中;当所述监听结果指示所述预设存储队列中的部分订阅服务端出现异常时,将所述部分订阅服务端对应的目标消息缓存在所述预设存储队列中,并通过所述消息发布中心通知目标对象所述部分订阅服务端出现异常情况。
例如,在消息发布中心通过监听器对预设存储队列中的服务标识信息进行监听,监听结果指示预设存储队列中的订阅服务端未出现异常时,在服务标识信息的有效时间内,将需要发送的目标消息直接发送至目标消息对应的订阅服务端中;当监听结果指示预设存储队列中的部分订阅服务端出现异常时,其余正常的订阅服务端根据服务标识信息的有效时间继续进行目标消息的下发,出现异常的部分订阅服务端对应的目标消息则缓存在预设存储队列中,并通过消息发布中心通知目标对象部分订阅服务端出现异常情况。
在一个示例性实施例中,将所述部分订阅服务端对应的目标消息缓存在所述预设存储队列中之后,上述方法还包括:按照所述部分订阅服务端对应的目标消息对应的发送顺序依次发送所述部分订阅服务端对应的目标消息。
也就是说,在异常的部分订阅服务端恢复正常工作后,根据出现异常的部分订阅服务端对应的目标消息缓存在预设存储队列中的顺序,根据预设存储队列中的目标消息的缓存顺序将目标消息依次发送至对应的部分订阅服务端。
在一个示例性实施例中,通过所述消息发布中心通知目标对象所述部分订阅服务端出现异常情况之后,上述方法还包括:指示所述目标对象对出现异常情况的订阅服务端进行故障排除;在出现异常情况的订阅服务端恢复正常后,将缓存在所述预设存储队列中的所述部分订阅服务端对应的目标消息发送至恢复正常的订阅服务端。
例如,在部分订阅服务端出现异常后,消息发布中心向目标对象发出包含出现异常的订阅服务端的故障编码,指示目标对象对出现异常情况的订阅服务端进行故障排除,并在故障排出后,将缓存在预设存储队列中的部分订阅服务端对应的目标消息发送至恢复正常的订阅服务端。
为了更好的理解上述目标消息的处理方法的过程,以下结合可选实施例对上述目标消息的处理方法流程进行说明。
本发明可选实施例中,主要提供了一种目标消息的处理方法,利用现有Redis实现服务间的消息通信,基于Redis具有的发布订阅功能,解决解决Redis发布订阅过程中在遇到服务异常原因造成的消息丢失问题,规避从而造成业务场景失败的状况,例如,由于网络突然中断然后又恢复造成消费端订阅失败,发送消息丢失,从而造成业务场景失败的状况,此外,本发明可选实施例还提供重试与线下手动处理的方案,大大提高了系统的稳定性。
图4为本发明可选实施例的基于Redis发布订阅功能遇到网络原因防止消息丢失的解决方案的系统结构示意图。该消息系统包含:消息发布服务中心32、Redis缓存库34、消息订阅服务36。
消息发布服务中心32,用于通过监听器定时监听订阅服务36写入Redis缓存库34的服务标识key是否过期;
消息订阅服务36,用于不断的通过定时的方式往Redis写入标识自身的服务标识key,并设置过期时间(相当于本发明实施例中的有效时间)。
具体流程如下:消息订阅服务1/2/3,不断的通过定时的方式往Redis写入标识自身的服务标识key,并设置过期时间,消息中心发布服务通过监听器监听这三个指定的key1/key2/key3是否过期,若其中有一个key过期,即可及时的将服务该服务标识置为下线,则订阅者服务心跳检测为失败,则消息发布服务切换到异常流程,用来保护消息不丢失,进而确保消息发布服务中心通过心跳检测检查服务状态,对订阅服务的实时监控;
Redis缓存库34,用于当心跳检测检测到有服务异常下线时,此时若送消息会造成消息丢失,且不可追踪与重复处理,采用图3的上述系统结构,消息服务会将发送的消息存储如Redis任务队列中(也可存储至数据库或者序列化到文件中),待异常处理解决,消息服务可按照消息发送顺序,依次处理,很好的保证了业务进行,从而在网路异常时进行消息存储,防止消息丢失。当异常的订阅服务恢复后,系统无需开发人员参与,即可正常恢复,处理之前消息队列中的积攒消息,处理效率高。
消息发布服务中心32,还具有服务异常通知功能,当心跳检测到订阅服务异常时,可以及时准确的检测到具体哪一台服务异常,立即发送邮件给开发运维人员,方便及时排除问题。
可选的,如图5为本发明可选实施例的目标消息的处理方法的流程示意图,包含以下步骤:
步骤1:业务场景触发消息中心。
步骤2:通过心跳检测,检测所有订阅方服务是否正常。
步骤3:通过心跳检测,检测所有订阅方服务不正常。判断有部分订阅服务出现异常时,将需要发送的消息按照优先顺序加入到Redis任务池中,邮件通知研发人员,排查服务心跳检测异常问题。
步骤4:判断是否排除问题;当问题已排除,流程转入业务场景触发消息中心。
步骤5:当问题未排除,流程转入线下触发,等待研发人员随后处理。
步骤6:通过心跳检测,检测所有订阅方服务正常,查看Redis任务池中是否有数据,当任务池中存在的数据时,依照优先发送队列内的消息进行发送,并在订阅方成功接收到消息,任务发送成功;当任务池中不存在的数据时,结束关于Redis任务池中数据的发送。
综上,通过本发明可选实施例,通过服务心跳检测功能、订阅服务异常时的消息保存与积攒消息再次推送、无需开发人员参与的业务自恢复,进而在无法引用消息中间件的项目中,利用现有Redis实现服务间的消息通信,即无需引入第三方消息中间件,利用现有的服务内的Redis,即可实现消息发送与接收,减少服务器资源浪费,并且整个消息系统遇到异常情况时,不会造成消息的丢失,提高目标消息系统的稳定性与容错性,解决Redis发布订阅过程中在遇到服务异常原因造成的消息丢失问题,规避从而造成业务场景失败的状况。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种目标消息的处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本发明实施例的目标消息的处理装置的结构框图,如图6所示,该装置包括:
(1)获取模块52,用于获取目标消息的订阅服务端在目标周期内向预设存储队列中写入的服务标识信息,其中,所述服务标识信息包含以下至少之一:所述订阅服务端的目标标识,所述目标标识的有效时间,不同的目标标识分别用于标识不同的订阅服务端;
(2)监听模块54,用于通过消息发布中心对所述预设存储队列中的所述服务标识信息进行监听,得到监听结果;
(3)确定模块56,用于根据所述监听结果确定向所述订阅服务端发送所述目标消息的发送策略。
通过上述装置,获取目标消息的订阅服务端在目标周期内向预设存储队列中写入的服务标识信息,其中,所述服务标识信息包含以下至少之一:所述订阅服务端的目标标识,所述目标标识的有效时间,不同的目标标识分别用于标识不同的订阅服务端;通过消息发布中心对所述预设存储队列中的所述服务标识信息进行监听,得到监听结果;根据所述监听结果确定向所述订阅服务端发送所述目标消息的发送策略,也就是说,通过预设存储队列可将异常情况下,订阅服务端接收失败的目标消息进行保存,并在订阅服务端恢复正常后,进行目标消息的重新发送,因此,可以解决现有技术中在异常下,订阅服务端接收目标消息失败后,目标消息被丢失等问题,确保了目标消息发送的连续性,提高了目标消发送的稳定性与容错性。
在一个示例性实施例中,上述装置还包括:第一设置模块,用于获取所述订阅服务端当前订阅的业务种类;根据所述业务种类设置所述服务标识信息的有效时间。
需要说明的是,由于订阅服务端的种类多种多样,不同业务的目标消息的发送时间也是不一致的,因此,在将订阅服务端中的服务标识信息在目标周期内写入到预设存储队列时,需要根据订阅服务端当前的业务种类为其确定相应的有效时间,根据业务种类的优先等级为其设置相应等级的有效时间,并将设置完成的有效时间发送至预设存储队列中,使得预设存储队列中的目标消息可以在确认的对应有效时间内进行发送。
在一个示例性实施例中,上述监听模块,还用于通过所述消息发布中心中的监听器对所述服务标识信息进行心跳检测;在所述心跳检测的状态结果为异常的情况下,在所述预设存储队列中生成所述目标消息对应的目标文件,并将所述目标文件保存在所述预设存储队列中。
也就是说,为了保证订阅服务端的状态信息,通过消息发布中心中的监听器对预设存储队列中写入的服务标识信息进行心跳检测,当服务标识信息不存在或者服务标识信息的有效时间已过期时,心跳检测的状态结果为异常的情况,说明该服务标识信息对应的订阅服务端出现异常,此时,在预设存储队列中生成目标消息对应的目标文件,该目标文件用于将发送到异常订阅服务端的目标消息进行有序存储,并且目标文件保存在预设存储队列中。
需要说明的是,目标文件可以是Redis任务队列,也可以是数据库或者文件。
在一个示例性实施例中,上述装置还包括:第二设置模块,用于在所述监听器中设置所述心跳检测的判断条件,其中,在所述服务标识信息符合所述判断条件的情况下,确定所述服务标识信息为异常。
为了确保监听器在进行心跳检测时的判断结果更加准确,还可以根据订阅服务端所上传服务标识信息的情况,对监听器的判断条件进行设置,当出现符合判断条件的相关服务标识信息时,可快速的确定出服务标识信息为异常,其对应的订阅服务端此时也异常。
在一个示例性实施例中,上述确定模块,还用于当所述监听结果指示所述预设存储队列中的所述订阅服务端未出现异常时,将所述目标消息直接发送至所述目标消息对应的订阅服务端中;当所述监听结果指示所述预设存储队列中的部分订阅服务端出现异常时,将所述部分订阅服务端对应的目标消息缓存在所述预设存储队列中,并通过所述消息发布中心通知目标对象所述部分订阅服务端出现异常情况。
例如,在消息发布中心通过监听器对预设存储队列中的服务标识信息进行监听,监听结果指示预设存储队列中的订阅服务端未出现异常时,在服务标识信息的有效时间内,将需要发送的目标消息直接发送至目标消息对应的订阅服务端中;当监听结果指示预设存储队列中的部分订阅服务端出现异常时,其余正常的订阅服务端根据服务标识信息的有效时间继续进行目标消息的下发,出现异常的部分订阅服务端对应的目标消息则缓存在预设存储队列中,并通过消息发布中心通知目标对象部分订阅服务端出现异常情况。
在一个示例性实施例中,上述装置还包括:发送模块,按照所述部分订阅服务端对应的目标消息对应的发送顺序依次发送所述部分订阅服务端对应的目标消息。
也就是说,在异常的部分订阅服务端恢复正常工作后,根据出现异常的部分订阅服务端对应的目标消息缓存在预设存储队列中的顺序,根据预设存储队列中的目标消息的缓存顺序将目标消息依次发送至对应的部分订阅服务端。
在一个示例性实施例中,上述装置还包括:指示模块,用于指示所述目标对象对出现异常情况的订阅服务端进行故障排除;在出现异常情况的订阅服务端恢复正常后,将缓存在所述预设存储队列中的所述部分订阅服务端对应的目标消息发送至恢复正常的订阅服务端。
例如,在部分订阅服务端出现异常后,消息发布中心向目标对象发出包含出现异常的订阅服务端的故障编码,指示目标对象对出现异常情况的订阅服务端进行故障排除,并在故障排出后,将缓存在预设存储队列中的部分订阅服务端对应的目标消息发送至恢复正常的订阅服务端。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取目标消息的订阅服务端在目标周期内向预设存储队列中写入的服务标识信息,其中,所述服务标识信息包含以下至少之一:所述订阅服务端的目标标识,所述目标标识的有效时间,不同的目标标识分别用于标识不同的订阅服务端;
S2,通过消息发布中心对所述预设存储队列中的所述服务标识信息进行监听,得到监听结果;
S3,根据所述监听结果确定向所述订阅服务端发送所述目标消息的发送策略。
在一个示例性实施例中,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
在一个示例性实施例中,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取目标消息的订阅服务端在目标周期内向预设存储队列中写入的服务标识信息,其中,所述服务标识信息包含以下至少之一:所述订阅服务端的目标标识,所述目标标识的有效时间,不同的目标标识分别用于标识不同的订阅服务端;
S2,通过消息发布中心对所述预设存储队列中的所述服务标识信息进行监听,得到监听结果;
S3,根据所述监听结果确定向所述订阅服务端发送所述目标消息的发送策略。
在一个示例性实施例中,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,在一个示例性实施例中,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种目标消息的处理方法,其特征在于,包括:
获取目标消息的订阅服务端在目标周期内向预设存储队列中写入的服务标识信息,其中,所述服务标识信息包含以下至少之一:所述订阅服务端的目标标识,所述目标标识的有效时间,不同的目标标识分别用于标识不同的订阅服务端;
通过消息发布中心对所述预设存储队列中的所述服务标识信息进行监听,得到监听结果;
根据所述监听结果确定向所述订阅服务端发送所述目标消息的发送策略。
2.根据权利要求1所述的方法,其特征在于,获取目标消息的订阅服务端在目标周期内向预设存储队列中写入的服务标识信息之前,所述方法还包括:
获取所述订阅服务端当前订阅的业务种类;
根据所述业务种类设置所述服务标识信息的有效时间。
3.根据权利要求1所述的方法,其特征在于,通过消息发布中心对所述预设存储队列中的所述服务标识信息进行监听,包括:
通过所述消息发布中心中的监听器对所述服务标识信息进行心跳检测;
在所述心跳检测的状态结果为异常的情况下,在所述预设存储队列中生成所述目标消息对应的目标文件,并将所述目标文件保存在所述预设存储队列中。
4.根据权利要求3所述的方法,其特征在于,通过所述消息发布中心中的监听器对所述服务标识信息进行心跳检测之前,所述方法还包括:
在所述监听器中设置所述心跳检测的判断条件,其中,在所述服务标识信息符合所述判断条件的情况下,确定所述服务标识信息为异常。
5.根据权利要求1所述的方法,其特征在于,根据所述监听结果确定向所述订阅服务端发送所述目标消息的发送策略,包括:
当所述监听结果指示所述预设存储队列中的所述订阅服务端未出现异常时,将所述目标消息直接发送至所述目标消息对应的订阅服务端中;
当所述监听结果指示所述预设存储队列中的部分订阅服务端出现异常时,将所述部分订阅服务端对应的目标消息缓存在所述预设存储队列中,并通过所述消息发布中心通知目标对象所述部分订阅服务端出现异常情况。
6.根据权利要求5所述的方法,其特征在于,将所述部分订阅服务端对应的目标消息缓存在所述预设存储队列中之后,所述方法还包括:
按照所述部分订阅服务端对应的目标消息对应的发送顺序依次发送所述部分订阅服务端对应的目标消息。
7.根据权利要求5所述的方法,其特征在于,通过所述消息发布中心通知目标对象所述部分订阅服务端出现异常情况之后,所述方法还包括:
指示所述目标对象对出现异常情况的订阅服务端进行故障排除;
在出现异常情况的订阅服务端恢复正常后,将缓存在所述预设存储队列中的所述部分订阅服务端对应的目标消息发送至恢复正常的订阅服务端。
8.一种目标消息的处理装置,其特征在于,包括:
获取模块,用于获取目标消息的订阅服务端在目标周期内向预设存储队列中写入的服务标识信息,其中,所述服务标识信息包含以下至少之一:所述订阅服务端的目标标识,所述目标标识的有效时间,不同的目标标识分别用于标识不同的订阅服务端;
监听模块,用于通过消息发布中心对所述预设存储队列中的所述服务标识信息进行监听,得到监听结果;
确定模块,用于根据所述监听结果确定向所述订阅服务端发送所述目标消息的发送策略。
9.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011300263.6A CN112422684B (zh) | 2020-11-18 | 2020-11-18 | 目标消息的处理方法及装置、存储介质、电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011300263.6A CN112422684B (zh) | 2020-11-18 | 2020-11-18 | 目标消息的处理方法及装置、存储介质、电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112422684A true CN112422684A (zh) | 2021-02-26 |
CN112422684B CN112422684B (zh) | 2023-03-28 |
Family
ID=74774474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011300263.6A Active CN112422684B (zh) | 2020-11-18 | 2020-11-18 | 目标消息的处理方法及装置、存储介质、电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112422684B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882853A (zh) * | 2021-03-31 | 2021-06-01 | 中国工商银行股份有限公司 | 一种数据处理方法、装置及设备 |
CN114124881A (zh) * | 2021-11-30 | 2022-03-01 | 中国建设银行股份有限公司 | 一种基于优先级的消息推送方法及相关装置 |
CN114172915A (zh) * | 2021-11-05 | 2022-03-11 | 中汽创智科技有限公司 | 一种消息同步方法、自动驾驶系统、存储介质及电子设备 |
CN115174296A (zh) * | 2022-05-30 | 2022-10-11 | 青岛海尔科技有限公司 | 设备功能接入方法、装置、存储介质及电子装置 |
WO2024092941A1 (zh) * | 2022-10-31 | 2024-05-10 | 海尔优家智能科技(北京)有限公司 | 组件信息的处理方法和装置、存储介质及电子装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107592351A (zh) * | 2017-09-06 | 2018-01-16 | 北京锐安科技有限公司 | 一种基于Redis的多用户发布订阅方法及系统 |
CN110750426A (zh) * | 2019-10-30 | 2020-02-04 | 北京明朝万达科技股份有限公司 | 服务状态监测方法、装置、电子设备及可读存储介质 |
US20200051019A1 (en) * | 2018-08-07 | 2020-02-13 | Walmart Apollo, Llc | System and method for anomaly detection and deduplication of electronic data feeds |
CN111866191A (zh) * | 2020-09-24 | 2020-10-30 | 深圳市易博天下科技有限公司 | 消息事件的分发方法、分发平台、系统及服务器 |
-
2020
- 2020-11-18 CN CN202011300263.6A patent/CN112422684B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107592351A (zh) * | 2017-09-06 | 2018-01-16 | 北京锐安科技有限公司 | 一种基于Redis的多用户发布订阅方法及系统 |
US20200051019A1 (en) * | 2018-08-07 | 2020-02-13 | Walmart Apollo, Llc | System and method for anomaly detection and deduplication of electronic data feeds |
CN110750426A (zh) * | 2019-10-30 | 2020-02-04 | 北京明朝万达科技股份有限公司 | 服务状态监测方法、装置、电子设备及可读存储介质 |
CN111866191A (zh) * | 2020-09-24 | 2020-10-30 | 深圳市易博天下科技有限公司 | 消息事件的分发方法、分发平台、系统及服务器 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882853A (zh) * | 2021-03-31 | 2021-06-01 | 中国工商银行股份有限公司 | 一种数据处理方法、装置及设备 |
CN114172915A (zh) * | 2021-11-05 | 2022-03-11 | 中汽创智科技有限公司 | 一种消息同步方法、自动驾驶系统、存储介质及电子设备 |
CN114172915B (zh) * | 2021-11-05 | 2023-10-31 | 中汽创智科技有限公司 | 一种消息同步方法、自动驾驶系统、存储介质及电子设备 |
CN114124881A (zh) * | 2021-11-30 | 2022-03-01 | 中国建设银行股份有限公司 | 一种基于优先级的消息推送方法及相关装置 |
CN115174296A (zh) * | 2022-05-30 | 2022-10-11 | 青岛海尔科技有限公司 | 设备功能接入方法、装置、存储介质及电子装置 |
CN115174296B (zh) * | 2022-05-30 | 2024-03-22 | 青岛海尔科技有限公司 | 设备功能接入方法、装置、存储介质及电子装置 |
WO2024092941A1 (zh) * | 2022-10-31 | 2024-05-10 | 海尔优家智能科技(北京)有限公司 | 组件信息的处理方法和装置、存储介质及电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112422684B (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112422684B (zh) | 目标消息的处理方法及装置、存储介质、电子装置 | |
EP3386150B1 (en) | Terminal failure processing method, device and system | |
CN105991412B (zh) | 消息推送方法及装置 | |
CN111459954A (zh) | 分布式数据同步方法、装置、设备及介质 | |
CN110830283B (zh) | 故障检测方法、装置、设备和系统 | |
CN106993043B (zh) | 基于代理的数据通信系统和方法 | |
CN109962827B (zh) | 设备链路检测方法、装置、设备及可读存储介质 | |
CN113794597A (zh) | 告警信息处理方法、系统、电子设备及存储介质 | |
CN110674096A (zh) | 节点故障排查方法、装置、设备及计算机可读存储介质 | |
CN113360783B (zh) | 用户在线列表更新方法、装置及计算机设备 | |
US10205630B2 (en) | Fault tolerance method for distributed stream processing system | |
CN112653569A (zh) | 一种设备管理的方法、装置及系统 | |
CN110224872B (zh) | 一种通信方法、装置及存储介质 | |
CN112437146B (zh) | 一种设备状态同步方法、装置及系统 | |
CN109450702A (zh) | 一种数据处理方法及装置 | |
CN111338573B (zh) | 终端数据管理方法及系统、服务器和通信终端 | |
CN113965447B (zh) | 一种在线云诊断方法、装置、系统、设备及存储介质 | |
CN114143728A (zh) | 消息处理方法、通信系统、电子设备和存储介质 | |
CN112769889B (zh) | 服务数据的推送方法、装置、存储介质以及电子装置 | |
CN112564968A (zh) | 故障处理方法、装置及存储介质 | |
CN112799856A (zh) | 一种用于获取数据的方法及装置 | |
CN116669084B (zh) | 基于蜂窝网络的故障修复方法、装置、设备以及存储介质 | |
US20240298150A1 (en) | 5g message processing method, 5g message center, terminal and storage medium | |
CN112689010B (zh) | 设备消息的传输方法及装置、存储介质、电子装置 | |
CN118316887B (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 |