CN110719318A - 消息处理方法和系统 - Google Patents
消息处理方法和系统 Download PDFInfo
- Publication number
- CN110719318A CN110719318A CN201910843975.3A CN201910843975A CN110719318A CN 110719318 A CN110719318 A CN 110719318A CN 201910843975 A CN201910843975 A CN 201910843975A CN 110719318 A CN110719318 A CN 110719318A
- Authority
- CN
- China
- Prior art keywords
- message
- target
- sending
- processing
- server
- 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
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/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- 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
Abstract
本申请涉及数据处理技术,提供了一种消息处理方法和系统。该方法包括:消息比对服务器根据所获取到的已发送消息和已处理消息确定目标消息,将根据目标消息的目标消息标识生成的消息重发指令发送至消息发送设备;消息发送设备根据解析消息重发指令得到的目标消息标识确定消息存储服务器,通过消息发送客户端将目标消息发送至消息存储服务器;消息存储服务器将目标消息存储至消息主题;消息调度服务器通过已订阅消息主题的虚拟消息处理方实例读取目标消息,并将目标消息推送至消息处理设备;消息调度服务器在接收到消息处理设备反馈的提示信息时将目标消息确定为已处理消息并存储。采用本方法能够提高数据处理的可靠性。
Description
技术领域
本申请涉及互联网技术领域,特别是涉及一种消息处理方法和系统。
背景技术
随着计算机技术和互联网技术的不断发展,互联网业务逐渐发展起来,随着互联网业务量的剧增,分布式系统应运而生,为互联网业务提供了可靠的保障。传统的分布式系统,消息发送设备直接将消息发送至消息处理设备,该种消息发送方式消息发送设备和消息处理设备之间的耦合度比较高,系统的伸缩性和可用性较低,且存在消息容易丢失的问题。如何保障分布式系统中消息的可靠性是值得关注的问题。
目前,在分布式系统中引入了消息中间件,用于在消息发送设备和消息处理设备之间存储并传递消息,实现了消息的异步传递、系统解耦和流量的削峰平谷,提高了系统的可用性和可伸缩性。但是,目前采用的消息中间件,比如ActiveMQ和kafka,在异常情况下也均存在消息丢失的问题,使得部分消息不能被有效的处理,从而降低了消息处理的可靠性。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高消息处理的可靠性的消息处理方法和系统。
一种消息处理方法,所述方法包括:
消息比对服务器获取已发送消息和已处理消息,根据所述已发送消息和所述已处理消息确定待重发的目标消息,将根据所述目标消息所对应的目标消息标识生成的消息重发指令发送至消息发送设备;
所述消息发送设备解析所述消息重发指令得到所述目标消息标识,根据所述目标消息标识确定预配置的消息存储服务器,并通过消息发送客户端将所述目标消息发送至所述消息存储服务器;
所述消息存储服务器将接收到的目标消息存储至相应的消息主题;
消息调度服务器通过已订阅所述消息主题的虚拟消息处理方实例,从所述消息主题中读取所述目标消息,将读取的所述目标消息推送至消息处理设备;
所述消息调度服务器在接收到所述消息处理设备针对所述目标消息反馈的提示信息时,将所述目标消息确定为已处理消息并进行存储。
在其中一个实施例中,所述方法还包括:
所述消息发送设备获取业务请求,根据所述业务请求获取业务数据,根据所述业务数据进行业务处理,并触发生成消息;
所述消息发送设备将所述业务数据存储至业务表,将所述消息存储至消息表,并实时检测所述业务处理的处理结果;
当所述处理结果为处理成功时,所述消息发送设备将所述业务数据对应的业务处理状态更新至所述业务表,并将所述业务数据写入数据库;
在将所述业务数据成功写入所述数据库后,所述消息发送设备通过所述消息发送客户端将所述消息发送至相应的消息存储服务器。
在其中一个实施例中,所述消息发送设备通过所述消息发送客户端将所述消息发送至相应的消息存储服务器之后,所述方法还包括:
所述消息发送设备实时检测所述消息的发送结果;
当所述发送结果为发送成功时,所述消息发送设备将消息发送状态对应于所述消息更新至所述消息表;
当所述发送结果为发送失败时,所述消息发送设备借助于所述消息发送客户端将所述消息重新发送至相应的所述消息存储服务器。
在其中一个实施例中,所述消息发送设备通过所述消息发送客户端将所述消息发送至相应的消息存储服务器,包括:
所述消息发送设备确定所述业务请求的消息发送类型,当所述消息发送类型为延迟消息发送类型时,将所述消息缓存至消息延迟队列,并实时统计所述消息的缓存时长;
当统计的所述缓存时长达到所述业务请求所对应的预设延迟时长时,所述消息发送设备通过所述消息发送客户端从所述消息延迟队列中读取缓存的所述消息,并将读取的所述消息发送至相应的消息存储服务器。
在其中一个实施例中,所述将读取的所述目标消息推送至消息处理设备之后,所述方法还包括:
所述消息调度服务器接收所述消息处理设备针对所述目标消息反馈的消息送达结果,当所述消息送达结果为异常送达或报错时,将所述目标消息再次推送至所述消息处理设备;
所述消息调度服务器实时统计所述消息送达结果的反馈等待时长,当统计的所述反馈等待时长达到预设等待时长时,将所述目标消息再次推送至所述消息处理设备。
在其中一个实施例中,所述将读取的所述目标消息推送至消息处理设备之后,所述方法还包括:
所述消息处理设备将所述目标消息所对应的目标消息标识与预存储的消息标识列表进行匹配;
当匹配失败时,所述消息处理设备对所述目标消息进行处理,在所述目标消息处理完毕后将所述目标消息标识更新至所述消息标识列表中,并向所述消息调度服务器反馈提示信息。
在其中一个实施例中,所述消息存储服务器多于一个;所述方法还包括:
所述消息发送设备接收监控服务器推送的更新的配置文件,并通过所述消息发送客户端根据所述更新的配置文件更新预配置的消息存储服务器;所述更新的配置文件,是所述监控服务器在监听到多于一个的消息存储服务器中存在运行异常的消息存储服务器时,触发生成的配置文件。
一种消息处理系统,所述系统包括:消息比对服务器、消息发送设备、消息存储服务器、消息调度服务器和消息处理设备;
所述消息比对服务器,用于获取已发送消息和已处理消息,根据所述已发送消息和所述已处理消息确定待重发的目标消息,将根据所述目标消息所对应的目标消息标识生成的消息重发指令发送至所述消息发送设备;
所述消息发送设备,用于解析所述消息重发指令得到所述目标消息标识,根据所述目标消息标识确定预配置的所述消息存储服务器,并通过消息发送客户端将所述目标消息发送至所述消息存储服务器;
所述消息存储服务器,用于将接收到的目标消息存储至相应的消息主题;
所述消息调度服务器,用于通过已订阅所述消息主题的虚拟消息处理方实例,从所述消息主题中读取所述目标消息,将读取的所述目标消息推送至所述消息处理设备;
所述消息处理设备,用于对接收到的所述目标消息进行处理,并针对所述目标消息向所述消息调度服务器反馈提示信息;
所述消息调度服务器,还用于在接收到所提示信息时,将所述目标消息确定为已处理消息并进行存储。
在其中一个实施例中,所述消息发送设备,还用于获取业务请求,根据所述业务请求获取业务数据,根据所述业务数据进行业务处理,并触发生成消息;将所述业务数据存储至业务表,将所述消息存储至消息表,并实时检测所述业务处理的处理结果;当所述处理结果为处理成功时,将所述业务数据对应的业务处理状态更新至所述业务表,并将所述业务数据写入数据库;在将所述业务数据成功写入所述数据库后,通过所述消息发送客户端将所述消息发送至相应的消息存储服务器。
在其中一个实施例中,所述消息存储服务器多于一个;所述系统还包括:监控服务器;
所述监控服务器,用于监听多于一个的消息存储服务器的运行状态,在监听到所述多于一个的消息存储服务器中存在运行异常的消息存储服务器时,触发生成更新的配置文件;
所述消息发送设备,还用于接收所述监控服务器推送的所述更新的配置文件,并通过所述消息发送客户端根据所述更新的配置文件更新预配置的消息存储服务器。
上述消息处理方法和系统,消息比对服务器基于已发送消息和已处理消息确定待重发的目标消息,并针对该目标消息触发消息重发流程,以保证该目标消息能够被有效处理,从而能够提高消息处理的可靠性。消息发送设备通过消息发送客户端,将待重发的目标消息发送至预配置的相应消息存储服务器进行存储,既规范了消息发送的格式和形式,以便于对消息进行监控和处理,又能够实现消息的负载均衡,降低消息的阻塞,从而能够提高消息处理效率。消息存储服务器将目标消息按照消息主题进行存储,以便于已订阅该消息主题的虚拟消息处理方实例能够及时读取该目标消息,并将读取的目标消息推送至消息处理设备进行处理,能够提高消息处理的效率和可靠性。部署有该虚拟消息处理方实例的消息调度服务器在接收到消息处理设备反馈的提示信息后,将目标消息确定为已处理消息,以保证目标消息能够被有效处理,从而能够进一步提高消息处理的可靠性。
附图说明
图1为一个实施例中消息处理方法的应用场景图;
图2为一个实施例中消息处理方法的流程示意图;
图3为另一个实施例中消息处理方法的流程示意图;
图4为一个实施例中消息处理系统的架构图;
图5为一个实施例中计算机设备的内部结构图;
图6为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的消息处理方法,可以应用于如图1所示的应用环境中。其中,消息比对服务器102通过网络分别与消息发送设备104和消息调度服务器108进行通信,消息存储服务器106通过网络分别与消息发送设备104和消息调度服务器108进行通信,消息调度服务器108通过网络与消息处理设备110进行通信。消息比对服务器102根据已发送消息和已处理消息确定待重发的目标消息,将根据目标消息对应的目标消息标识生成的消息重发指令发送至消息发送设备104。消息发送设备104根据消息重发指令中的目标消息标识确定预配置的消息存储服务器106,并通过消息发送客户端将目标消息发送至消息存储服务器106。消息存储服务器106将目标消息存储至相应消息主题,以便于部署有已订阅该消息主题的虚拟消息处理方实例的消息调度服务器108,通过该虚拟消息处理方实例从该消息主题中读取目标消息,并将目标消息推送至消息处理设备110。消息调度服务器108在接收到消息处理设备110针对目标消息反馈的提示信息时,将该目标消息确定为已处理消息并进行存储。消息发送设备104和消息处理设备110可以是终端或服务器,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以是独立的服务器或者是多个服务器组成的服务器集群。消息比对服务器102、消息存储服务器106和消息调度服务器108可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种消息处理方法,该方法具体包括以下步骤:
S202,消息比对服务器获取已发送消息和已处理消息,根据已发送消息和已处理消息确定待重发的目标消息,将根据目标消息所对应的目标消息标识生成的消息重发指令发送至消息发送设备。
其中,已发送消息是指已发送成功的消息,具体可以是指消息发送设备已成功发送至消息存储服务器的消息。已处理消息是指已处理完毕的消息,具体可以是指消息处理设备已处理完毕的消息。待重发的目标消息是指待消息发送服务器重新发送至消息存储服务器的消息。目标消息标识用于唯一标识消息或目标消息,具体可以是由数字、字母和符号等字符组成的字符串。消息重发指令是触发消息重发操作的指令,用于指示消息发送设备将相应目标消息重新发送至预配置的消息存储服务器。
具体地,消息比对服务器实时检测预设触发条件,当检测到预设触发条件时,根据所检测到的预设触发条件获取已发送消息和已处理消息,将所获取到的已发送消息和已处理消息进行比较,并根据比较结果确定待重发的目标消息。消息比对服务器获取与待重发的目标消息对应的目标消息标识,根据所获取到的目标消息标识生成消息重发指令,并将所生成的消息重发指令发送至消息发送设备。预设触发条件比如检测到当前时间与预设触发时间一致,或者,获取到消息比对指令。
在一个实施例中,消息比对服务器将已发送消息和已处理消息进行比对,并将属于已发送消息但不属于已处理消息的消息确定为待重发的目标消息,也就是将从已发送消息中剔除与已处理消息一致的消息后的消息确定为待重发的目标消息。可以理解,已发送消息的数量大于或等于已处理消息的数量,通过比对将已发送消息中不同于已处理消息的消息确定为待重发的目标消息。
在一个实施例中,已处理消息是指已处理成功的消息,具体可以是指消息处理设备已成功处理的消息。
在一个实施例中,已处理消息携带有消息处理结果。消息比对服务器通过已发送消息和已处理消息的比对,将同属于已发送消息和已处理消息,但相应消息处理结果为处理失败的消息确定为待重发的目标消息。
在一个实施例中,消息比对服务器从消息发送设备的数据库中获取已发送消息,并从消息调度服务器的数据库中获取已处理消息。消息比对服务器具体可从消息发送设备的消息发送数据表中获取已发送消息,并从消息调度服务器的消息处理数据表中获取已处理消息。在一个实施例中,消息比对服务器从消息处理设备的数据库和/或消息处理数据表中获取已处理消息。
在一个实施例中,消息比对服务器预先从消息发送设备获取已发送消息,从消息调度服务器获取已处理消息,将所获取到的已发送消息和已处理消息缓存在本地缓存中。消息比对服务器可按照预设周期定期执行从消息发送设备获取已发送消息的步骤。消息比服务器根据所检测到的预设触发条件从本地缓存中获取已缓存的已发送消息和已处理消息。这样,能够提高已发送消息和已处理消息的获取效率,从而能够提高消息比对效率,进而能够提高消息处理效率。
在一个实施例中,消息比对服务器将所获取到的已发送消息和已处理消息进行比对,并根据比对配置参数对比对失败的已发送消息进行重试比对或循环比对。具体地,已发送消息和已处理消息均携带有时间戳。消息比对服务器根据比对失败的已发送消息所对应的已发送消息标识查询预配置的延迟容忍时长,若当前时间与该比对失败的已发送消息所携带的时间戳之间的时长达到相应延迟容忍时长,则将该比对失败的已发送消息确定为待重发的目标消息。可以理解,比对失败的已发送消息,是指所获取到的已发送消息中与已处理消息不一致的已发送消息,或者,同时存在于已发送消息和已处理消息中,但是相应消息处理结果为处理失败的消息。比对配置参数是进行重试比对或循环比对所依据的配置参数,比如延迟容忍时长,重试比对或循环比对的次数,或者,重试比对或循环比对的比对周期等。
在一个实施例中,消息比对服务器针对比对失败的已发送消息触发预警信息或告警信息。消息比对服务器可在比对失败的已发送消息所对应的延迟时长达到延迟容忍时长时,触发预警信息或告警信息,具体可根据配置确定。
在一个实施例中,消息比对服务器获取已发送消息所对应的已发送消息标识,以及已处理消息所对应的已处理消息标识,并将已发送消息标识与已处理消息标识进行比对,以确定目标消息标识,并将目标消息标识所对应的目标消息确定为待重发的目标消息。
在一个实施例中,消息比对服务器根据待重发的目标消息和相应目标消息标识生成消息重发指令,或者,根据待重发的目标消息生成消息重发指令。
S204,消息发送设备解析消息重发指令得到目标消息标识,根据目标消息标识确定预配置的消息存储服务器,并通过消息发送客户端将目标消息发送至消息存储服务器。
其中,消息发送客户端是运行于消息发送设备的计算机程序或计算机服务,能够用于将目标消息发送至消息存储服务器。消息发送设备可通过消息发送客户端实现消息的统一发送,也就是通过消息发送客户端将消息以统一的形式和/或格式发送至相应消息存储服务器。
具体地,消息发送设备解析所接收到的消息重发指令得到目标消息标识,根据解析得到的目标消息标识查询相应的配置文件,根据配置文件确定预配置的消息存储服务器,并通过消息发送客户端将目标消息标识所对应的目标消息发送至所确定的消息存储服务器。消息发送设备可通过解析消息重发指令得到目标消息标识所对应的目标消息,或者,根据目标消息标识从数据库或消息发送数据表中查询待重发的目标消息。
在一个实施例中,消息发送设备针对每个类别的消息或业务请求预配置有相应的配置文件,配置文件指定了用于存储相应类别的消息或者存储由相应类别的业务请求触发的消息的消息存储服务器。消息发送设备确定目标消息标识所对应的目标消息所属的类别,并根据所属类别查询预配置的配置文件,或者,根据目标消息标识查询相应的业务请求,并根据业务请求的类别查询预配置的配置文件,进而根据配置文件确定消息存储服务器。
在一个实施例中,消息发送设备根据目标消息标识查询前次接收并存储相应目标消息的消息存储服务器,并将目标消息重新发送至该消息存储服务器。
在一个实施例中,消息发送设备将解析得到的目标消息标识或目标消息标识所对应的目标消息缓存至消息重试队列。消息发送设备实时检测消息重试队列中是否存在待重发的目标消息,并将检测到的目标消息实时发送至预配置的消息存储服务器。消息发送设备可基于时间轮算法进行目标消息的重发,在时间轮到期后将缓存的相应目标消息发送至消息存储服务器。可以理解,消息重试队列与用于缓存首次发送的其他消息的缓存队列进行隔离部署。
在一个实施例中,消息发送设备借助于统一的消息发送客户端将目标消息发送至消息存储服务器,以使得消息存储服务器接收到统一格式和形式的目标消息,以便于实现消息的统一管理、存储和监控。
S206,消息存储服务器将接收到的目标消息存储至相应的消息主题。
其中,消息主题是用于存储同一类消息的存储空间或主题,也就是存储于相同消息主题的消息的类别相同。消息主题具体可以是topic,比如消息存储服务器为kafka(一种高吞吐量的分布式发布订阅消息系统)或ActiveMQ(一种消息中间件),消息存储服务器将所接收到的消息按照消息主题进行存储。
具体地,消息存储服务器在接收到待重发的目标消息后,确定所接收到的目标消息的类别,并将该目标消息按照类别存储至相应的消息主题,以使得已订阅该消息主题的虚拟消息处理方实例能够读取该目标消息。
S208,消息调度服务器通过已订阅消息主题的虚拟消息处理方实例,从消息主题中读取目标消息,将读取的目标消息推送至消息处理设备。
其中,虚拟消息处理方实例是运行中的虚拟消息处理方程序。虚拟消息处理方程序是提供消息读取及传递能力的计算机程序。虚拟消息处理方实例具体可以是用于读取并传递消息的虚拟消息处理方线程或虚拟消息处理方对象。
具体地,消息调度服务器通过已订阅消息主题的虚拟消息处理方实例实时监听存储至该消息出题的目标消息,以从该消息主题中读取所监听到的目标消息。消息调度服务器确定用于处理所读取出的目标消息的消息处理设备,并通过虚拟消息处理方实例将该目标消息推送至所确定的消息处理设备。可以理解,在消息存储服务器将待重发的目标消息存储至相应消息主题后,已订阅该消息主题的虚拟消息处理方实例能够及时监听到该目标消息,部署有该虚拟消息处理方实例的消息调度服务器通过该虚拟消息处理方实例能够及时从消息主题中读取目标消息,并推送至相应消息处理设备,以通过消息处理设备对所接收的目标消息进行处理。
在一个实施例中,消息调度服务器通过虚拟消息处理方实例从消息主题中读取出目标消息后,根据消息主题确定相应的消息处理设备,也就是确定用于处理该消息主题中的目标消息的消息处理设备,并将目标消息推送至消息处理设备进行处理。
在一个实施例中,虚拟消息处理方标识与实际消息处理方标识相对应。消息调度服务器通过虚拟消息处理方实例读取出待重发的目标消息后,根据该虚拟消息处理方实例所对应的虚拟消息处理方标识确定相应的实际消息处理方标识,确定实际消息处理方标识所对应的实际消息处理方实例,并将读取出的目标消息发送至部署有该实际消息处理方实例的消息处理设备,以通过该实际消息处理方实例对该目标消息进行处理。可以理解,虚拟消息处理方具体可以是消息的虚拟消费者,实际消息处理方具体可以是消息的实际消费者。
在一个实施例中,通过消息调度服务器从消息存储服务器中读取消息并推送至消息处理设备进行处理,能够实现消息处理设备中的业务处理逻辑/业务代码逻辑与消息存储服务器的应用程序接口的解耦,从而能够降低由消息存储服务器的切换或变更而导致的开发维护难度。
S210,消息调度服务器在接收到消息处理设备针对目标消息反馈的提示信息时,将目标消息确定为已处理消息并进行存储。
具体地,消息处理设备对所接收到的目标消息进行处理,在处理完毕后触发生成相应的提示信息,并将所生成的提示信息反馈至消息调度服务器。消息调度服务器在接收到消息处理设备针对目标消息反馈的提示信息后,将该目标信息确定为已处理消息,并将该目标消息存储至数据库中。可以理解,消息调度服务器具体可将确定为已处理消息的目标消息存储至消息处理数据表中。提示信息具体可以是表示目标消息已处理的消息。
上述消息处理方法,消息比对服务器基于已发送消息和已处理消息确定待重发的目标消息,并针对该目标消息触发消息重发流程,以保证该目标消息能够被有效处理,从而能够提高消息处理的可靠性。消息发送设备通过消息发送客户端,将待重发的目标消息发送至预配置的相应消息存储服务器进行存储,既规范了消息发送的格式和形式,以便于对消息进行监控和处理,又能够实现消息的负载均衡,降低消息的阻塞,从而能够提高消息处理效率。消息存储服务器将目标消息按照消息主题进行存储,以便于已订阅该消息主题的虚拟消息处理方实例能够及时读取该目标消息,并将读取的目标消息推送至消息处理设备进行处理,能够提高消息处理的效率和可靠性。部署有该虚拟消息处理方实例的消息调度服务器在接收到消息处理设备反馈的提示信息后,将目标消息确定为已处理消息,以保证目标消息能够被有效处理,从而能够进一步提高消息处理的可靠性。
可以理解,消息比对服务器通过消息比对确定待重发的消息,并触发消息重发流程,以保证消息发送的可靠性,从而实现消息的最终一致性,使得每个消息均被成功处理。消息重发流程中体现了消息发送设备-消息存储服务器-消息调度服务器-消息处理设备这一系统架构间的数据交互,以保证待重发的消息能够成功发送至消息处理设备进行处理。其中,消息发送设备基于配置确定接收待重发的消息的消息存储服务器,并通过统一的消息发送客户端进行发送,以保证消息发送形式和格式的一致性,且保证消息能够被可靠的接收并传递,由此保证消息的可靠性。进一步地,消息调度服务器通过虚拟消息处理方实例从已订阅的消息主题获取消息,能够保证消息获取的及时性和可靠性,且在接收到消息处理设备反馈的提示信息时,将目标消息确定为已处理消息,以便于消息比对服务器在下次消息比对过程中,能够进一步筛选待重发的消息并进行重发,以保证消息的可靠性。
在一个实施例中,上述消息处理方法还包括:消息发送设备获取业务请求,根据业务请求获取业务数据,根据业务数据进行业务处理,并触发生成消息;消息发送设备将业务数据存储至业务表,将消息存储至消息表,并实时检测业务处理的处理结果;当处理结果为处理成功时,消息发送设备将业务数据对应的业务处理状态更新至业务表,并将业务数据写入数据库;在将业务数据成功写入数据库后,消息发送设备通过消息发送客户端将消息发送至相应的消息存储服务器。
其中,业务请求是用于触发业务操作的请求,具体可携带有业务数据。业务表是由多个业务数据组成的业务数据集合。消息表是由多个消息组成的消息集合,消息具体可以是与业务数据对应的业务消息。可以理解,业务表可包括一个业务数据,相应的,消息表可包括一个消息。
具体地,消息发送设备获取业务请求,解析业务请求得到业务数据,或者,根据业务请求从本地或其他设备获取业务数据,并根据业务数据进行相应的业务处理。消息发送设备针对业务数据触发生成相应的消息,并将生成的消息存储至消息表。消息发送设备将所获取到的业务数据存储至业务表,并实时检测该业务数据相应的业务处理的处理结果。当业务处理的处理结果为处理成功时,消息发送设备触发生成相应业务数据所对应的业务处理状态,将该业务处理状态对应于业务数据更新至业务表,并将该业务数据写入数据库中。消息发送设备在将处理成功的业务数据成功写入数据库后,根据该业务数据所对应的消息确定相应预配置的消息存储服务器,并通过消息发送客户端将该消息发送至所确定的消息存储服务器进行存储。
在一个实施例中,当业务处理的处理结果为处理失败时,消息发送设备将业务表中的业务数据进行回滚,并将消息表中相应的消息进行回滚。可以理解,回滚具体可以是指在业务表中删除处理失败的业务数据,并在消息表中删除该业务数据所对应的消息。
在一个实施例中,消息发送设备接收用户终端发送的业务请求。当消息发送设备为终端时,消息发送设备可实时检测用户的业务触发操作,并根据所检测到的业务触发操作触发生成业务请求。
上述实施例中,业务数据落地/存储至业务表与相应消息落地/存储至消息表在同一事务中,也就是业务表的落地和消息表的落地在同一事务中,要么同时成功要么同时失败,以实现消息落地、业务数据逻辑和业务事务的绑定,能够保证数据的一致性。而在将业务数据成功写入数据库后再将相应消息发送至消息存储服务器,能够解决异常发送的问题。
在一个实施例中,消息发送设备通过消息发送客户端将消息发送至相应的消息存储服务器之后,上述消息处理方法还包括:消息发送设备实时检测消息的发送结果;当发送结果为发送成功时,消息发送设备将消息发送状态对应于消息更新至消息表;当发送结果为发送失败时,消息发送设备借助于消息发送客户端将消息重新发送至相应的消息存储服务器。
具体地,消息发送设备将处理成功的业务数据所对应的消息发送至相应消息存储服务器后,实时检测消息的发送结果。当发送结果为发送成功时,消息发送设备触发生成消息所对应的、且表示发送成功的消息发送状态,并将该消息发送状态对应于消息更新至消息表中。当发送结果为发送失败时,消息发送设备通过消息发送客户端将该消息重新发送至相应消息存储服务器。
在一个实施例中,当发送结果为发送失败时,消息发送设备将发送失败的消息缓存至重试队列,并在检测到预设重试条件时从重试队列中读取已缓存的消息,并将所读取的消息重新发送至消息存储服务器。预设重试条件比如统计的等待重试时长达到预设等待时长,或者,当前时间与预设重试时间一致。
在一个实施例中,当发送结果为发送失败时,消息发送设备统计发送失败的次数,在统计的发送次数达到预设次数时,触发消息所对应的告警信息。
上述实施例中,针对发送失败的消息进行重发,保证消息发送的可靠性,从而能够保证消息处理的可靠性。将发送成功的消息对应的消息发送状态更新至消息表,以便于基于消息表即可快速定位已发送成功的消息,从而能够提高消息处理效率。
在一个实施例中,消息发送设备通过消息发送客户端将消息发送至相应的消息存储服务器,包括:消息发送设备确定业务请求的消息发送类型,当消息发送类型为延迟消息发送类型时,将消息缓存至消息延迟队列,并实时统计消息的缓存时长;当统计的缓存时长达到业务请求所对应的预设延迟时长时,消息发送设备通过消息发送客户端从消息延迟队列中读取缓存的消息,并将读取的消息发送至相应的消息存储服务器。
其中,消息发送类型是指消息发送的类型或方式,具体可以包括延迟消息发送类型和即时消息发送类型。延迟消息发送类型是指在接收到待发送的消息后达到预设延迟时长时,再将消息发送至消息存储服务器的发送方式。即时消息发送类型是指将所接收到的消息实时发送至消息存储服务器的发送方式。预设延迟时长是消息延迟发送的时长,可定义,比如50秒。
具体地,消息发送设备根据配置文件或者业务请求所属的类型确定业务请求的消息发送类型。当业务请求的消息发送类型为延迟消息发送类型时,消息发送设备在将业务请求所对应的业务数据成功写入数据库后,将针对该业务数据触发的消息缓存至消息延迟队列,并实时统计消息的缓存时长。消息发送设备查询业务请求所对应的预设延迟时长,并将统计的缓存时长与预设延迟时长进行比较。当统计的缓存时长大于或等于预设延迟时长时,消息发送设备通过消息发送客户端从消息延迟队列中读取所缓存的消息,根据读取出的消息确定预配置的消息存储服务器,并将读取出的消息发送至该消息存储服务器。
在一个实施例中,消息发送设备预配置有多个消息延迟队列,每个消息延迟队列与预设延迟时长相对应。当消息发送类型为延迟消息发送类型时,消息发送设备根据业务请求所对应的预设延迟时长确定消息延迟队列,并将相应消息存储至该消息延迟队列中。消息延迟队列具体可预配置在内存中。
上述实施例中,借助于消息延迟队列基于业务请求实现消息的延迟发送和处理,能够降低数据库的压力,以防消息阻塞,从而能够提高消息发送效率。
在一个实施例中,将读取的目标消息推送至消息处理设备之后,上述消息处理方法还包括:消息调度服务器接收消息处理设备针对目标消息反馈的消息送达结果,当消息送达结果为异常送达或报错时,将目标消息再次推送至消息处理设备;消息调度服务器实时统计消息送达结果的反馈等待时长,当统计的反馈等待时长达到预设等待时长时,将目标消息再次推送至消息处理设备。
其中,消息送达结果是表征消息是否成功送达至消息处理设备的结果。反馈等待时长是指等待消息处理设备反馈消息送达结果的时长。预设等待时长是预先设定的等待消息处理设备反馈消息送达结果的时长阈值。
具体地,消息处理设备接收消息调度服务器通过虚拟消息处理方实例推送的目标消息,根据目标消息的接收情况触达相应的消息送达结果,并将消息送达结果反馈至相应消息调度服务器。消息调度服务器实时检测消息处理设备针对目标消息反馈的消息送达结果,并在检测到的消息送达结果为异常送达或报错时,将相应目标消息再次推送至消息处理设备。消息调度服务器实时检测消息处理设备针对目标消息反馈的消息送达结果的同时,实时统计消息送达结果的等待反馈时长,并将统计的等待反馈时长与预配置的预设等待时长进行比较。当统计的反馈等待时长大于或等于预设等待时长时,消息调度服务器则判定消息送达结果为送达异常,则自动将相应目标消息再次推送至消息处理设备。
在一个实施例中,消息调度服务器针对各目标消息预配置统一的预设等待时长,或者,按照目标消息的类型或目标消息所对应的业务请求的类型,分别预配置相应的预设等待时长。
在一个实施例中,对于针对业务请求触发生成并存储至消息存储服务器的消息,消息调度服务器通过虚拟消息处理方实例从已订阅的消息主题中获取已存储的消息,并将读取的消息发送至相应消息处理设备。相应地,消息调度服务器将读取的消息发送至消息处理设备后,实时检测消息的消息送达结果和/或反馈等待时长,以根据消息送达结果或反馈等待时长触发消息重试操作。
上述实施例中,通过消息重发或重试机制保证消息能够被有效发送至消息处理设备,以保证消息能够被消息处理设备处理,从而保证消息处理的可靠性。
在一个实施例中,将读取的目标消息推送至消息处理设备之后,上述消息处理方法还包括:消息处理设备将目标消息所对应的目标消息标识与预存储的消息标识列表进行匹配;当匹配失败时,消息处理设备对目标消息进行处理,在目标消息处理完毕后将目标消息标识更新至消息标识列表中,并向消息调度服务器反馈提示信息。
其中,消息标识列表是由多个消息标识组成的集合。可以理解,消息标识列表中可仅包括一个消息标识。消息标识用于唯一标识消息,目标消息标识用于唯一标识待重发的消息。
具体地,消息处理设备接收到消息调度服务器推送的目标消息后,从数据库中查询预存储的消息标识列表,并将所接收到的目标消息对应的目标消息标识与所查询到的消息标识列表进行匹配。当匹配失败时,消息处理设备则判定相应目标消息尚未被处理,则对该目标消息进行处理,在处理完毕时将该目标消息所对应的目标消息标识更新至消息标识列表中。消息处理设备针对处理完毕的目标消息触发生成相应的提示信息,并将该提示信息反馈至消息调度服务器。当匹配成功时,消息处理设备则判定相应目标消息已被处理,则直接触发生成相应的提示信息,并将该提示信息反馈至消息调度服务器。
在一个实施例中,当匹配失败时,消息处理设备根据目标消息确定相应实际消息处理方实例,并通过该实际消息处理方实例对该目标消息进行处理。
在一个实施例中,消息处理设备针对目标消息触发生成的提示信息中携带有消息处理结果,或者能够用于表征消息处理结果的消息处理结果标识。消息处理结果包括处理成功或处理失败等。当目标消息标识与消息标识列表匹配成功时,消息处理设备根据目标消息标识从消息标识列表中查询相应的消息处理结果,并将根据该消息处理结果生成的提示信息反馈至消息调度服务器。
在一个实施例中,消息标识列表是由至少一个处理成功的消息标识组成的集合。当目标消息标识与消息标识列表匹配失败,消息处理设备则判定相应目标消息尚未被成功处理,则对该目标消息进行处理。
上述实施例中,消息处理设备通过比对消息标识来实现消息幂等,能够实现实际消息处理方幂等,从而能够保证每条消息能够被至少处理一次,也就是能够保证消息处理的可靠性。
在一个实施例中,消息存储服务器多于一个;上述消息处理方法还包括:消息发送设备接收监控服务器推送的更新的配置文件,并通过消息发送客户端根据更新的配置文件更新预配置的消息存储服务器;更新的配置文件,是监控服务器在监听到多于一个的消息存储服务器中存在运行异常的消息存储服务器时,触发生成的配置文件。
其中,配置文件指定了消息存储服务器与消息的对应关系,具体可以是指定了消息的类型与消息存储服务器之间的对应关系,或者指定了消息所对应的业务请求与消息存储服务器之间的对应关系。基于配置文件可确定将消息发送至哪个消息存储服务器进行存储。
具体地,监控服务器实时检测各个消息存储服务器的运行状态,当检测到存在运行状态为运行异常的消息存储服务器时,从该多于一个的消息存储服务器中,确定运行状态为运行正常的消息存储服务器,按照预配置的切换策略将运行异常的消息存储服务器所对应的消息切换至运行正常的消息存储服务器,也就是更新消息存储服务器与消息的对应关系,并触发生成更新的配置文件。消息发送设备接收监控服务器推送的更新的配置文件,并通过消息发送客户端根据所接收到的更细的配置文件对应更新预配置的消息存储服务器,以便于消息发送设备在接收到消息后将该消息发送至更新的消息存储服务器。可以理解,消息发送设备可将接收到的更新的配置文件存储在本地,并在接收到消息后,直接从更新的配置文件中查询与消息对应的消息存储服务器。
在一个实施例中,若将每个消息存储服务器理解为一个用于存储并传输消息的消息通道,配置文件则指定了消息与消息通道的对应关系,也就是指定了哪类消息通过哪个消息通道进行传输。
在一个实施例中,上述一个或多个实施例中的消息存储服务器为多于一个的消息存储服务器集群,每个消息存储服务器集群中包括多于一个的消息存储节点。每个消息存储服务器集群为一个消息通道,消息存储服务器集群中的每个消息存储节点为相应消息通道中的一个消息子通道。监控服务器实时监听每个消息存储服务器集群中的每个消息存储节点的运行状态,当监听到消息存储服务器集群中的存在消息存储节点处于运行异常时,在消息存储服务器集群内进行消息存储节点的切换。当监听到某个消息存储服务器集群中的每个消息存储节点均处于运行异常时,或者,当监听到某个消息存储服务器集群中处于运行异常的消息存储节点的占比达到预设占比时,则触发集群间的切换,也就是将运行异常的消息存储服务器集群所对应的消息切换至运行正常的消息存储服务器集群。消息存储服务器集群比如kafka和ActiveMQ。
在一个实施例中,监控服务器通过监控代理监听各个消息存储服务器的运行状态。监控代理是运行与监控服务器的计算机程序。
上述实施例中,通过监听消息存储服务器的运作状态来及时切换运行异常的消息存储服务器,以保证消息系统的可用性,从而保证消息的可靠性。
如图3所示,在一个实施例中,提供了一种消息处理方法,该方法具体包括以下步骤:
S302,消息比对服务器获取已发送消息和已处理消息,根据已发送消息和已处理消息确定待重发的目标消息,将根据目标消息所对应的目标消息标识生成的消息重发指令发送至消息发送设备。
S304,消息发送设备解析消息重发指令得到目标消息标识,根据目标消息标识确定预配置的消息存储服务器,并通过消息发送客户端将目标消息发送至消息存储服务器。
S306,消息存储服务器将接收到的目标消息存储至相应的消息主题。
S308,消息调度服务器通过已订阅消息主题的虚拟消息处理方实例,从消息主题中读取目标消息,将读取的目标消息推送至消息处理设备。
S310,消息调度服务器接收消息处理设备针对目标消息反馈的消息送达结果,当消息送达结果为异常送达或报错时,将目标消息再次推送至消息处理设备。
S312,消息调度服务器实时统计消息送达结果的反馈等待时长,当统计的反馈等待时长达到预设等待时长时,将目标消息再次推送至消息处理设备。
S314,消息处理设备将目标消息所对应的目标消息标识与预存储的消息标识列表进行匹配。
S316,当匹配失败时,消息处理设备对目标消息进行处理,在目标消息处理完毕后将目标消息标识更新至消息标识列表中,并向消息调度服务器反馈提示信息。
S318,消息调度服务器在接收到消息处理设备针对目标消息反馈的提示信息时,将目标消息确定为已处理消息并进行存储。
应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图1所示,提供了一种消息处理系统100,该系统包括:消息比对服务器102、消息发送设备104、消息存储服务器106、消息调度服务器108和消息处理设备110;
消息比对服务器102,用于获取已发送消息和已处理消息,根据已发送消息和已处理消息确定待重发的目标消息,将根据目标消息所对应的目标消息标识生成的消息重发指令发送至消息发送设备104。
消息发送设备104,用于解析消息重发指令得到目标消息标识,根据目标消息标识确定预配置的消息存储服务器106,并通过消息发送客户端将目标消息发送至消息存储服务器106。
消息存储服务器106,用于将接收到的目标消息存储至相应的消息主题。
消息调度服务器108,用于通过已订阅消息主题的虚拟消息处理方实例,从消息主题中读取目标消息,将读取的目标消息推送至消息处理设备110。
消息处理设备110,用于对接收到的目标消息进行处理,并针对目标消息向消息调度服务器108反馈提示信息。
消息调度服务器108,还用于在接收到所提示信息时,将目标消息确定为已处理消息并进行存储。
在一个实施例中,消息发送设备104,还用于获取业务请求,根据业务请求获取业务数据,根据业务数据进行业务处理,并触发生成消息;将业务数据存储至业务表,将消息存储至消息表,并实时检测业务处理的处理结果;当处理结果为处理成功时,将业务数据对应的业务处理状态更新至业务表,并将业务数据写入数据库;在将业务数据成功写入数据库后,通过消息发送客户端将消息发送至相应的消息存储服务器106。
在一个实施例中,消息发送设备104,还用于实时检测消息的发送结果;当发送结果为发送成功时,将消息发送状态对应于消息更新至消息表;当发送结果为发送失败时,借助于消息发送客户端将消息重新发送至相应的消息存储服务器106。
在一个实施例中,消息发送设备104,还用于确定业务请求的消息发送类型,当消息发送类型为延迟消息发送类型时,将消息缓存至消息延迟队列,并实时统计消息的缓存时长;当统计的缓存时长达到业务请求所对应的预设延迟时长时,通过消息发送客户端从消息延迟队列中读取缓存的消息,并将读取的消息发送至相应的消息存储服务器106。
在一个实施例中,消息调度服务器108,还用于接收消息处理设备110针对目标消息反馈的消息送达结果,当消息送达结果为异常送达或报错时,将目标消息再次推送至消息处理设备110;实时统计消息送达结果的反馈等待时长,当统计的反馈等待时长达到预设等待时长时,将目标消息再次推送至消息处理设备110。
在一个实施例中,消息处理设备110,还用于将目标消息所对应的目标消息标识与预存储的消息标识列表进行匹配;当匹配失败时,对目标消息进行处理,在目标消息处理完毕后将目标消息标识更新至消息标识列表中,并向消息调度服务器反馈提示信息。
在一个实施例中,消息存储服务器106多于一个;上述消息处理系统100,还包括:监控服务器;
监控服务器,用于监听多于一个的消息存储服务器106的运行状态,在监听到多于一个的消息存储服务器中存在运行异常的消息存储服务器时,触发生成更新的配置文件;
消息发送设备104,还用于接收监控服务器推送的更新的配置文件,并通过消息发送客户端根据更新的配置文件更新预配置的消息存储服务器。
如图4所示,在一个实施例中,上述一个或多个实施例中提供的消息处理系统100中,消息存储服务器106为包括多个消息存储服务器集群的服务器集群,消息存储服务器集群比如第一消息存储服务器集群106a和第二消息存储服务器集群106b。每个消息存储服务器集群分别对应有相应的消息调度服务器,比如第一消息存储服务器集群106a对应的消息调度服务器108a,第二消息存储服务器集群106b对应的消息调度服务器108b。可以理解,图4所示的消息存储服务器集群为2个,只是作为示例,并不用于具体限定消息存储服务器集群的数量,相应地,图4所示的消息调度服务器集群的数量也只是示例,并不用于限定消息调度服务器的数量,比如多个消息存储服务器集群可对应相同消息调度服务器。
在一个实施例中,第一消息存储服务器集群106a具体可以是kafka,第二消息存储服务器集群106b具体可以是AtiveMQ。
关于消息处理系统的具体限定可以参见上文中对于消息处理方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是消息比对服务器、消息发送设备、消息存储服务器、消息调度服务器或消息处理设备,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。当计算机设备为消息发送设备时,该计算机设备的数据库用于存储消息存储服务器与消息的对应关系。当计算机设备为消息存储服务器时,该计算机设备的数据库用于存储待重发的目标消息。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种消息处理方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是消息发送设备或消息处理设备,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种消息处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5和图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述各个实施例中的消息处理方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个实施例中的消息处理方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种消息处理方法,所述方法包括:
消息比对服务器获取已发送消息和已处理消息,根据所述已发送消息和所述已处理消息确定待重发的目标消息,将根据所述目标消息所对应的目标消息标识生成的消息重发指令发送至消息发送设备;
所述消息发送设备解析所述消息重发指令得到所述目标消息标识,根据所述目标消息标识确定预配置的消息存储服务器,并通过消息发送客户端将所述目标消息发送至所述消息存储服务器;
所述消息存储服务器将接收到的目标消息存储至相应的消息主题;
消息调度服务器通过已订阅所述消息主题的虚拟消息处理方实例,从所述消息主题中读取所述目标消息,将读取的所述目标消息推送至消息处理设备;
所述消息调度服务器在接收到所述消息处理设备针对所述目标消息反馈的提示信息时,将所述目标消息确定为已处理消息并进行存储。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述消息发送设备获取业务请求,根据所述业务请求获取业务数据,根据所述业务数据进行业务处理,并触发生成消息;
所述消息发送设备将所述业务数据存储至业务表,将所述消息存储至消息表,并实时检测所述业务处理的处理结果;
当所述处理结果为处理成功时,所述消息发送设备将所述业务数据对应的业务处理状态更新至所述业务表,并将所述业务数据写入数据库;
在将所述业务数据成功写入所述数据库后,所述消息发送设备通过所述消息发送客户端将所述消息发送至相应的消息存储服务器。
3.根据权利要求2所述的方法,其特征在于,所述消息发送设备通过所述消息发送客户端将所述消息发送至相应的消息存储服务器之后,所述方法还包括:
所述消息发送设备实时检测所述消息的发送结果;
当所述发送结果为发送成功时,所述消息发送设备将消息发送状态对应于所述消息更新至所述消息表;
当所述发送结果为发送失败时,所述消息发送设备借助于所述消息发送客户端将所述消息重新发送至相应的所述消息存储服务器。
4.根据权利要求2所述的方法,其特征在于,所述消息发送设备通过所述消息发送客户端将所述消息发送至相应的消息存储服务器,包括:
所述消息发送设备确定所述业务请求的消息发送类型,当所述消息发送类型为延迟消息发送类型时,将所述消息缓存至消息延迟队列,并实时统计所述消息的缓存时长;
当统计的所述缓存时长达到所述业务请求所对应的预设延迟时长时,所述消息发送设备通过所述消息发送客户端从所述消息延迟队列中读取缓存的所述消息,并将读取的所述消息发送至相应的消息存储服务器。
5.根据权利要求1所述的方法,其特征在于,所述将读取的所述目标消息推送至消息处理设备之后,所述方法还包括:
所述消息调度服务器接收所述消息处理设备针对所述目标消息反馈的消息送达结果,当所述消息送达结果为异常送达或报错时,将所述目标消息再次推送至所述消息处理设备;
所述消息调度服务器实时统计所述消息送达结果的反馈等待时长,当统计的所述反馈等待时长达到预设等待时长时,将所述目标消息再次推送至所述消息处理设备。
6.根据权利要求1所述的方法,其特征在于,所述将读取的所述目标消息推送至消息处理设备之后,所述方法还包括:
所述消息处理设备将所述目标消息所对应的目标消息标识与预存储的消息标识列表进行匹配;
当匹配失败时,所述消息处理设备对所述目标消息进行处理,在所述目标消息处理完毕后将所述目标消息标识更新至所述消息标识列表中,并向所述消息调度服务器反馈提示信息。
7.根据权利要求1所述的方法,其特征在于,所述消息存储服务器多于一个;所述方法还包括:
所述消息发送设备接收监控服务器推送的更新的配置文件,并通过所述消息发送客户端根据所述更新的配置文件更新预配置的消息存储服务器;所述更新的配置文件,是所述监控服务器在监听到多于一个的消息存储服务器中存在运行异常的消息存储服务器时,触发生成的配置文件。
8.一种消息处理系统,其特征在于,所述系统包括:消息比对服务器、消息发送设备、消息存储服务器、消息调度服务器和消息处理设备;
所述消息比对服务器,用于获取已发送消息和已处理消息,根据所述已发送消息和所述已处理消息确定待重发的目标消息,将根据所述目标消息所对应的目标消息标识生成的消息重发指令发送至所述消息发送设备;
所述消息发送设备,用于解析所述消息重发指令得到所述目标消息标识,根据所述目标消息标识确定预配置的所述消息存储服务器,并通过消息发送客户端将所述目标消息发送至所述消息存储服务器;
所述消息存储服务器,用于将接收到的目标消息存储至相应的消息主题;
所述消息调度服务器,用于通过已订阅所述消息主题的虚拟消息处理方实例,从所述消息主题中读取所述目标消息,将读取的所述目标消息推送至所述消息处理设备;
所述消息处理设备,用于对接收到的所述目标消息进行处理,并针对所述目标消息向所述消息调度服务器反馈提示信息;
所述消息调度服务器,还用于在接收到所提示信息时,将所述目标消息确定为已处理消息并进行存储。
9.根据权利要求8所述的系统,其特征在于,所述消息发送设备,还用于获取业务请求,根据所述业务请求获取业务数据,根据所述业务数据进行业务处理,并触发生成消息;将所述业务数据存储至业务表,将所述消息存储至消息表,并实时检测所述业务处理的处理结果;当所述处理结果为处理成功时,将所述业务数据对应的业务处理状态更新至所述业务表,并将所述业务数据写入数据库;在将所述业务数据成功写入所述数据库后,通过所述消息发送客户端将所述消息发送至相应的消息存储服务器。
10.根据权利要求8所述的系统,其特征在于,所述消息存储服务器多于一个;所述系统还包括:监控服务器;
所述监控服务器,用于监听多于一个的消息存储服务器的运行状态,在监听到所述多于一个的消息存储服务器中存在运行异常的消息存储服务器时,触发生成更新的配置文件;
所述消息发送设备,还用于接收所述监控服务器推送的所述更新的配置文件,并通过所述消息发送客户端根据所述更新的配置文件更新预配置的消息存储服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910843975.3A CN110719318B (zh) | 2019-09-06 | 2019-09-06 | 消息处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910843975.3A CN110719318B (zh) | 2019-09-06 | 2019-09-06 | 消息处理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110719318A true CN110719318A (zh) | 2020-01-21 |
CN110719318B CN110719318B (zh) | 2022-06-21 |
Family
ID=69210351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910843975.3A Active CN110719318B (zh) | 2019-09-06 | 2019-09-06 | 消息处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110719318B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111555957A (zh) * | 2020-03-26 | 2020-08-18 | 孩子王儿童用品股份有限公司 | 一种基于Kafka的同步消息服务系统及实现方法 |
CN111858007A (zh) * | 2020-07-29 | 2020-10-30 | 广州海鹚网络科技有限公司 | 一种基于消息中间件的任务调度方法方法和装置 |
CN111917617A (zh) * | 2020-07-31 | 2020-11-10 | 宁波奥克斯电气股份有限公司 | 智能家电设备控制方法、装置、服务器及存储介质 |
CN112015469A (zh) * | 2020-07-14 | 2020-12-01 | 北京淇瑀信息科技有限公司 | 一种系统重构方法、装置和电子设备 |
CN112104519A (zh) * | 2020-08-06 | 2020-12-18 | 北京健康之家科技有限公司 | 延迟消息的投递方法及装置、存储介质、计算机设备 |
CN112118297A (zh) * | 2020-09-01 | 2020-12-22 | 上海东普信息科技有限公司 | 延时消息的控制方法、装置、设备及存储介质 |
CN112181737A (zh) * | 2020-09-25 | 2021-01-05 | 中国建设银行股份有限公司 | 消息处理方法、装置、电子设备及介质 |
CN112468386A (zh) * | 2020-11-17 | 2021-03-09 | 福建天泉教育科技有限公司 | 一种重复消息的处理方法及终端 |
CN112702259A (zh) * | 2020-12-23 | 2021-04-23 | 北京焦点新干线信息技术有限公司 | 延迟消息推送方法、装置及消息中间件 |
CN113891114A (zh) * | 2021-11-18 | 2022-01-04 | 上海哔哩哔哩科技有限公司 | 转码任务调度方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150088999A1 (en) * | 2013-09-20 | 2015-03-26 | Oracle International Corporation | Techniques for reliable messaging for an intermediary in a network communication environment |
CN106161190A (zh) * | 2015-04-02 | 2016-11-23 | 北大方正集团有限公司 | 点对点即时通信方法 |
CN107277083A (zh) * | 2016-04-06 | 2017-10-20 | 阿里巴巴集团控股有限公司 | 一种数据交互的处理方法、装置及系统 |
CN109391646A (zh) * | 2017-08-04 | 2019-02-26 | 中国电信股份有限公司 | 消息中间件消息获取方法、装置和系统 |
CN109714409A (zh) * | 2018-12-21 | 2019-05-03 | 优估(上海)信息科技有限公司 | 一种消息的管理方法和系统 |
-
2019
- 2019-09-06 CN CN201910843975.3A patent/CN110719318B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150088999A1 (en) * | 2013-09-20 | 2015-03-26 | Oracle International Corporation | Techniques for reliable messaging for an intermediary in a network communication environment |
CN106161190A (zh) * | 2015-04-02 | 2016-11-23 | 北大方正集团有限公司 | 点对点即时通信方法 |
CN107277083A (zh) * | 2016-04-06 | 2017-10-20 | 阿里巴巴集团控股有限公司 | 一种数据交互的处理方法、装置及系统 |
CN109391646A (zh) * | 2017-08-04 | 2019-02-26 | 中国电信股份有限公司 | 消息中间件消息获取方法、装置和系统 |
CN109714409A (zh) * | 2018-12-21 | 2019-05-03 | 优估(上海)信息科技有限公司 | 一种消息的管理方法和系统 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111555957A (zh) * | 2020-03-26 | 2020-08-18 | 孩子王儿童用品股份有限公司 | 一种基于Kafka的同步消息服务系统及实现方法 |
CN112015469B (zh) * | 2020-07-14 | 2023-11-14 | 北京淇瑀信息科技有限公司 | 一种系统重构方法、装置和电子设备 |
CN112015469A (zh) * | 2020-07-14 | 2020-12-01 | 北京淇瑀信息科技有限公司 | 一种系统重构方法、装置和电子设备 |
CN111858007A (zh) * | 2020-07-29 | 2020-10-30 | 广州海鹚网络科技有限公司 | 一种基于消息中间件的任务调度方法方法和装置 |
CN111917617A (zh) * | 2020-07-31 | 2020-11-10 | 宁波奥克斯电气股份有限公司 | 智能家电设备控制方法、装置、服务器及存储介质 |
CN112104519A (zh) * | 2020-08-06 | 2020-12-18 | 北京健康之家科技有限公司 | 延迟消息的投递方法及装置、存储介质、计算机设备 |
CN112118297A (zh) * | 2020-09-01 | 2020-12-22 | 上海东普信息科技有限公司 | 延时消息的控制方法、装置、设备及存储介质 |
CN112118297B (zh) * | 2020-09-01 | 2024-03-26 | 上海东普信息科技有限公司 | 延时消息的控制方法、装置、设备及存储介质 |
CN112181737A (zh) * | 2020-09-25 | 2021-01-05 | 中国建设银行股份有限公司 | 消息处理方法、装置、电子设备及介质 |
CN112468386A (zh) * | 2020-11-17 | 2021-03-09 | 福建天泉教育科技有限公司 | 一种重复消息的处理方法及终端 |
CN112702259B (zh) * | 2020-12-23 | 2023-05-23 | 北京焦点新干线信息技术有限公司 | 延迟消息推送方法、装置及消息中间件 |
CN112702259A (zh) * | 2020-12-23 | 2021-04-23 | 北京焦点新干线信息技术有限公司 | 延迟消息推送方法、装置及消息中间件 |
CN113891114A (zh) * | 2021-11-18 | 2022-01-04 | 上海哔哩哔哩科技有限公司 | 转码任务调度方法及装置 |
CN113891114B (zh) * | 2021-11-18 | 2023-12-15 | 上海哔哩哔哩科技有限公司 | 转码任务调度方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110719318B (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110719318B (zh) | 消息处理方法和系统 | |
CN109788053B (zh) | 数据同步方法和系统 | |
CN108449405B (zh) | 事件提醒方法、装置、计算机设备和存储介质 | |
CN109766253B (zh) | 一种性能数据发送方法、装置、计算机设备及存储介质 | |
CN108834086B (zh) | 短信发送的方法、装置、计算机设备和存储介质 | |
CN108446172B (zh) | 数据调取方法、装置、计算机设备和存储介质 | |
CN110717156B (zh) | 身份验证方法、系统、计算机设备和存储介质 | |
CN110768873B (zh) | 分布式心跳检测方法、系统、装置和计算机设备 | |
CN112422497B (zh) | 消息传递方法、装置及计算机设备 | |
CN111159233B (zh) | 分布式缓存方法、系统、计算机设备以及存储介质 | |
CN111698126B (zh) | 信息监控方法、系统及计算机可读存储介质 | |
CN112434243A (zh) | 一种同步数据的方法、装置和计算机可读存储介质 | |
CN108376154B (zh) | 系统基表同步方法、装置、计算机设备和存储介质 | |
CN111026606A (zh) | 基于hystrix熔断器监控的报警方法、装置及计算机设备 | |
CN108241616B (zh) | 消息推送方法和装置 | |
CN111211925B (zh) | 告警信息同步方法、装置、计算机设备和存储介质 | |
CN112865927B (zh) | 消息送达验证方法、装置、计算机设备和存储介质 | |
CN112969198A (zh) | 数据传输方法、终端及存储介质 | |
CN107800754B (zh) | 数据传输任务处理、数据传输任务监控方法和装置 | |
CN115220993A (zh) | 进程监控方法、装置、车辆及存储介质 | |
CN114374705A (zh) | 服务集群和消息推送方法 | |
CN108965426B (zh) | 音频系统的数据处理方法、装置、计算机设备和存储介质 | |
CN113542424A (zh) | 数据处理方法、装置、设备及计算机程序产品 | |
CN107704557B (zh) | 操作互斥数据的处理方法、装置、计算机设备和存储介质 | |
CN112671636A (zh) | 群组消息推送方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200122 Address after: 200120 floor 15, 1333 Lujiazui Ring Road, free trade Experimental Zone, Pudong New Area, Shanghai Applicant after: Weikun (Shanghai) Technology Service Co., Ltd Address before: 13th Floor, 1333 Lujiazui Ring Road, Shanghai Free Trade Pilot Area, 200120 Applicant before: Lujiazui Shanghai international financial assets market Limited by Share Ltd |
|
TA01 | Transfer of patent application right | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |