CN111866150A - 高并发消息服务分发方法、装置、计算机设备及存储介质 - Google Patents

高并发消息服务分发方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN111866150A
CN111866150A CN202010718690.XA CN202010718690A CN111866150A CN 111866150 A CN111866150 A CN 111866150A CN 202010718690 A CN202010718690 A CN 202010718690A CN 111866150 A CN111866150 A CN 111866150A
Authority
CN
China
Prior art keywords
message
user terminal
processed
state
receipt
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
Application number
CN202010718690.XA
Other languages
English (en)
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.)
Shenzhen Hexun Huagu Information Technology Co ltd
Original Assignee
Shenzhen Hexun Huagu Information Technology 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 Shenzhen Hexun Huagu Information Technology Co ltd filed Critical Shenzhen Hexun Huagu Information Technology Co ltd
Priority to CN202010718690.XA priority Critical patent/CN111866150A/zh
Publication of CN111866150A publication Critical patent/CN111866150A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及高并发消息服务分发方法、装置、计算机设备及存储介质,该方法包括获取待发送的消息,以得到待处理消息;获取用户终端的状态;判断用户终端的状态是否是在线且连接稳定状态;若用户终端的状态是在线且连接稳定状态,则发送待处理消息至用户终端,以获取来自用户终端的回执;若用户终端的状态不是在线且连接稳定状态,则接入用户终端并进行握手;当用户终端处于连接稳定状态,推送待处理消息至用户终端,以获取来自用户终端的回执。本发明根据用户终端的状态进行待处理消息的发送,利用服务器与用户终端的双向消息通道获取来自用户终端对待处理消息的回执,实现提高消息分发效率,可实时分发消息,降低消息丢失率以及消息阻塞几率。

Description

高并发消息服务分发方法、装置、计算机设备及存储介质
技术领域
本发明涉及消息服务分发方法,更具体地说是指高并发消息服务分发方法、装置、计算机设备及存储介质。
背景技术
随着互联网技术的快速发展和普及,越来越多的商家或企业通过互联网的平台进行创意等推广,利用互联网在网页上推广信息,吸引更多的人群了解和关注其产品服务等,一方面商家或企业能够通过点击率获得更多转换率,进而从中获利;另一方面,利用互联网推广信息,能够降低推广费用,为商家或企业节省推广成本。
在广告的推广过程中,大多采用服务器分发消息技术将广告推广出去,服务器分发消息技术通常是通过拉取或者简单的消息推送进行消息分发。拉取的方式是由客户端主动访问服务器获取数据,这种方式速度较慢,时效性无法保证;推送的方式是由服务器主动向客户端推送消息,但是当前的推送技术通常没有一个好的服务器并发系统,消息经常会产生阻塞或者丢失从而导致不稳定。
因此,有必要设计一种新的方法,实现提高消息分发效率,可实时分发消息,降低消息丢失率以及消息阻塞几率。
发明内容
本发明的目的在于克服现有技术的缺陷,提供高并发消息服务分发方法、装置、计算机设备及存储介质。
为实现上述目的,本发明采用以下技术方案:高并发消息服务分发方法,包括:
获取待发送的消息,以得到待处理消息;
获取用户终端的状态;
判断所述用户终端的状态是否是在线且连接稳定状态;
若所述用户终端的状态是在线且连接稳定状态,则发送待处理消息至用户终端,以获取来自用户终端的回执;
若所述用户终端的状态不是在线且连接稳定状态,则接入用户终端并进行握手;
当所述用户终端处于连接稳定状态,推送待处理消息至用户终端,以获取来自用户终端的回执。
其进一步技术方案为:所述获取待发送的消息,以得到待处理消息,包括:
获取来自处理列队动态调度任务分配的待发送的消息,以得到待处理消息。
其进一步技术方案为:所述发送待处理消息至用户终端,以获取来自用户终端的回执,包括:
获取用户终端所对应的消息通道;
利用所述消息通道发送所述待处理消息至所述用户终端,以获取来自用户终端的回执,并采用消息协议完成一次握手回执。
其进一步技术方案为:所述接入用户终端并进行握手,包括:
获取目标地址,其中,所述目标地址供用户终端通过负载均衡的方式获取,以接入用户终端;
对接入的用户终端进行消息握手。
其进一步技术方案为:所述当所述用户终端处于连接稳定状态,推送待处理消息至用户终端,以获取来自用户终端的回执,包括:
将待处理消息缓存于映射中;
当所述用户终端处于连接稳定状态时,声明所述用户终端的状态,并将缓存于映射中的待处理消息推送至用户终端,以获取来自用户终端的回执。
其进一步技术方案为:所述发送待处理消息至用户终端,以获取来自用户终端的回执之后,还包括:
当没有收到来自用户终端的回执时,将所述待处理消息暂存于数据库;
当用户终端每次上线或有心跳时发送暂存于数据库内的待处理消息,以得到发送结果;
判断所述发送结果是否是收到对应的回执;
若所述发送结果是收到对应的回执,则进入结束步骤;
若所述发送结果不是收到对应的回执,则判断暂存于数据库中的待处理消息是否已过期;
若暂存于数据库中的待处理消息已过期,则停止发送暂存于数据库中的待处理消息。
其进一步技术方案为:所述判断暂存于数据库中的待处理消息是否已过期之后,还包括:
若暂存于数据库中的待处理消息未过期,则执行所述当用户终端每次上线或有心跳时发送暂存于数据库内的待处理消息,以得到发送结果。
本发明还提供了高并发消息服务分发装置,包括:
消息获取单元,用于获取待发送的消息,以得到待处理消息;
状态获取单元,用于获取用户终端的状态;
状态判断单元,用于判断所述用户终端的状态是否是在线且连接稳定状态;
第一发送单元,用于若所述用户终端的状态是在线且连接稳定状态,则发送待处理消息至用户终端,以获取来自用户终端的回执;
接入单元,用于若所述用户终端的状态不是在线且连接稳定状态,则接入用户终端并进行握手;
第二发送单元,用于当所述用户终端处于连接稳定状态,推送待处理消息至用户终端,以获取来自用户终端的回执。
本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述的方法。
本发明与现有技术相比的有益效果是:本发明通过从处理列队处获取待处理消息,并根据用户终端的状态进行待处理消息的发送,且利用服务器与用户终端的双向消息通道获取来自用户终端对待处理消息的回执,实现提高消息分发效率,可实时分发消息,降低消息丢失率以及消息阻塞几率。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的高并发消息服务分发方法的应用场景示意图;
图2为本发明实施例提供的高并发消息服务分发方法的流程示意图;
图3为本发明实施例提供的高并发消息服务分发方法的子流程示意图;
图4为本发明实施例提供的高并发消息服务分发方法的子流程示意图;
图5为本发明实施例提供的高并发消息服务分发方法的子流程示意图;
图6为本发明另一实施例提供的高并发消息服务分发方法的流程示意图;
图7为本发明实施例提供的高并发消息服务分发装置的示意性框图;
图8为本发明实施例提供的高并发消息服务分发装置的第一发送单元的示意性框图;
图9为本发明实施例提供的高并发消息服务分发装置的接入单元的示意性框图;
图10为本发明实施例提供的高并发消息服务分发装置的第二发送单元的示意性框图;
图11为本发明另一实施例提供的高并发消息服务分发装置的示意性框图;
图12为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1和图2,图1为本发明实施例提供的高并发消息服务分发方法的应用场景示意图。图2为本发明实施例提供的高并发消息服务分发方法的示意性流程图。该高并发消息服务分发方法应用于服务器中。该服务器可以为分布式服务平台中的一台服务器,服务器与用户终端进行数据交互,服务器从消息处理队列获取到需要发送的消息后,服务器根据用户终端在线与否以及连接稳定与否,进行待处理消息的发送,并获取回执,对于没有获取到回执的待处理消息,则在用户终端每次上线或存在心跳时持续发送直至获取到对应的回执或待处理消息已过期。需要说明的是,图2中仅仅示意出一台服务器,实际上服务器的个数可以是一个以上,终端也可以是一个或一个以上。
图2是本发明实施例提供的高并发消息服务分发方法的流程示意图。如图2所示,该方法包括以下步骤S110至S160。
S110、获取待发送的消息,以得到待处理消息。
在本实施例中,待处理消息是指需要发送的消息,比如待推广的广告消息等。
具体地,获取来自处理列队动态调度任务分配的待发送的消息,以得到待处理消息。
S120、获取用户终端的状态。
在本实施例中,当用户终端接入时,服务器会实时检测到,并且连接稳定与否可以从用户终端与服务器之间的消息握手进行判别,当用户终端刚接入时,用户终端与服务器进行首次消息握手,当首次消息握手成功时,则用户终端属于连接稳定,当首次消息握手不成功时,则表明该用户终端与该服务器连接不稳定,此时该用户终端需要与其他服务器进行消息握手,直至握手成功,则该用户终端与握手成功的服务器连接稳定。
在本实施例中,用户终端的状态包括用户终端是否在线且与服务器连接是否稳定。
具体地,首先通过将消息输入到处理队列,处理队列动态调度任务分配给接入服务器集群,服务器集群通过状态中心定位当前用户终端的状态。
S130、判断所述用户终端的状态是否是在线且连接稳定状态。
在本实施例中,只有当用户终端在线且用户终端与服务器连接稳定,且该服务器是处理列队分发的消息所在的服务器。
S140、若所述用户终端的状态是在线且连接稳定状态,则发送待处理消息至用户终端,以获取来自用户终端的回执。
在本实施例中,回执是指表示用户终端接收到消息后发送给服务器的反馈;服务器与用户终端建立连接的双向通道,用户动态地接入负载均衡的消息通道,利用回执可以降低消息丢失率以及消息阻塞几率。
在一实施例中,请参阅图3,上述的步骤S140可包括步骤S141~S142。
S141、获取用户终端所对应的消息通道。
在本实施例中,消息通道是指用户终端与服务器进行数据交互的通道。
S142、利用所述消息通道发送所述待处理消息至所述用户终端,以获取来自用户终端的回执,并采用消息协议完成一次握手回执。
当前用户终端在线且状态稳定即用户终端与服务器连接稳定,则寻找到当前用户终端所对应的消息通道,并根据已经建立好的消息通道将待处理消息发送给用户终端,并按照消息协议完成一次握手回执以防止消息丢失,自此完成一个消息分发闭环。
S150、若所述用户终端的状态不是在线且连接稳定状态,则接入用户终端并进行握手。
在一实施例中,请参阅图4,上述的步骤S150可包括步骤S151~S152。
S151、获取目标地址。
在本实施例中,目标地址是指服务器的地址,也就是待处理消息所在的服务器的地址。其中,所述目标地址供用户终端通过负载均衡的方式获取,以接入用户终端;
S152、对接入的用户终端进行消息握手。
如果用户终端当前不在线,那么当用户终端需要接收消息的时候首先通过负载均衡获取到要接入的待处理消息所在的服务器的目标地址,并在接入后进行一次消息握手确定当前服务器的服务状态稳定,即当前服务器与用户终端连接的稳定性,如果握手失败则继续选择其他服务器进行接入和消息握手,直到服务器与用户终端的连接稳定。
S160、当所述用户终端处于连接稳定状态,推送待处理消息至用户终端,以获取来自用户终端的回执。
在一实施例中,请参阅图5,上述的步骤S160可包括步骤S161~S162。
S161、将待处理消息缓存于映射中;
S162、当所述用户终端处于连接稳定状态时,声明所述用户终端的状态,并将缓存于映射中的待处理消息推送至用户终端,以获取来自用户终端的回执。
具体地,服务器会在状态中心服务中声明一个用户终端的状态,然后将缓存映射中的广播消息即待处理消息通过稳定的消息通道发送给用户终端。
基于观察者模式对所有用户的状态进行监听并把用户当时的状态记录到状态中心模块中,对用户的在线,活跃,离线进行清晰的跟踪。
上述的高并发消息服务分发方法,通过从处理列队处获取待处理消息,并根据用户终端的状态进行待处理消息的发送,且利用服务器与用户终端的双向消息通道获取来自用户终端对待处理消息的回执,实现提高消息分发效率,可实时分发消息,降低消息丢失率以及消息阻塞几率。
图6是本发明另一实施例提供的一种高并发消息服务分发方法的流程示意图。如图6所示,本实施例的高并发消息服务分发方法包括步骤S210-S270。其中步骤S210-S240与上述实施例中的步骤S110-S140类似,步骤S300-S310与上述实施例中的步骤S250-S260类似,在此不再赘述。下面详细说明本实施例中所增加的步骤S250-S290。
S250、当没有收到来自用户终端的回执时,将所述待处理消息暂存于数据库;
S260、当用户终端每次上线或有心跳时发送暂存于数据库内的待处理消息,以得到发送结果。
在本实施例中,发送结果是指服务器将待处理信息发送至用户终端后得到用户终端的回应的结果。
S270、判断所述发送结果是否是收到对应的回执;
若所述发送结果是收到对应的回执,则进入结束步骤;
S280、若所述发送结果不是收到对应的回执,则判断暂存于数据库中的待处理消息是否已过期;
S290、若暂存于数据库中的待处理消息已过期,则停止发送暂存于数据库中的待处理消息;
若暂存于数据库中的待处理消息未过期,则执行所述当用户终端每次上线或有心跳时发送暂存于数据库内的待处理消息,以得到发送结果。
没有收到回执的消息会暂存到数据库中,在每次用户终端上线或者心跳的时候发送给用户,直到确认收到用户终端发回的消息回执为止,当然每条消息也会有自己的过期标识,比如说过期时间,发送最大次数,消息权重等等,当消息过期后我们会逐渐降低消息发送频率直到停止发送以此来防止过于占用资源的场景。通过这种消息回执,重发机制来保证我们的消息分发的稳定性。
另外,上述的步骤S310之后也执行所述步骤S250。
图7是本发明实施例提供的一种高并发消息服务分发装置300的示意性框图。如图7所示,对应于以上高并发消息服务分发方法,本发明还提供一种高并发消息服务分发装置300。该高并发消息服务分发装置300包括用于执行上述高并发消息服务分发方法的单元,该装置可以被配置于服务器中。具体地,请参阅图7,该高并发消息服务分发装置300包括消息获取单元301、状态获取单元302、状态判断单元303、第一发送单元304、接入单元310以及第二发送单元311。
消息获取单元301,用于获取待发送的消息,以得到待处理消息;状态获取单元302,用于获取用户终端的状态;状态判断单元303,用于判断所述用户终端的状态是否是在线且连接稳定状态;第一发送单元304,用于若所述用户终端的状态是在线且连接稳定状态,则发送待处理消息至用户终端,以获取来自用户终端的回执;接入单元310,用于若所述用户终端的状态不是在线且连接稳定状态,则接入用户终端并进行握手;第二发送单元311,用于当所述用户终端处于连接稳定状态,推送待处理消息至用户终端,以获取来自用户终端的回执。
具体地,消息获取单元301,用于获取来自处理列队动态调度任务分配的待发送的消息,以得到待处理消息。
在一实施例中,如图8所示,所述第一发送单元304包括通道获取子单元3041以及消息发送子单元3042。
通道获取子单元3041,用于获取用户终端所对应的消息通道;消息发送子单元3042,用于利用所述消息通道发送所述待处理消息至所述用户终端,以获取来自用户终端的回执,并采用消息协议完成一次握手回执。
在一实施例中,如图9所示,所述接入单元310包括地址获取子单元3101以及握手子单元3102。
地址获取子单元3101,用于获取目标地址,其中,所述目标地址供用户终端通过负载均衡的方式获取,以接入用户终端;握手子单元3102,用于对接入的用户终端进行消息握手。
在一实施例中,如图10所示,所述第二发送单元311包括消息缓存子单元3111以及消息处理子单元3112。
消息缓存子单元3111,用于将待处理消息缓存于映射中;消息处理子单元3112,用于当所述用户终端处于连接稳定状态时,声明所述用户终端的状态,并将缓存于映射中的待处理消息推送至用户终端,以获取来自用户终端的回执。
图11是本发明另一实施例提供的一种高并发消息服务分发装置300的示意性框图。如图11所示,本实施例的高并发消息服务分发装置300是上述实施例的基础上增加了消息存储单元305、第三发送单元306、回执判断单元307、过期判断单元308以及中断单元309。
消息存储单元305,用于当没有收到来自用户终端的回执时,将所述待处理消息暂存于数据库;第三发送单元306,用于当用户终端每次上线或有心跳时发送暂存于数据库内的待处理消息,以得到发送结果;回执判断单元307,用于判断所述发送结果是否是收到对应的回执;若所述发送结果是收到对应的回执,则进入结束步骤;过期判断单元308,用于若所述发送结果不是收到对应的回执,则判断暂存于数据库中的待处理消息是否已过期;若暂存于数据库中的待处理消息未过期,则执行所述当用户终端每次上线或有心跳时发送暂存于数据库内的待处理消息,以得到发送结果。中断单元309,用于若暂存于数据库中的待处理消息已过期,则停止发送暂存于数据库中的待处理消息。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述高并发消息服务分发装置300和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述高并发消息服务分发装置300可以实现为一种计算机程序的形式,该计算机程序可以在如图12所示的计算机设备上运行。
请参阅图12,图12是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是服务器,其中,服务器是多个服务器组成的服务器集群。
参阅图12,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种高并发消息服务分发方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种高并发消息服务分发方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:
获取待发送的消息,以得到待处理消息;获取用户终端的状态;判断所述用户终端的状态是否是在线且连接稳定状态;若所述用户终端的状态是在线且连接稳定状态,则发送待处理消息至用户终端,以获取来自用户终端的回执;若所述用户终端的状态不是在线且连接稳定状态,则接入用户终端并进行握手;当所述用户终端处于连接稳定状态,推送待处理消息至用户终端,以获取来自用户终端的回执。
在一实施例中,处理器502在实现所述获取待发送的消息,以得到待处理消息步骤时,具体实现如下步骤:
获取来自处理列队动态调度任务分配的待发送的消息,以得到待处理消息。
在一实施例中,处理器502在实现所述发送待处理消息至用户终端,以获取来自用户终端的回执步骤时,具体实现如下步骤:
获取用户终端所对应的消息通道;利用所述消息通道发送所述待处理消息至所述用户终端,以获取来自用户终端的回执,并采用消息协议完成一次握手回执。
在一实施例中,处理器502在实现所述接入用户终端并进行握手步骤时,具体实现如下步骤:
获取目标地址,其中,所述目标地址供用户终端通过负载均衡的方式获取,以接入用户终端;对接入的用户终端进行消息握手。
在一实施例中,处理器502在实现所述当所述用户终端处于连接稳定状态,推送待处理消息至用户终端,以获取来自用户终端的回执步骤时,具体实现如下步骤:
将待处理消息缓存于映射中;当所述用户终端处于连接稳定状态时,声明所述用户终端的状态,并将缓存于映射中的待处理消息推送至用户终端,以获取来自用户终端的回执。
在一实施例中,处理器502在实现所述发送待处理消息至用户终端,以获取来自用户终端的回执步骤之后,还实现如下步骤:
当没有收到来自用户终端的回执时,将所述待处理消息暂存于数据库;当用户终端每次上线或有心跳时发送暂存于数据库内的待处理消息,以得到发送结果;判断所述发送结果是否是收到对应的回执;若所述发送结果是收到对应的回执,则进入结束步骤;若所述发送结果不是收到对应的回执,则判断暂存于数据库中的待处理消息是否已过期;若暂存于数据库中的待处理消息已过期,则停止发送暂存于数据库中的待处理消息。
在一实施例中,处理器502在实现所述判断暂存于数据库中的待处理消息是否已过期步骤之后,还实现如下步骤:
若暂存于数据库中的待处理消息未过期,则执行所述当用户终端每次上线或有心跳时发送暂存于数据库内的待处理消息,以得到发送结果。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中该计算机程序被处理器执行时使处理器执行如下步骤:
获取待发送的消息,以得到待处理消息;获取用户终端的状态;判断所述用户终端的状态是否是在线且连接稳定状态;若所述用户终端的状态是在线且连接稳定状态,则发送待处理消息至用户终端,以获取来自用户终端的回执;若所述用户终端的状态不是在线且连接稳定状态,则接入用户终端并进行握手;当所述用户终端处于连接稳定状态,推送待处理消息至用户终端,以获取来自用户终端的回执。
在一实施例中,所述处理器在执行所述计算机程序而实现所述获取待发送的消息,以得到待处理消息步骤时,具体实现如下步骤:
获取来自处理列队动态调度任务分配的待发送的消息,以得到待处理消息。
在一实施例中,所述处理器在执行所述计算机程序而实现所述发送待处理消息至用户终端,以获取来自用户终端的回执步骤时,具体实现如下步骤:
获取用户终端所对应的消息通道;利用所述消息通道发送所述待处理消息至所述用户终端,以获取来自用户终端的回执,并采用消息协议完成一次握手回执。
在一实施例中,所述处理器在执行所述计算机程序而实现所述接入用户终端并进行握手步骤时,具体实现如下步骤:
获取目标地址,其中,所述目标地址供用户终端通过负载均衡的方式获取,以接入用户终端;对接入的用户终端进行消息握手。
在一实施例中,所述处理器在执行所述计算机程序而实现所述当所述用户终端处于连接稳定状态,推送待处理消息至用户终端,以获取来自用户终端的回执步骤时,具体实现如下步骤:
将待处理消息缓存于映射中;当所述用户终端处于连接稳定状态时,声明所述用户终端的状态,并将缓存于映射中的待处理消息推送至用户终端,以获取来自用户终端的回执。
在一实施例中,所述处理器在执行所述计算机程序而实现所述发送待处理消息至用户终端,以获取来自用户终端的回执步骤之后,还实现如下步骤:
当没有收到来自用户终端的回执时,将所述待处理消息暂存于数据库;当用户终端每次上线或有心跳时发送暂存于数据库内的待处理消息,以得到发送结果;判断所述发送结果是否是收到对应的回执;若所述发送结果是收到对应的回执,则进入结束步骤;若所述发送结果不是收到对应的回执,则判断暂存于数据库中的待处理消息是否已过期;若暂存于数据库中的待处理消息已过期,则停止发送暂存于数据库中的待处理消息。
在一实施例中,所述处理器在执行所述计算机程序而实现所述判断暂存于数据库中的待处理消息是否已过期步骤之后,还实现如下步骤:
若暂存于数据库中的待处理消息未过期,则执行所述当用户终端每次上线或有心跳时发送暂存于数据库内的待处理消息,以得到发送结果。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.高并发消息服务分发方法,其特征在于,包括:
获取待发送的消息,以得到待处理消息;
获取用户终端的状态;
判断所述用户终端的状态是否是在线且连接稳定状态;
若所述用户终端的状态是在线且连接稳定状态,则发送待处理消息至用户终端,以获取来自用户终端的回执;
若所述用户终端的状态不是在线且连接稳定状态,则接入用户终端并进行握手;
当所述用户终端处于连接稳定状态,推送待处理消息至用户终端,以获取来自用户终端的回执。
2.根据权利要求1所述的高并发消息服务分发方法,其特征在于,所述获取待发送的消息,以得到待处理消息,包括:
获取来自处理列队动态调度任务分配的待发送的消息,以得到待处理消息。
3.根据权利要求2所述的高并发消息服务分发方法,其特征在于,所述发送待处理消息至用户终端,以获取来自用户终端的回执,包括:
获取用户终端所对应的消息通道;
利用所述消息通道发送所述待处理消息至所述用户终端,以获取来自用户终端的回执,并采用消息协议完成一次握手回执。
4.根据权利要求1所述的高并发消息服务分发方法,其特征在于,所述接入用户终端并进行握手,包括:
获取目标地址,其中,所述目标地址供用户终端通过负载均衡的方式获取,以接入用户终端;
对接入的用户终端进行消息握手。
5.根据权利要求4所述的高并发消息服务分发方法,其特征在于,所述当所述用户终端处于连接稳定状态,推送待处理消息至用户终端,以获取来自用户终端的回执,包括:
将待处理消息缓存于映射中;
当所述用户终端处于连接稳定状态时,声明所述用户终端的状态,并将缓存于映射中的待处理消息推送至用户终端,以获取来自用户终端的回执。
6.根据权利要求1至5任一项所述的高并发消息服务分发方法,其特征在于,所述发送待处理消息至用户终端,以获取来自用户终端的回执之后,还包括:
当没有收到来自用户终端的回执时,将所述待处理消息暂存于数据库;
当用户终端每次上线或有心跳时发送暂存于数据库内的待处理消息,以得到发送结果;
判断所述发送结果是否是收到对应的回执;
若所述发送结果是收到对应的回执,则进入结束步骤;
若所述发送结果不是收到对应的回执,则判断暂存于数据库中的待处理消息是否已过期;
若暂存于数据库中的待处理消息已过期,则停止发送暂存于数据库中的待处理消息。
7.根据权利要求6所述的高并发消息服务分发方法,其特征在于,所述判断暂存于数据库中的待处理消息是否已过期之后,还包括:
若暂存于数据库中的待处理消息未过期,则执行所述当用户终端每次上线或有心跳时发送暂存于数据库内的待处理消息,以得到发送结果。
8.高并发消息服务分发装置,其特征在于,包括:
消息获取单元,用于获取待发送的消息,以得到待处理消息;
状态获取单元,用于获取用户终端的状态;
状态判断单元,用于判断所述用户终端的状态是否是在线且连接稳定状态;
第一发送单元,用于若所述用户终端的状态是在线且连接稳定状态,则发送待处理消息至用户终端,以获取来自用户终端的回执;
接入单元,用于若所述用户终端的状态不是在线且连接稳定状态,则接入用户终端并进行握手;
第二发送单元,用于当所述用户终端处于连接稳定状态,推送待处理消息至用户终端,以获取来自用户终端的回执。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现如权利要求1至7中任一项所述的方法。
CN202010718690.XA 2020-07-23 2020-07-23 高并发消息服务分发方法、装置、计算机设备及存储介质 Pending CN111866150A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010718690.XA CN111866150A (zh) 2020-07-23 2020-07-23 高并发消息服务分发方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010718690.XA CN111866150A (zh) 2020-07-23 2020-07-23 高并发消息服务分发方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN111866150A true CN111866150A (zh) 2020-10-30

Family

ID=72950452

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010718690.XA Pending CN111866150A (zh) 2020-07-23 2020-07-23 高并发消息服务分发方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN111866150A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112395112A (zh) * 2020-11-30 2021-02-23 深圳市和讯华谷信息技术有限公司 应用消息处理方法、装置、计算机设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010133035A1 (zh) * 2009-05-21 2010-11-25 华为终端有限公司 点到多点推送消息处理方法、系统及服务器
CN104954348A (zh) * 2014-03-31 2015-09-30 普华讯光(北京)科技有限公司 一种基于xmpp的可靠消息推送方法
WO2015180339A1 (zh) * 2014-05-30 2015-12-03 中兴通讯股份有限公司 消息推送处理方法、装置、推送服务器及应用服务器
CN107528922A (zh) * 2017-09-29 2017-12-29 深圳市金立通信设备有限公司 一种消息推送方法、终端及计算机可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010133035A1 (zh) * 2009-05-21 2010-11-25 华为终端有限公司 点到多点推送消息处理方法、系统及服务器
CN104954348A (zh) * 2014-03-31 2015-09-30 普华讯光(北京)科技有限公司 一种基于xmpp的可靠消息推送方法
WO2015180339A1 (zh) * 2014-05-30 2015-12-03 中兴通讯股份有限公司 消息推送处理方法、装置、推送服务器及应用服务器
CN107528922A (zh) * 2017-09-29 2017-12-29 深圳市金立通信设备有限公司 一种消息推送方法、终端及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈志刚 等: "使用Java实现高并发推送服务" *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112395112A (zh) * 2020-11-30 2021-02-23 深圳市和讯华谷信息技术有限公司 应用消息处理方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN109684358B (zh) 数据查询的方法和装置
US9270719B2 (en) Device connection proxy through cloud to optimize network messages
US20100083255A1 (en) Notification batching based on user state
CN108023953B (zh) Ftp服务的高可用实现方法和装置
CN108958893B (zh) 高并发业务的资源控制方法、装置和计算机可读存储介质
CN110196761B (zh) 延迟任务处理方法及装置
US20020078132A1 (en) Message handling
GB2490800A (en) Transferring use of an application between client devices
US9730037B2 (en) Cellular data communication for mobile devices
WO2021237433A1 (zh) 消息推送方法、装置、电子设备及计算机可读介质
CN112600878B (zh) 一种数据传输方法及装置
US9026665B2 (en) Optimization of gaming application execution using proxy connection
CN112600761A (zh) 一种资源分配的方法、装置及存储介质
CN115022318B (zh) 一种基于微服务架构的消息发布方法及系统
CN112379982A (zh) 任务处理方法、装置、电子设备及计算机可读存储介质
US9106596B2 (en) Method and apparatus of configuring a data broadcast service
CN111866150A (zh) 高并发消息服务分发方法、装置、计算机设备及存储介质
US11463549B2 (en) Facilitating inter-proxy communication via an existing protocol
US8949344B2 (en) Asynchronous queued messaging for web applications
US8762491B2 (en) Optimization of gaming application execution using proxy connection
EP2912823B1 (en) Systems and methods for message delivery to mobile devices supporting multiple users
CN112667368A (zh) 一种任务数据处理方法和装置
CN111191134B (zh) 一种智能推送方法及终端
CN110247808B (zh) 信息发送方法、装置、设备及可读存储介质
CN112769960A (zh) 一种基于Nginx服务器的主动流量控制方法及系统

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20201030