CN115051963B - 消息处理方法及装置、消息队列系统及电子设备 - Google Patents

消息处理方法及装置、消息队列系统及电子设备 Download PDF

Info

Publication number
CN115051963B
CN115051963B CN202210630929.7A CN202210630929A CN115051963B CN 115051963 B CN115051963 B CN 115051963B CN 202210630929 A CN202210630929 A CN 202210630929A CN 115051963 B CN115051963 B CN 115051963B
Authority
CN
China
Prior art keywords
consumption
consumed
messages
client
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.)
Active
Application number
CN202210630929.7A
Other languages
English (en)
Other versions
CN115051963A (zh
Inventor
李凯
周新宇
林清山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Alibaba China Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202210630929.7A priority Critical patent/CN115051963B/zh
Publication of CN115051963A publication Critical patent/CN115051963A/zh
Application granted granted Critical
Publication of CN115051963B publication Critical patent/CN115051963B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本说明书实施方式提供了一种消息处理方法及装置、消息队列系统及电子设备,涉及数据通信领域。该消息处理方法包括:响应于消费客户端的拉取操作,将拉取操作对应的M条待消费消息设为不可见状态;在消费客户端的最大消费时长内,依照预设延时时长续期M条待消费消息的不可见状态,以等待M条待消费消息对应的消费成功信息,其中,预设延时时长小于最大消费时长。通过设置预设延时时长,对M条待消费消息进行自动续期,能够自适应地把控M条待消费消息的不可见状态。相对于传统技术中,将消费客户端配置的最大消费时长直接作为不可见状态的延迟时长的方案,本说明书实施方式能够有效防止出现消费延迟的状况,从而保障消息的消费进度。

Description

消息处理方法及装置、消息队列系统及电子设备
技术领域
本说明书实施方式涉及数据通信领域,具体涉及一种消息处理方法及装置、消息队列系统及电子设备。
背景技术
由于POP消费模式具备轻量级以及无队列独占等诸多优势,因此,其对于消息积压、流媒体消费等场景都非常友好。在POP消费模式中,消费客户端会提前拉取待消费消息并缓存,对应地,服务端会直接在消费客户端预先配置的最大消费时长(又称最大消费时间)内,将消费客户端拉取的待消费消息设为不可见状态。由此可见,在传统技术中,消费消息的灵活性较差,易出现消费延迟的情况,进而影响消费进度。
发明内容
有鉴于此,本说明书实施方式致力于提供一种消息处理方法及装置、消息队列系统及电子设备,以解决在传统技术中,消费消息易出现消费延迟的技术问题。
第一方面,本说明书实施方式提供了一种消息处理方法,应用于服务端。该消息处理方法包括:响应于消费客户端的拉取操作,将拉取操作对应的M条待消费消息设为不可见状态,其中,M为正整数;在消费客户端的最大消费时长内,依照预设延时时长续期M条待消费消息的不可见状态,以等待M条待消费消息对应的消费成功信息,其中,预设延时时长小于最大消费时长。
第二方面,本说明书实施方式提供了一种消息处理方法,应用于消费客户端。该消息处理方法包括:基于服务端拉取M条待消费消息,以便服务端将M条待消费消息设为不可见状态,并且在消费客户端的最大消费时长内,服务端依照预设延时时长续期M条待消费消息的不可见状态,以等待M条待消费消息对应的消费成功信息,其中,预设延时时长小于最大消费时长,M为正整数。
第三方面,本说明书实施方式提供了一种消息处理装置,应用于服务端。该消息处理装置包括:设置模块,用于响应于消费客户端的拉取操作,将拉取操作对应的M条待消费消息设为不可见状态,其中,M为正整数;续期模块,用于在消费客户端的最大消费时长内,依照预设延时时长续期M条待消费消息的不可见状态,以等待M条待消费消息对应的消费成功信息,其中,预设延时时长小于最大消费时长。
第四方面,本说明书实施方式提供了一种消息处理装置,应用于消费客户端。该消息处理装置包括:拉取模块,用于基于服务端拉取M条待消费消息,以便服务端将M条待消费消息设为不可见状态,并且在消费客户端的最大消费时长内,服务端依照预设延时时长续期M条待消费消息的不可见状态,以等待M条待消费消息的消费成功信息,其中,预设延时时长小于最大消费时长,M为正整数。
第五方面,本说明书实施方式提供了一种消息队列系统,包括服务端和消费客户端,其中,服务端用于执行上述第一方面提及的实施方式中的方法步骤,客户端用于执行上述第二方面提及的实施方式中的方法步骤。
第六方面,本说明书实施方式提供了一种电子设备,该电子设备包括:处理器以及用于存储处理器可执行指令的存储器;处理器用于执行上述第一方面和/或第二方面所提及的实施方式中的方法步骤。
第七方面,本说明书实施方式提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施方式中的方法步骤。
第八方面,本说明书实施方式提供一种计算机程序产品,计算机程序产品中包括指令,指令被计算机设备的处理器执行时,使得计算机设备能够执行上述实施方式中的方法步骤。
本说明书实施方式中提供的消息处理方法,能够在消费客户端拉取M条待消费消息后,服务端在消费客户端配置的最大消费时长内,基于预设延时时长对M条待消费消息的不可见状态进行自动续期,进而更灵活地自适应把控M条待消费消息的可见状态。相比于传统技术中,将消费客户端配置的最大消费时长直接作为不可见状态的延迟时长的方案,本说明书实施方式能够避免依据最大消费时长进行调控导致的消费延迟的问题,进而保障消息的消费进度。
附图说明
图1a所示为一实施方式提供的场景示例中的消息处理方法的系统架构示意图。
图1b所示为一实施方式提供的场景示例中的消息处理方法的应用场景示意图。
图2所示为一实施方式提供的消息处理方法的流程示意图。
图3所示为另一实施方式提供的消息处理方法的流程示意图。
图4所示为又一实施方式提供的消息处理方法的流程示意图。
图5所示为再一实施方式提供的消息处理方法的流程示意图。
图6所示为再一实施方式提供的消息处理方法的流程示意图。
图7所示为再一实施方式提供的消息处理方法的流程示意图。
图8所示为再一实施方式提供的消息处理方法的流程示意图。
图9所示为一实施方式提供的消息处理装置的结构示意图。
图10所示为另一实施方式提供的消息处理装置的结构示意图。
图11所示为一实施方式提供的消息队列系统的结构示意图。
图12所示为一实施方式提供的电子设备的结构示意图。
具体实施方式
下面将结合本实施方式中的附图,对本说明书实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅是本说明书一部分实施方式,而不是全部的实施方式。
下面结合图1a和图1b进行应用场景的举例说明。
图1a所示为一实施方式提供的场景示例中的消息处理方法的系统架构示意图。如图1a所示,本实施方式提及的应用场景中包括服务端110,以及分别与服务端110连接的生产客户端120(又称为生产者客户端)和消费客户端130(又称为消费者客户端)。其中,服务端110可以作为消息中间件的容器承载节点。
示例性地,在实际应用过程中,生产客户端120向服务端110发布消息(即订单),服务端110将该消息推送至订阅该消息的消费客户端130,以便消费客户端130消费该消息。或者,消费客户端130直接借助从服务端110拉取该消息,对应地,服务端110响应于消费客户端130的拉取操作,在消费客户端130配置的最大消费时长内,将消费客户端130拉取的消息,按照预设延时时长进行延时续期,以等待消费客户端130针对该消息的消费成功信息,其中,预设延时时长小于最大消费时长。
进一步细化,图1a所示的应用场景可以为购物交易平台的应用场景等等。
图1b所示为一实施方式提供的场景示例中的消息处理方法的应用场景示意图。如图1b所示,本实施方式提及的应用场景为通信场景,具体地,为基于RTC(Real-TimeCommunication,实时通信)技术实现的通信场景。更具体地,可以具体应用于基于RTC实现的直播、点播、视频会议、在线课堂、在线聊天室、游戏互动等通信场景。
继续参照图1b,本实施方式提及的应用场景涉及服务端140、以及分别与服务端140连接的两个生产客户端150和一个消费客户端160。可以理解,生产客户端150和消费客户端160的数量可根据实际情况设置,本实施方式对此不进行统一限定。
示例性地,在实际应用过程中,生产客户端150向服务端140发布数据流,服务端140将该数据流推送至订阅该数据流的消费客户端160中。数据流例如可以是音频流、视频流等媒体数据。比如,在直播应用场景中,主播通过生产客户端150实时采集媒体数据,并发送至服务端140,不同主播的媒体数据通过直播间进行区分,服务端140可以将该主播的媒体数据推送至进入该主播用户对应直播间的观看用户。又如,在会议应用场景中,参会者通过生产客户端150实时采集媒体数据并发送至服务端140,服务端140可以将生产客户端150发送的媒体数据推送至其他参会者的客户端,此处提及的其他参会者的客户端,既可以是生产客户端,也可以是消费客户端,只要是有消费需求的客户端即可。可以理解,基于消息的订阅发布关系,生产客户端150也是可以作为消费客户端的,对应地,消费客户端160也是可以作为生产客户端的。
以图1b中所示的消费客户端160为例,消费客户端160可以为浏览器、APP(Application,应用程序)或网页应用如H5(HyperText Markup Language5,超文本标记语言第5版)应用或轻应用(也被称为小程序,一种轻量级应用程序)或云应用等,消费客户端160可以基于服务端140提供的相应服务的SDK(Software Development Kit,软件开发工具包),如基于RTC SDK开发获得等。消费客户端160可以部署在电子设备中,需要依赖设备运行或者设备中的某些app而运行等。电子设备例如可以具有显示屏并支持信息浏览等,如可以是个人移动终端如手机、平板电脑、个人计算机等。在电子设备中通常还可以配置各种其他类应用,例如人机对话类应用、模型训练类应用、文本处理类应用、网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
服务端140可以包括提供各种服务的服务器,例如为多个客户端提供通信服务的服务器,又如为客户端上使用的模型提供支持的用于后台训练的服务器,又如对客户端发送的数据进行处理的服务器等。
需要说明的是,服务端140可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。服务器也可以是云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,或者是带人工智能技术的智能云计算服务器或智能云主机。
下面结合图2至图8详细介绍本说明书的消息处理方法。
图2所示为一实施方式提供的消息处理方法的流程示意图。如图2所示,本实施方式涉及消费客户端和服务端。
服务端部署有消息中间件。在一些实施方式中,服务端可以是Web系统服务端、云服务系统服务端以及云存储服务端等。此外,服务端还可以是单个服务器,也可以是包括多个服务器的服务器集群,也可以是非服务器的其他类型的处理设备或终端。
对应地,消费客户端能够基于服务端部署的消息中间件,从服务端获取消息并进行消费。在一些实施方式中,消费客户端可以是连接服务端的各类计算机终端,也可以是装载在手机、平板电脑、笔记本电脑等用户设备中的应用程序。应当理解,消费客户端的应用程序可以从官方网站或应用中心等途径下载并安装到用户设备,也可以是以网页的形式存在。本实施方式对消费客户端的存在形式不作具体限定,只要能够与服务端建立通信连接,并实现信息交互即可。
针对消费客户端,本实施方式提供的消息处理方法包括如下步骤。
步骤S210,基于服务端拉取M条待消费消息,以便服务端将M条待消费消息设为不可见状态。其中,M为正整数。
示例性地,M条待消费消息可以是订单消息,交易消息以及取消订单消息等等。
将M条待消费消息设为不可见状态表征的是,M条待消费消息对消费客户端不可见的状态。在M条待消费消息处于不可见状态时,消费客户端是无法重新拉取M条待消费消息的。
示例性地,消费客户端的拉取操作可以基于POP消费模式中的拉模式实现,具体为消费客户端主动向服务端拉取并缓存M条待消费消息。
针对服务端,本实施方式提供的消息处理方法包括如下步骤。
步骤S220,响应于消费客户端的拉取操作,将拉取操作对应的M条待消费消息设为不可见状态。
步骤S230,在消费客户端配置的最大消费时长内,依照预设延时时长续期M条待消费消息的不可见状态,以等待M条待消费消息对应的消费成功信息。
在本实施方式中,预设延时时长小于最大消费时长。也就是说,预设延时时长与最大消费时长的配置时长可根据实际情况确定,只要预设延时时长小于最大消费时长即可。具体而言,最大消费时长指的是消息消费的最大等待时间,是由消费客户端配置的(比如消费客户端根据实际情况在拉取M条待消费消息时进行针对最大消费时长的配置)。比如,消费客户端将最大消费时长被配置为15min。预设延时时长指的是针对待消费消息的不可见状态进行延时续期的延时时长,是由服务端配置的。比如,预设延时时长被配置为1min。
M条待消费消息对应的消费成功信息指的是,消费客户端成功消费了M条待消费信息。其中,成功消费的标志包括:消费客户端消费完成,并向服务器返回消费成功信息(比如Ack信息)。
示例性地,在实际应用过程中,消费客户端从服务端拉取M条待消费消息,对应地,服务端将被拉取的M条待消费消息设为不可见状态,并在消费客户端配置的最大消费时长内,依照预设延时时长依次续期M条待消费消息的不可见状态,直至接收到消费客户端反馈的消费成功信息,此时M条待消费消息的生命周期结束。
上述实施方式中提及的消息处理方法,通过基于预设延时时长续期M条待消费消息的不可见状态的方式,实现了更灵活地自适应把控M条待消费消息的不可见状态的目的。相比于传统技术中,将消费客户端配置的最大消费时长直接作为不可见状态的延迟时长的方案,本说明书实施方式能够避免依据最大消费时长进行调控导致的消费延迟的问题,进而保障消息的消费进度。
下面以消费客户端与服务端断连的场景为例,结合图3进行进一步实施方式的举例说明。
图3所示为另一实施方式提供的消息处理方法的流程示意图。具体地,在图2所示实施方式的基础上延伸出图3所示实施方式,下面着重叙述图3所示实施方式与图2所示实施方式的不同之处,相同之处不再赘述。
如图3所示,针对服务端,在本实施方式提供的消息处理方法中,在消费客户端的最大消费时长内,依照预设延时时长续期M条待消费消息的不可见状态(步骤S230)之后,还包括如下步骤。
步骤S310,若确定消费客户端与服务端断连,停止续期M条待消费消息的不可见状态。
步骤S320,在确定消费客户端与服务端重连后,将M条待消费消息设为可见状态,以便消费客户端能够重新拉取M条待消费消息。
在一些实施方式中,消费客户端与服务端断连指的是,消费客户端与服务端断开通讯连接,比如消费客户端宕机或者异常重启。对应地,消费客户端与服务端重连指的是,消费客户端与服务端重新建立通讯连接。
步骤S320中提及的将M条待消费消息设为可见状态指的是,将M条待消费消息设为对消费客户端可见的状态,以便消费客户端能够重新拉取M条待消费消息。
针对消费客户端,本实施方式提及的消息处理方法还包括如下步骤。
步骤S330,重新拉取M条待消费消息。
在本实施方式中,在消费客户端与服务端断连后,便停止续期待消费消息的不可见状态,并且,在消费客户端与服务端重连后,便将M条待消费消息设为可见状态,以便消费客户端能够及时地重新拉取M条待消费消息,而无需再等到下一最大消费时长的起始节点时消费客户端才能重见M条待消费消息。由此可见,针对消费客户端断连(比如宕机)的场景,本实施方式能够将较长的最大消费时长转化为相对较短的预设延时时长进行延时续期,既满足了用户需要在最大消费时长内完成消费的前提,也有效地防止了客户端重连后出现消息消费延迟的状况,保障了消息的消费进度。
下面结合图4举例说明基于预设延时时长续期M条待消费消息的不可见状态的含义(以消费客户端宕机场景举例)。
图4所示为又一实施方式提供的消息处理方法的流程示意图。如图4所示,消费客户端配置的最大消费时长为15min,服务端设定的预设延时时长为1min。在最大消费时长内,消费客户端拉取消息Msg1,消息Msg1进入1min不可见时间(即可视为第一次续期),在第一次续期内,消费客户端未对消息Msg1进行消费成功确认操作,则自动对消息Msg1进行时长为1min的第二次续期,在第三次续期期间,出现消费客户端宕机的情况,便停止对消息Msg1的续期。当消费客户端重启后,消息Msg1再次可见(可以为立即再次可见),从而实现消费客户端及时地重新拉取消息Msg1的目的。
由此可见,在本实施方式中,如果消费客户端宕机,便停止续期M条待消费消息的不可见状态,并在确定消费客户端与服务端重连后,将M条待消费消息切换为可见状态,从而能够有效地让消息快速被消费客户端重新拉取进而消费,避免由于消费客户端宕机所导致的消息消费延迟的情况。
下面结合图5举例说明消息成功信息的实际实现方式。
图5所示为再一实施方式提供的消息处理方法的流程示意图。具体地,在图2所示实施方式的基础上延伸出图5所示实施方式,下面着重叙述图5所示实施方式与图2所示实施方式的不同之处,相同之处不再赘述。
如图5所示,针对服务端,在本实施方式提供的消息处理方法中,在消费客户端的最大消费时长内,依照预设延时时长续期M条待消费消息的不可见状态(步骤S230),包括如下步骤。
步骤S510,在最大消费时长内,在接收到消费成功信息之前,依照预设延时时长逐次续期M条待消费消息的不可见状态,并逐次生成M条待消费消息对应的续期消息句柄,以便消费客户端基于最新的续期消息句柄发送消费成功信息。
消息句柄是消息的唯一标识。当消费客户端获得一条消息时,就会得到这条消息的句柄,通过消息句柄也可以定位到一条消息。消费客户端可以通过传递消息句柄进行消费消息确认操作,也可以使用消息句柄进行不可见时间的调整,也可以将消息的下一次可见时间通过消息句柄调整为当前时间加上新的不可见时间。
具体而言,在消费客户端的最大消费时长内,如果服务端一直未接收到消费客户端反馈的消费成功信息,将会每隔一个预设延时时长,对M条待消费消息的不可见状态续期一次。在每次延时续期时,旧的消息句柄会被更新,新的续期消息句柄会生成,直至停止续期时,生成最新的续期消息句柄,消费客户端便可以基于最新的续期消息句柄进行消费消息确认操作。
对应地,针对消费客户端,本实施方式提供的消息处理方法还可以包括:基于最新的续期消息句柄发送消费成功信息。
上述实施方式中提及的消息处理方法,能够利用更新消息句柄,实现对M条待消费消息的不可见状态的调整,以保证消息的正常消费进度。此外,能够利用消费客户端传递的最新的续期消息句柄确认消息消费成功,从而避免服务端重新投递消息给消费客户端,进而出现重复消费的问题。
下面结合图6举例说明服务端对于M条待消费消息的状态的多种更改情况。
图6所示为再一实施方式提供的消息处理方法的流程示意图。具体地,在图2所示实施方式的基础上延伸出图6所示实施方式,下面着重叙述图6所示实施方式与图2所示实施方式的不同之处,相同之处不再赘述。
如图6所示,针对服务端,本实施方式提供的消息处理方法,在消费客户端的最大消费时长内,依照预设延时时长续期M条待消费消息的不可见状态(步骤S230)之后,还包括如下步骤。
步骤S610,判断是否在最大消费时长内接收到消费成功信息。
示例性地,在实际应用过程中,若步骤S610的判断结果为是(即,在最大消费时长内接收到消费成功信息),则执行下述步骤S620,若步骤S610的判断结果为否(即,在最大消费时长内未接收到消费成功信息),则执行下述步骤S630。
步骤S620,将M条待消费消息由不可见状态切换至删除状态。
在一些实施方式中,M条待消费消息对应有三种状态:可见状态、不可见状态和删除状态。其中,删除状态表征的是,消息已被消费客户端成功消费,对应地,消息的生命周期已结束。具体地,在最大消费时长内,消费客户端从服务端拉取M条待消费消息,服务端将M条待消费消息置为不可见状态,在消息预设延时时长内,消费客户端对M条待消费消息完成消费,则使用句柄删除消息,并且更新消费进度,标示M条待消费消息消费成功。
步骤S630,将M条待消费消息设为可见状态。
可以理解,将M条待消费消息设为可见状态的目的是,消费客户端能够重新拉取M条待消费消息。如果由于网络异常、消费客户端异常等导致M条待消费消息未被删除,则说明M条待消费消息未被消费,那么,超过预设延时时长之后,M条待消费消息将重新可见,服务端会重新将M条待消费消息投递至消费客户端。
示例性地,在实际应用过程中,若在最大消费时长内接收到消费成功信息,则确认M条待消费消息被成功消费掉,从而将M条待消费消息由不可见状态切换至删除状态。如此设置,服务端便不会将该M条待消费消息再次投递至消费客户端,并且可以在后续按照预设规则删除该M条待消费消息,回收相应的磁盘空间。当M条待消费消息未被成功消费时,将该M条待消费消息由不可见状态切换至可见状态,并确保该M条待消费消息可以被消费客户端再次拉取并重新消费。
上述实施方式中提及的消息处理方法,能够在最大消费时长内消费成功时,将M条待消费消息删除,进而减少M条待消费消息占用内存的空间,以避免出现消息重复消费的问题,确保消息消费的准确性。此外,在最大消费时长内未消费成功时,也能保证在超过不可见时间之后,将M条待消费消息再次可见,以便消费客户端快速重新消费。
下面结合图7举例说明消费客户端如何对M条待消费消息进行消费。
图7所示为再一实施方式提供的消息处理方法的流程示意图。具体地,在图2所示实施方式的基础上延伸出图7所示实施方式,下面着重叙述图7所示实施方式与图2所示实施方式的不同之处,相同之处不再赘述。
如图7所示,针对消费客户端,本实施方式提供的消息处理方法,在基于服务端拉取M条待消费消息(步骤S210)之后,还包括如下步骤。
步骤S710,消费M条待消费消息。
步骤S720,在M条待消费消息消费成功后,向服务端发送消费成功信息。
在一些实施方式中,消费成功信息包含消费客户端在消费M条待消费消息时的最新的续期消息句柄。
消费成功信息相当于消费客户端向服务端反馈的消费确认信号,以便服务端在收到消费成功信息之后,从内存或磁盘中删除消息。也就是说,为了保证消息从服务端可靠地到达消费客户端,本实施方式提供了消息确认机制。当消费客户端从服务端拉取M条待消费消息并完成消费后,向服务端发送消费成功信息,服务端接收到消费成功信息后,便将M条待消费消息由不可见状态切换至删除状态,这样服务端便不会将M条待消费消息再次投递至消费客户端。由此可见,本实施方式利用消息确认机制,保证了消息的可靠性投递,也能够克服处理消息的过程中消费客户端断连后消息丢失的问题。
下面结合图8举例说明消费客户端进行消费成功确认(又称消费成功反馈)的具体实现方式。
图8所示为再一实施方式提供的消息处理方法的流程示意图。如图8所示,针对消费客户端,本实施方式提供的消息处理方法,包括如下步骤。
步骤S810,提交消息句柄。
步骤S820,判断是否存在最新的续期消息句柄。
示例性地,在实际应用过程中,若步骤S820的判断结果为是(即,存在最新的续期消息句柄),则执行下述步骤S840,若步骤S820的判断结果为否(即,不存在最新的续期消息句柄),则执行下述步骤S830。
步骤S830,将消费确认句柄设置为消息句柄。
步骤S840,将消费确认句柄设为最新的续期消息句柄。
步骤S850,使用消费确认句柄进行消费成功确认。
上述提及的消费确认句柄指的是,用来进行消费成功确认的消息句柄。
由此可见,在消费客户端消费完成之后,消费客户端提交给服务端消息句柄,进行消费成功确认。由于服务端会对消息句柄进行定时的续期,所以当消费客户端进行消费成功确认的时候,需要判断是否存在最新的续期消息句柄,如果存在,则使用最新的续期消息句柄进行消费成功确认。如果不存在,则说明服务端并未对消息进行续时延期,直接使用消息句柄进行消费成功确认。
上文结合图1至图8,详细描述了本说明书的方法实施方式,下面结合图9至图12,详细描述本说明书的装置实施方式。应理解,方法实施方式的描述与装置实施方式的描述相互对应,因此,未详细描述的部分可以参见前面方法实施方式。
图9所示为一实施方式提供的消息处理装置的结构示意图。如图9所示,本实施方式提供的消息处理装置900包括设置模块910和续期模块920。具体地,设置模块910用于响应于消费客户端的拉取操作,将拉取操作对应的M条待消费消息设为不可见状态,其中,M为正整数。续期模块920用于在消费客户端的最大消费时长内,依照预设延时时长续期M条待消费消息的不可见状态,以等待M条待消费消息对应的消费成功信息,其中,预设延时时长小于最大消费时长。
在一些实施方式中,续期模块920还用于,若确定消费客户端与服务端断连,停止续期M条待消费消息的不可见状态,并在确定消费客户端与服务端重连后,将M条待消费消息设为可见状态,以便消费客户端能够重新拉取M条待消费消息。
在一些实施方式中,续期模块920还用于,在最大消费时长内,在接收到消费成功信息之前,依照预设延时时长逐次续期M条待消费消息的不可见状态,并逐次生成M条待消费消息对应的续期消息句柄,以便消费客户端基于最新的续期消息句柄发送消费成功信息。
在一些实施方式中,续期模块920还用于,若在最大消费时长内接收到消费成功信息,将M条待消费消息由不可见状态切换至删除状态;若在最大消费时长内未接收到消费成功信息,将M条待消费消息设为可见状态,以便消费客户端能够重新拉取M条待消费消息。
图10所示为另一实施方式提供的消息处理装置的结构示意图。如图10所示,本实施方式提供的消息处理装置1000包括拉取模块1010。具体地,拉取模块1010用于基于服务端拉取M条待消费消息,以便服务端将M条待消费消息设为不可见状态,并且在消费客户端的最大消费时长内,服务端依照预设延时时长续期M条待消费消息的不可见状态,以等待M条待消费消息对应的消费成功信息,其中,预设延时时长小于最大消费时长,M为正整数。
在一些实施方式中,拉取模块1010还用于,在消费客户端与服务端重连的情况下,重新拉取M条待消费消息。其中,在消费客户端与服务端断连的情况下,服务端停止续期M条待消费消息的不可见状态,并且,在消费客户端与服务端重连后,服务端将M条待消费消息设为可见状态。
在一些实施方式中,拉取模块1010还用于,在最大消费时长内,在接收到消费成功信息之前,依照预设延时时长逐次续期M条待消费消息的不可见状态,并逐次生成M条待消费消息对应的续期消息句柄,以便消费客户端基于最新的续期消息句柄发送消费成功信息。
在一些实施方式中,拉取模块1010还用于,消费M条待消费消息,在M条待消费消息消费成功后,向服务端发送消费成功信息,其中,消费成功信息包含消费客户端在消费M条待消费消息时的最新的续期消息句柄。
图11所示为一实施方式提供的消息队列系统的结构示意图。如图11所示,本实施方式提供的消息队列系统1100包括服务端1110和消费客户端1120。其中,服务端1301用于执行上述任一实施方式提及的需要在服务端执行的消息处理方法的步骤,消费客户端1302用于上述任一实施方式提及的需要在消费客户端执行的消息处理方法的步骤。
下面,参考图12来描述一实施方式提供的电子设备。
图12所示为一实施方式提供的电子设备的结构示意图。如图12所示,电子设备1200包括一个或多个处理器1210和存储器1220。
处理器1210可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备1200中的其他组件以执行期望的功能。
存储器1220可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器1210可以运行程序指令,以实现上文提及的本说明书的各个实施方式的消息处理方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储诸如M条待消费消息等各种内容。
在一个实施方式中,电子设备1200还可以包括:输入装置1230和输出装置1240,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
该输入装置1230可以包括例如键盘、鼠标等等。
该输出装置1240可以向外部输出各种信息,包括M条待消费消息等。该输出装置1240可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图12中仅示出了该电子设备1200中与本说明书有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备1200还可以包括任何其他适当的组件。
除了上述方法和设备以外,本说明书的实施方式还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序产品中包括指令,所述指令被计算机设备的处理器执行时,使得所述计算机设备能够执行上述实施方式中的方法步骤。
计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本实施方式操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本说明书的实施方式还可以是计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行本说明书上述根据本说明书各种实施方式的消息处理方法中的步骤。
计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本说明书一实施方式还提供一种计算机程序产品,计算机程序产品中包括指令,指令被计算机设备的处理器执行时,使得计算机设备能够执行上述实施方式中提及的消息处理方法的方法步骤。
以上结合具体实施方式描述了本说明书的基本原理,但是,需要指出的是,在本说明书中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本说明书的各个实施方式必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本说明书为必须采用上述具体的细节来实现。
本说明书中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本说明书的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本说明书的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本说明书。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本说明书的范围。因此,本说明书不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本说明书的实施方式限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施方式,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (10)

1.一种消息处理方法,其特征在于,应用于服务端,所述方法包括:
响应于消费客户端的拉取操作,将所述拉取操作对应的M条待消费消息设为不可见状态,其中,M为正整数;
在所述消费客户端的最大消费时长内,依照预设延时时长续期所述M条待消费消息的不可见状态,以等待所述M条待消费消息对应的消费成功信息,其中,所述预设延时时长小于所述最大消费时长;
若确定所述消费客户端与所述服务端断连,停止续期所述M条待消费消息的不可见状态,并在确定所述消费客户端与所述服务端重连后,将所述M条待消费消息设为可见状态,以便所述消费客户端能够重新拉取所述M条待消费消息。
2.根据权利要求1所述的消息处理方法,其特征在于,所述在所述消费客户端的最大消费时长内,依照预设延时时长续期所述M条待消费消息的不可见状态,包括:
在所述最大消费时长内,在接收到所述消费成功信息之前,依照所述预设延时时长逐次续期所述M条待消费消息的不可见状态,并逐次生成所述M条待消费消息对应的续期消息句柄,以便所述消费客户端基于最新的续期消息句柄发送所述消费成功信息。
3.根据权利要求1所述的消息处理方法,其特征在于,所述在所述消费客户端的最大消费时长内,依照预设延时时长续期所述M条待消费消息的不可见状态之后,还包括:
若在所述最大消费时长内接收到所述消费成功信息,将所述M条待消费消息由不可见状态切换至删除状态;
若在所述最大消费时长内未接收到所述消费成功信息,将所述M条待消费消息设为可见状态,以便所述消费客户端能够重新拉取所述M条待消费消息。
4.一种消息处理方法,其特征在于,应用于消费客户端,所述方法包括:
基于服务端拉取M条待消费消息,以便所述服务端将所述M条待消费消息设为不可见状态,并且在所述消费客户端的最大消费时长内,所述服务端依照预设延时时长续期所述M条待消费消息的不可见状态,以等待所述M条待消费消息对应的消费成功信息,其中,所述预设延时时长小于所述最大消费时长,M为正整数;
在所述消费客户端与所述服务端重连的情况下,重新拉取所述M条待消费消息,其中,在所述消费客户端与所述服务端断连的情况下,所述服务端停止续期所述M条待消费消息的不可见状态,并且,在所述消费客户端与所述服务端重连后,所述服务端将所述M条待消费消息设为可见状态。
5.根据权利要求4所述的消息处理方法,其特征在于,所述在所述消费客户端配置的最大消费时长内,所述服务端依照预设延时时长续期所述M条待消费消息的不可见状态,包括:
在所述最大消费时长内,在接收到所述消费成功信息之前,所述服务端依照所述预设延时时长逐次续期所述M条待消费消息的不可见状态,并逐次生成所述M条待消费消息对应的续期消息句柄,以便所述消费客户端基于最新的续期消息句柄发送所述消费成功信息。
6.根据权利要求4所述的消息处理方法,其特征在于,在所述基于服务端拉取M条待消费消息之后,还包括:
消费所述M条待消费消息;
在所述M条待消费消息消费成功后,向所述服务端发送所述消费成功信息,其中,所述消费成功信息包含所述消费客户端在消费所述M条待消费消息时的最新的续期消息句柄。
7.一种消息处理装置,其特征在于,应用于服务端,所述装置包括:
设置模块,用于响应于消费客户端的拉取操作,将所述拉取操作对应的M条待消费消息设为不可见状态,其中,M为正整数;
续期模块,用于在所述消费客户端的最大消费时长内,依照预设延时时长续期所述M条待消费消息的不可见状态,以等待所述M条待消费消息对应的消费成功信息,其中,所述预设延时时长小于所述最大消费时长;若确定所述消费客户端与所述服务端断连,停止续期所述M条待消费消息的不可见状态,并在确定所述消费客户端与所述服务端重连后,将所述M条待消费消息设为可见状态,以便所述消费客户端能够重新拉取所述M条待消费消息。
8.一种消息处理装置,其特征在于,应用于消费客户端,所述装置包括:
拉取模块,用于基于服务端拉取M条待消费消息,以便所述服务端将所述M条待消费消息设为不可见状态,并且在所述消费客户端的最大消费时长内,所述服务端依照预设延时时长续期所述M条待消费消息的不可见状态,以等待所述M条待消费消息对应的消费成功信息,其中,所述预设延时时长小于所述最大消费时长,M为正整数;在所述消费客户端与所述服务端重连的情况下,重新拉取所述M条待消费消息,其中,在所述消费客户端与所述服务端断连的情况下,所述服务端停止续期所述M条待消费消息的不可见状态,并且,在所述消费客户端与所述服务端重连后,所述服务端将所述M条待消费消息设为可见状态。
9.一种消息队列系统,其特征在于,包括服务端和消费客户端,其中,所述服务端用于执行上述权利要求1至3任一项所述的消息处理方法,所述消费客户端用于执行上述权利要求4至6任一项所述的消息处理方法。
10.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于执行上述权利要求1至6任一项所述的消息处理方法。
CN202210630929.7A 2022-06-06 2022-06-06 消息处理方法及装置、消息队列系统及电子设备 Active CN115051963B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210630929.7A CN115051963B (zh) 2022-06-06 2022-06-06 消息处理方法及装置、消息队列系统及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210630929.7A CN115051963B (zh) 2022-06-06 2022-06-06 消息处理方法及装置、消息队列系统及电子设备

Publications (2)

Publication Number Publication Date
CN115051963A CN115051963A (zh) 2022-09-13
CN115051963B true CN115051963B (zh) 2024-01-26

Family

ID=83160052

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210630929.7A Active CN115051963B (zh) 2022-06-06 2022-06-06 消息处理方法及装置、消息队列系统及电子设备

Country Status (1)

Country Link
CN (1) CN115051963B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040047646A (ko) * 2002-11-27 2004-06-05 (주)이크레더블 기업간 주문 및 거래 정보 관리 시스템 및 이를 이용한장래매출 채권의 형성 및 전자 결제 관리 방법
CN106095463A (zh) * 2016-06-22 2016-11-09 北京金山安全软件有限公司 通知栏消息处理方法、装置和终端设备
CN109412821A (zh) * 2017-08-16 2019-03-01 阿里巴巴集团控股有限公司 消息处理方法和装置以及电子设备
CN109726024A (zh) * 2018-12-28 2019-05-07 北京爱奇艺科技有限公司 一种消息延时投递方法、装置及设备
CN111984429A (zh) * 2019-05-21 2020-11-24 阿里巴巴集团控股有限公司 基于消息队列的通信方法及装置
CN113872888A (zh) * 2021-09-27 2021-12-31 南威软件股份有限公司 一种针对Kafka积压队列追赶的方法、系统及介质
CN113986962A (zh) * 2021-11-19 2022-01-28 百果园技术(新加坡)有限公司 排行榜生成方法、装置、设备及存储介质
CN114443313A (zh) * 2022-02-08 2022-05-06 浪潮云信息技术股份公司 一种多策略实现延时队列的方法及系统
CN114500416A (zh) * 2021-12-14 2022-05-13 阿里巴巴(中国)有限公司 用于最多一次消息投递的投递方法和投递系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10291572B2 (en) * 2014-12-02 2019-05-14 International Business Machines Corporation Selectively delaying social media messages
US11144895B2 (en) * 2015-05-01 2021-10-12 Pay2Day Solutions, Inc. Methods and systems for message-based bill payment
US11005933B2 (en) * 2016-03-17 2021-05-11 International Business Machines Corporation Providing queueing in a log streaming messaging system

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040047646A (ko) * 2002-11-27 2004-06-05 (주)이크레더블 기업간 주문 및 거래 정보 관리 시스템 및 이를 이용한장래매출 채권의 형성 및 전자 결제 관리 방법
CN106095463A (zh) * 2016-06-22 2016-11-09 北京金山安全软件有限公司 通知栏消息处理方法、装置和终端设备
CN109412821A (zh) * 2017-08-16 2019-03-01 阿里巴巴集团控股有限公司 消息处理方法和装置以及电子设备
CN109726024A (zh) * 2018-12-28 2019-05-07 北京爱奇艺科技有限公司 一种消息延时投递方法、装置及设备
CN111984429A (zh) * 2019-05-21 2020-11-24 阿里巴巴集团控股有限公司 基于消息队列的通信方法及装置
CN113872888A (zh) * 2021-09-27 2021-12-31 南威软件股份有限公司 一种针对Kafka积压队列追赶的方法、系统及介质
CN113986962A (zh) * 2021-11-19 2022-01-28 百果园技术(新加坡)有限公司 排行榜生成方法、装置、设备及存储介质
CN114500416A (zh) * 2021-12-14 2022-05-13 阿里巴巴(中国)有限公司 用于最多一次消息投递的投递方法和投递系统
CN114443313A (zh) * 2022-02-08 2022-05-06 浪潮云信息技术股份公司 一种多策略实现延时队列的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于kafka消息队列的文本处理技术研究;王仲生;;软件导刊(教育技术)(12);全文 *

Also Published As

Publication number Publication date
CN115051963A (zh) 2022-09-13

Similar Documents

Publication Publication Date Title
US20200280591A1 (en) System and Method for Efficient Port and Bandwidth Utilization in Setting up Communication Sessions
WO2021237433A1 (zh) 消息推送方法、装置、电子设备及计算机可读介质
CN108833950B (zh) 一种弹幕消息下发方法、服务器、系统和存储介质
KR101859235B1 (ko) 범용 플러그 앤 플레이 가능 텔레포니 장치들과 무선 영역 네트워크 장치들 사이의 멀티미디어 회의 시스템 및 방법
CN109040326A (zh) 推送消息的方法和装置
US10187435B2 (en) Queued sharing of content in online conferencing
CN112235594B (zh) 直播连麦的方法及装置、计算机可读介质、电子设备
CN108540515B (zh) 一种数据处理方法及服务器
CN102035893A (zh) 一种服务器主动推送数据的方法和系统
CN111935536B (zh) 一种直播间请求响应方法、装置、设备及存储介质
US10708320B2 (en) Selective internal forwarding in conferences with distributed media servers
EP2533544A1 (en) Method and system for implementing message service in interactive iptv
CN108683653A (zh) 一种基于WebSocket的主动式消息推送系统
US11323405B2 (en) Host state-sensing for message interruption
CN110971984A (zh) 一种连麦方法、装置、系统、设备及存储介质
CN106411713B (zh) 一种状态通知方法及服务器
CN115051963B (zh) 消息处理方法及装置、消息队列系统及电子设备
CN116308671A (zh) 基于mqtt协议的在线竞价方法、电子设备及存储介质
CN112532534B (zh) 一种数据传输方法、装置以及计算机可读存储介质
US20210297710A1 (en) Uniform packet streaming
CN111726658B (zh) 一种多媒体数据传输方法及装置
CN111479137B (zh) 线路地址的提供方法、装置、服务器及存储介质
CN111669716B (zh) 一种网络对讲机的通信方法及通信系统
CN110740337B (zh) 直播播放方法、装置、电子设备及存储介质
CN112511884B (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