消息发送、接收方法和装置制造方法及图纸

技术编号:15075309 阅读:46 留言:0更新日期:2017-04-06 20:12
本发明专利技术公开了一种消息发送、接收方法和装置,该消息发送方法包括:发送第一消息至目标接收器,并异步处理本地其他服务;检测所述第一消息是否被成功发送;响应于所述第一消息发送失败时,将所述第一消息记录在消息队列中。将消息发送和接收与具体业务剥离进行异步处理,并且实现了对失败消息的保存,能够记录发送失败的消息,避免因消息丢失或者业务数据中断而需要数据回滚。

Message sending and receiving method and device

The invention discloses a method and apparatus for sending and receiving messages, including the message sending method: sending the first message to the target receiver, and other local asynchronous processing services; detection of the first message is successfully sent; in response to sending the first message fails, the first message in the message queue. Peel will send and receive messages with the specific business of asynchronous processing, and the realization of the preservation of the failure message, can record failed to send the message, to avoid message loss or business interruption data to data rollback.

【技术实现步骤摘要】

本专利技术属于互联网领域,具体地说,涉及一种消息发送、接收方法和装置
技术介绍
程序A与程序B进行异步通信时,目前通过消息队列服务(MessageQueueService,MQServer)来完成,但是当程序A向MQServer发送消息失败时,或者B处理消息失败时,A就得不到B的响应消息,也就无法得到所需要的数据。主要表现为:1、程序A发送消息失败,而消息未保存,业务需要回滚或者重新根据业务需求开发重试逻辑2、程序B接收消息后处理失败,无法及时监控和重试,失败后无法自动处理或者需要重新开发重试逻辑。3、MQServer问题或网络问题造成消息丢失,程序A发送成功,程序B未收到消息。这种数据没有保存,无法自动处理,也很难被发现。
技术实现思路
有鉴于此,本专利技术实施例提供了一种消息发送、接收方法和装置,用以解决现有技术中消息发送和接收没有被记录而在消息发送或接收失败时难以恢复的技术问题。为了解决上述技术问题,本专利技术公开了一种消息发送方法,包括:发送第一消息至目标接收器,并异步处理本地其他服务;检测所述第一消息是否被成功发送;响应于所述第一消息发送失败时,将所述第一消息记录在消息队列中。为了解决上述技术问题,本专利技术还公开了一种消息接收方法,包括:接收来自发送器的第一消息;对所述第一消息进行处理,检测对所述第一消息的处理是否成功;响应于对所述第一消息处理失败时,将所述第一消息记录在消息队列中。为了解决上述技术问题,本专利技术还公开了一种消息发送装置,包括:第一消息发送模块,用于发送第一消息至目标接收器,并异步处理本地其他服务;第一状态检测模块,用于检测所述第一消息是否被成功发送;第一消息记录模块,用于响应于所述第一消息发送失败时,将所述第一消息记录在消息队列中。为了解决上述技术问题,本专利技术还公开了一种消息接收装置,包括:第二消息接收模块,用于接收来自发送器的第一消息;第二状态检测模块,用于对所述第一消息进行处理,检测对所述第一消息的处理是否成功;第二消息记录模块,用于响应于对所述第一消息处理失败时,将所述第一消息记录在消息队列中。为了解决上述技术问题,本专利技术还公开了一种消息发送装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:发送第一消息至目标接收器,并异步处理本地其他服务;检测所述第一消息是否被成功发送;响应于所述第一消息发送失败时,将所述第一消息记录在消息队列中。为了解决上述技术问题,本专利技术还公开了一种消息接收装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:接收来自发送器的第一消息;对所述第一消息进行处理,检测对所述第一消息的处理是否成功;响应于对所述第一消息处理失败时,将所述第一消息记录在消息队列中。与现有技术相比,本专利技术实施例提供的消息发送、接收方法和装置,将消息发送和接收与具体业务剥离进行异步处理,并且实现了对失败消息的保存,能够记录发送或者处理失败的消息,避免因消息丢失或者业务数据中断而需要数据回滚。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例中消息收发系统的架构示意图;图2是本专利技术实施例提供的一种消息发送方法的流程图;图3是本专利技术实施例提供的一种消息发送方法的流程图;图4是本专利技术实施例提供的一种消息发送方法的流程图;图5是本专利技术实施例提供的一种消息接收方法的流程图;图6是本专利技术实施例提供的一种消息接收方法的流程图;图7是本专利技术实施例提供的一种消息接收方法的流程图;图8是本专利技术实施例的消息收发系统在视频转码系统中的应用示意图;图9是本专利技术实施例提供的一种消息发送装置的框图;图10是本专利技术实施例提供的一种消息接收装置的框图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例,将消息组件独立的集成于发送器和接收器,将消息发送和接收与具体业务剥离进行异步处理,并且实现了对失败消息的保存和重试,能够记录并重试发送或者处理失败的消息,避免因消息丢失或者业务数据中断而需要数据回滚。图1是本专利技术实施例中消息收发系统的架构示意图,包括消息发送端10和消息接收端11,消息发送端10向消息接收端11发送请求消息,由消息接收端11根据业务逻辑对请求消息进行处理,将处理的结果数据保存在应答消息中返回给消息发送端10。在消息发送端10集成消息组件101,在消息接收端11集成消息组件111,分别做为消息发送端10和消息接收端11的消息收发器,用于发送和接收请求消息以及应答消息。对消息发送端而言,本专利技术实施例提供的一种消息发送方法,如图2所示,该方法包括以下步骤S201-S203。在步骤S201中,发送第一消息至目标接收器,并异步处理本地其他服务。第一消息是发送至消息接收端的请求消息,用于向消息接收端请求对应的数据。消息组件与本地其他业务属于异步关系,并且本地其他服务的后续处理也不须依赖消息接收端返回的应答消息,因此将这类消息的请求和接收与其他业务做异步处理,以提高本地业务的处理效率。消息接收端的消息组件即为该第一消息的目标接收器。在步骤S202中,检测第一消息是否被成功发送。由于网络传输条件出现问题或者消息发送端的自身故障,可能会导致第一消息的发送失败。发送器检测第一消息是否已成功发送。在步骤S203中,响应于第一消息发送失败时,将第一消息记录在消息队列中。这里的消息队列用于记录没有被成功发送的第一消息,可以按照时间顺序对记录的所有第一消息进行排序,从而将没有被成功发送的请求消息记录下来。由于本地其他服务的后续处理不须依赖对应的应答消息,因此不会对后续业务处理造成影响,但用户可以通过消息队列中记录的第一消息查询到哪些请求消息没有被成功发送。在一个实施例中,如图3所示,该消息发送方法进一步包括以下步骤S204。在步骤S204中,周期性的重试发送第一消息,直到第一消息发送成功。在记录发送失败的第一消息的消息队列中预设重试策略,每隔预设时长(例如,30毫秒)对发送失败的第一消息进行重试,直到第一消息发送成功,将发送成功的第一消息从消息队列中删除。使发送失败的第一消息得到保存并且根据重试策略进行重试,由消息组件独立处理这些请求消息直到其发送成功,从而不需要通过业务回滚而再次发送一次新的请求消息。在一个实施例中,如图4所示,该消息发送方法进一步包括以下步骤S205。在步骤S205中,接收目标接收器返回的第二消息,第二消息包括处理第一消息而得到的结果数据。第二消息是根据业务逻辑成功处理第一消息后的应答消息,来自于目标接收器,即消息接收端的消息组件。消息接收端根据业务逻辑处理请求消息得到结果数据后,向消息发送端返回应答信息。在消息发送端同本文档来自技高网...

【技术保护点】
一种消息发送方法,其特征在于,包括:发送第一消息至目标接收器,并异步处理本地其他服务;检测所述第一消息是否被成功发送;响应于所述第一消息发送失败时,将所述第一消息记录在消息队列中。

【技术特征摘要】
1.一种消息发送方法,其特征在于,包括:发送第一消息至目标接收器,并异步处理本地其他服务;检测所述第一消息是否被成功发送;响应于所述第一消息发送失败时,将所述第一消息记录在消息队列中。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:周期性的重试发送所述第一消息,直到所述第一消息发送成功。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:接收所述目标接收器返回的第二消息,所述第二消息包括处理所述第一消息而得到的结果数据。4.一种消息接收方法,其特征在于,包括:接收来自发送器的第一消息;对所述第一消息进行处理,检测对所述第一消息的处理是否成功;响应于对所述第一消息处理失败时,将所述第一消息记录在消息队列中。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:周期性的重试处理所述第一消息,直到所述第一消息处理成功。6.根据权利要求4所述的方法,其特征在于,所述方法还包括:发送第二消息至所述发送器,所述第二消息包括处理所述第一消息而得到的结果数据;检测所述第二消息是否被成功发送;响应于所述第二消息发送失败时,将所述第二消息记录在消息队列中。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:周期性的重试发送所述第二消息,直到所述第二消息发送成功。8.一种消息发送装置,其特征在于,包括:第一消息发送模块,用于发送第一消息至目标接收器,并异步处理本地
\t其他服务;第一状态检测模块,用于检测所述第一消息是否被成功发送;第一消息记录模块,用于响应于所述第一消息发送失败时,将所述第一消息记录在消息队列中。9.根据权利要求8所述的装置,其特征在于,所述装置还包括:第一重试发送模块,用于周期性的重试发送所述第一消息,直到所述第一消息发送成功。10.根据权利要求...

【专利技术属性】
技术研发人员:刘永华王孝庆
申请(专利权)人:乐视云计算有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1