CN112559154B - 消息发送量增长的优化方法、系统、设备及可读存储介质 - Google Patents
消息发送量增长的优化方法、系统、设备及可读存储介质 Download PDFInfo
- Publication number
- CN112559154B CN112559154B CN202011538892.2A CN202011538892A CN112559154B CN 112559154 B CN112559154 B CN 112559154B CN 202011538892 A CN202011538892 A CN 202011538892A CN 112559154 B CN112559154 B CN 112559154B
- Authority
- CN
- China
- Prior art keywords
- task
- pushing
- message
- sent
- type
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000005457 optimization Methods 0.000 title claims abstract description 21
- 230000005540 biological transmission Effects 0.000 title abstract description 18
- 238000007726 management method Methods 0.000 claims description 26
- 230000008859 change Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000015556 catabolic process Effects 0.000 description 4
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种消息发送量增长的优化方法,包括:通过接收渠道接收多个待发送消息的第一推送任务,并根据接收渠道的渠道类型将第一推送任务存储至与渠道类型对应的任务入口队列中;从所有的任务入口队列中获取第一推送任务,根据第一推送任务的任务类型及推送时间确定第一推送任务的优先级,将预设的优先级对应的第一推送任务作为第二推送任务,并将第二推送任务存储至待发送队列;根据第二推送任务的渠道类型与任务类型启动相应的发送平台,通过发送平台获取待发送队列中的第二推送任务;通过发送平台将第二推送任务中的待发送消息推送给客户端或者进行站内信存储。本发明采用多种接收渠道和发送平台,灵活地发送消息,提高消息的触达率。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种消息发送量增长的优化方法、系统、设备及可读存储介质。
背景技术
随着业务的快速发展,各业务系统的复杂度迅速增加,系统的流量也成倍增加。各系统往往在业务初期不太注重架构方面可能出现的问题,等业务量真正上来后,各种问题会集中爆发,进而系统会不断进入各种性能恶化模式,比如长请求拥塞、多次请求杠杠、反复缓存等反模式。而架构方面的欠缺,在遇到系统性能问题时没有足够的应对策略,只能被动地“等着”业务高峰期的过去。而在系统的性能能力之内,如何应对10X甚至50X业务量增长是现在技术急需解决的问题。
发明内容
有鉴于此,本发明实施例的目的是提供一种消息发送量增长的优化方法、系统、设备及可读存储介质,采用多种接收渠道和发送平台,灵活地发送消息,提高消息的触达率。
为实现上述目的,本发明实施例提供了一种消息发送量增长的优化方法,包括:
通过接收渠道接收多个待发送消息的第一推送任务,并根据所述接收渠道的渠道类型将所述第一推送任务存储至与所述渠道类型对应的任务入口队列中;
基于渠道系统管理模块从所有的任务入口队列中获取所述第一推送任务,根据所述第一推送任务的任务类型及推送时间确定所述第一推送任务的优先级,将预设的优先级对应的第一推送任务作为第二推送任务,并将所述第二推送任务存储至待发送队列;
根据所述待发送队列中所述第二推送任务的渠道类型与任务类型启动相应的发送平台,通过所述发送平台获取所述待发送队列中的所述第二推送任务;
通过所述发送平台将所述第二推送任务中的待发送消息推送给客户端或者进行站内信存储。
进一步地,所述渠道类型包括开放接口类型及定时任务执行模块类型,所述任务入口队列包括通知任务入口队列及批量任务入口队列,所述通过接收渠道接收多个待发送消息的第一推送任务,并根据所述接收渠道的渠道类型将所述第一推送任务存储至与所述渠道类型对应的任务入口队列中包括:
当所述第一推送任务通过开放接口类型的接收渠道进行接收时,并将所述第一推送任务存储至预先建立的通知任务入口队列;或
当所述第一推送任务通过定时任务执行模块类型的接收渠道进行接收时,将所述第一推送任务存储至预先建立的批量任务入口队列。
进一步地,所述根据所述第一推送任务的任务类型及推送时间确定所述第一推送任务的优先级包括:
若所述第一推送任务的渠道类型为开放接口类型,将所述第一推送任务的优先级确定为高级;
若所述第一推送任务的渠道类型为定时任务执行模块类型,将所述第一推送任务的优先级确定为低级;
若所述第一推送任务的渠道类型相同,则根据所述第一推送任务的发送时间确定优先级,其中,发送时间在前的第一推送任务的优先级为高级,发送时间在后的第一推送任务的优先级为低级。
进一步地,所述通过所述发送平台将所述第二推送任务中的待发送消息推送给客户端或者进行站内信存储包括:
通过所述发送平台将所述第二推送任务中的待发送消息分成下发型和存储型;
将所述下发型的待发送消息发送到下游系统,以通过所述下游系统分发给客户端;或
将所述存储型的待发送消息存储到站内信内。
进一步地,所述通过所述发送平台将所述第二推送任务中的待发送消息推送给客户端或者进行站内信存储之前,包括:
获取所述客户端的状态信息,根据所述状态信息判断是否进行消息推送。
进一步地,所述获取所述客户端的状态信息,根据所述状态信息判断是否进行消息推送包括:
接收所述客户端进行状态查询后的状态回执;
解析所述状态回执,得到所述客户端的当前变更状态,并根据所述当前变更状态判断是否对所述客户端进行消息推送;
若所述当前变更状态为预设的变更状态,则停止向所述客户端进行消息推送,并将不可用标识符标记至所述客户端上。
进一步地,所述方法还包括:
监测所述接收渠道、所述任务入口队列、所述渠道系统管理模块、所述待发送队列以及所述发送平台的流量状态,以对所述接收渠道、所述任务入口队列、所述渠道系统管理模块、所述待发送队列以及所述发送平台进行限流处理。
为实现上述目的,本发明实施例提供了一种消息发送量增长的优化系统,包括:
接收模块,用于通过接收渠道接收多个待发送消息的第一推送任务,并根据所述接收渠道的渠道类型将所述第一推送任务存储至与所述渠道类型对应的任务入口队列中;
获取模块,用于基于渠道系统管理模块从所有的任务入口队列中获取所述第一推送任务,根据所述第一推送任务的任务类型及推送时间确定所述推送任务的优先级,将预设的优先级对应的第一推送任务作为第二推送任务,并将所述第二推送任务存储至待发送队列;
启动模块,用于根据所述待发送队列中所述第二推送任务的渠道类型与任务类型启动相应的发送平台,通过所述发送平台获取所述待发送队列中的所述第二推送任务;
推送模块,用于通过所述发送平台将所述第二推送任务中的待发送消息推送给客户端或者进行站内信存储。
为实现上述目的,本发明实施例提供了一种计算机设备,所述计算机设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的消息发送量增长的优化方法的步骤。
为实现上述目的,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的消息发送量增长的优化方法的步骤。
本发明实施例提供的消息发送量增长的优化方法、系统、设备及可读存储介质,通过对消息管理平台的总体流程改进:根据待发送消息的第一推送任务的接收渠道对待发送消息进行队列存储,再根据第一推送任务的任务类型进行优先级的确定,根据优先级将第一推送任务存储至发送队列中,以分发给相应的发送平台进行消息发送。预先对消息管理平台进行了改造,建立多个接收渠道与多个发送平台,且接收渠道与发送平台之间通过消息发送平台进行交互,起到解耦及削峰作用,并且按照业务类型及渠道类型对待发送消息从接收到发送进行逻辑隔离,能够极大降低发送链路的交互次数。
附图说明
图1为本发明消息发送量增长的优化方法实施例一的流程图。
图2为本发明消息发送量增长的优化系统实施例二的程序模块示意图。
图3为本发明计算机设备实施例三的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
参阅图1,示出了本发明实施例一之消息发送量增长的优化方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备2为执行主体进行示例性描述。具体如下。
步骤S100,通过接收渠道接收多个待发送消息的第一推送任务,并根据所述接收渠道的渠道类型将所述第一推送任务存储至与所述渠道类型对应的任务入口队列中。
具体地,通过消息管理平台的接收渠道接收待发送消息,当接收到的待发送消息的第一推送任务通过接收渠道为OpenAPI开放接口进行接收,该待发送消息的任务类型为通知任务型,并将该待发送消息的推送任务存储至预先建立的通知任务入口队列。当接收到的待发送消息的第一推送任务为通过定时任务执行模块接收渠道定时启动的批量任务,该待发送消息的任务类型为批量任务型,将该待发送消息通过批量任务入口队列进行存储。
在示例性的实施例中,所述渠道类型包括开放接口类型及定时任务执行模块类型,所述任务入口队列包括通知任务入口队列及批量任务入口队列,所述步骤S100具体包括:
步骤S101,当所述第一推送任务通过开放接口类型的接收渠道进行接收时,并将所述第一推送任务存储至预先建立的通知任务入口队列;或
步骤S102,当所述第一推送任务通过定时任务执行模块类型的接收渠道进行接收时,将所述第一推送任务存储至预先建立的批量任务入口队列。
具体地,通知任务入口队列与批量任务入口队列均通过kafka分布式发布订阅消息系统进行构建。任务类型为批量任务的第一推送任务为用户预先在后台管理系统进行设置,通过定时任务执行模块定时执行。OpenAPI开放接口逻辑轻量化,支持高并发,并方便横向扩容。
步骤S120,基于渠道系统管理模块从所有的任务入口队列中获取所述第一推送任务,根据所述第一推送任务的任务类型及推送时间确定所述第一推送任务的优先级,将预设的优先级对应的第一推送任务作为第二推送任务,并将所述第二推送任务存储至待发送队列。
具体地,通过消息管理平台的渠道系统管理模块从所有的任务入口队列中,获取预设时间段或者预设数量的待发送消息的第一推送任务作为第二推送任务,根据优先级将第二推送任务存储至待发送队列中进行消息发送。若第一推送任务的渠道类型为接口类型,将该第一推送任务的优先级确定为高级;若第一推送任务的渠道类型为定时任务执行模块,即将该第一推送任务的优先级预确定为低级。若第一推送任务的渠道类型相同,则根据第一推送任务的发送时间进一步确定优先级,将第一推送任务与待发送消息存储至预先建立的待发送队列。渠道消息管理模块还获取尾随接口的通知任务,该通知任务为根据用户的操作进行数据处理后,智能推荐的营销消息的第一推送任务,该第一推送任务的优先级在批量任务类型的第一推送任务之后。
在示例性的实施例中,所述步骤S120具体包括:
步骤S121,若所述第一推送任务的渠道类型为开放接口类型,将所述第一推送任务的优先级确定为高级。
步骤S122,若所述第一推送任务的渠道类型为定时任务执行模块类型,将所述第一推送任务的优先级确定为低级。
步骤S123,若所述第一推送任务的渠道类型相同,则根据所述第一推送任务的发送时间确定优先级,其中,发送时间在前的第一推送任务的优先级为高级,发送时间在后的第一推送任务的优先级为低级。
具体地,根据渠道类型确定第一推送任务的优先级,并基于优先级将第一推送任务以及第一推送任务对应的待发送消息存储至待发送队列中。若第一推送任务的渠道类型为开放接口类型,则表示第一推送任务为通知类任务;若第一推送任务的渠道类型为定时任务执行模块类型,则表示第一推送任务为定时类任务。预设的优先级确定规则中,通知类任务的优先级大于定时类任务的优先级,任务类型相同的情况下,以发送时间确定任务的优先级。
步骤S140,根据所述待发送队列中所述第二推送任务的渠道类型与任务类型启动相应的发送平台,通过所述发送平台获取所述待发送队列中的所述第二推送任务。
具体地,根据待发送队列的推送任务的渠道类型与任务类型启动相应的发送平台,例如,若推送任务的任务类型为通知任务类型,启动通知类发送平台,以获取推送任务中的待发送消息进行发送。发送平台可建立多个,以将发送平台的逻辑朝微服务方向改造,并且发送平台之间互不干涉,即,发送平台拆分,按任务类型、渠道拆分,使得各任务类型、渠道逻辑上独立,不互相影响。接收渠道与发送平台之间通过消息发送平台进行交互,起到解耦及削峰作用,并且按照业务类型及渠道进行逻辑隔离。将消息发送的发送平台和接收渠道进行隔离,使得故障时将影响范围降到最低。
步骤S160,通过所述发送平台将所述第二推送任务中的待发送消息推送给客户端或者进行站内信存储。
在示例性的实施例中,所述步骤S160具体包括:
步骤S161,通过所述发送平台将所述第二推送任务中的待发送消息分成下发型和存储型;
步骤S162A,将所述下发型的待发送消息发送到下游系统,以通过所述下游系统分发给客户端;或
步骤S162B,将所述存储型的待发送消息存储到站内信内。
具体地,通过发送平台将第二推送任务中的待发送消息分成下发型和存储型,下发型消息发送到下游系统,通过下游系统分发给客户端,存储型存储到站内信内,且站内信存储重构,存储结构重新设计,减少数据库输入输出压力,使得相同消息量发送时对数据库产生的输入输出压力极大降低,这样同样资源下可以支撑更大的消息吞吐量。
在示例性的实施例中,所述步骤S161之前,包括:
步骤S150,获取所述客户端的状态信息,根据所述状态信息判断是否进行消息推送。
在示例性的实施例中,所述步骤S150具体包括:
步骤S151,接收所述客户端进行状态查询后的状态回执。
步骤S152,解析所述状态回执,得到所述客户端的当前变更状态,并根据所述当前变更状态判断是否对所述客户端进行消息推送。
步骤S153,若所述当前变更状态为预设的变更状态,则停止向所述客户端进行消息推送,并将不可用标识符标记至所述客户端上。
具体地,下游系统发送状态回执给客户端进行状态查询,查询客户端此时的变更状态,判断是否进行消息推送。若客户端的变更状态为故障、停止、更新等,则对客户端进行不可以标识,以暂停消息推送;若客户端无变更,则根据推送任务将待发送消息推送给客户端。还可以通过状态回执查询客户端的RMQ(Range Minimum/Maximum Query,即区间最值查询),查询客户端当前可以接收的消息量的最大值,基于该最大值给客户端进行消息推送,防止客户端出现拥堵,导致系统崩溃等现象。
在示例性的实施例中,所述方法还包括:
监测所述接收渠道、所述任务入口队列、所述渠道系统管理模块、所述待发送队列以及所述发送平台的流量状态,以对所述接收渠道、所述任务入口队列、所述渠道系统管理模块、所述待发送队列以及所述发送平台进行限流处理。
具体地,在消息管理平台的各个模块,例如接收渠道、任务入口队列、渠道系统模块等设置限流开关,以达到进行服务降级与限流能力的建设,帮助当系统资源出现瓶颈时,通过操作服务降级及限流开关来减缓系统的压力。并且对消息管理平台的各个模块,通过CAT(实时监控平台)进行埋点及告警,对系统的性能进行监控,便于有针对性地进行系统优化。
实施例二
请继续参阅图2,示出了本发明消息发送量增长的优化系统实施例二的程序模块示意图。在本实施例中,消息发送量增长的优化系统20可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述消息发送量增长的优化方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述消息发送量增长的优化系统20在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
接收模块200,用于通过接收渠道接收多个待发送消息的第一推送任务,并根据所述接收渠道的渠道类型将所述第一推送任务存储至与所述渠道类型对应的任务入口队列中。
具体地,通过消息管理平台的接收渠道接收待发送消息,当接收到的待发送消息的第一推送任务通过接收渠道为OpenAPI开放接口进行接收,该待发送消息的任务类型为通知任务型,并将该待发送消息的推送任务存储至预先建立的通知任务入口队列。当接收到的待发送消息的第一推送任务为通过定时任务执行模块接收渠道定时启动的批量任务,该待发送消息的任务类型为批量任务型,将该待发送消息通过批量任务入口队列进行存储。
在示例性的实施例中,所述渠道类型包括开放接口类型及定时任务执行模块类型,所述任务入口队列包括通知任务入口队列及批量任务入口队列,所述接收模块200具体用于包括:
当所述第一推送任务通过开放接口类型的接收渠道进行接收时,并将所述第一推送任务存储至预先建立的通知任务入口队列;或
当所述第一推送任务通过定时任务执行模块类型的接收渠道进行接收时,将所述第一推送任务存储至预先建立的批量任务入口队列。
具体地,通知任务入口队列与批量任务入口队列均通过kafka分布式发布订阅消息系统进行构建。任务类型为批量任务的第一推送任务为用户预先在后台管理系统进行设置,通过定时任务执行模块定时执行。OpenAPI开放接口逻辑轻量化,支持高并发,并方便横向扩容。
获取模块202,用于基于渠道系统管理模块从所有的任务入口队列中获取所述第一推送任务,根据所述第一推送任务的任务类型及推送时间确定所述推送任务的优先级,将预设的优先级对应的第一推送任务作为第二推送任务,并将所述第二推送任务存储至待发送队列。
具体地,通过消息管理平台的渠道系统管理模块从所有的任务入口队列中,获取预设时间段或者预设数量的待发送消息的第一推送任务作为第二推送任务,根据优先级将第二推送任务存储至待发送队列中进行消息发送。若第一推送任务的渠道类型为接口类型,将该第一推送任务的优先级确定为高级;若第一推送任务的渠道类型为定时任务执行模块,即将该第一推送任务的优先级预确定为低级。若第一推送任务的渠道类型相同,则根据第一推送任务的发送时间进一步确定优先级,将第一推送任务与待发送消息存储至预先建立的待发送队列。渠道消息管理模块还获取尾随接口的通知任务,该通知任务为根据用户的操作进行数据处理后,智能推荐的营销消息的第一推送任务,该第一推送任务的优先级在批量任务类型的第一推送任务之后。
在示例性的实施例中,所述获取模块202具体用于:
若所述第一推送任务的渠道类型为开放接口类型,将所述第一推送任务的优先级确定为高级。
若所述第一推送任务的渠道类型为定时任务执行模块类型,将所述第一推送任务的优先级确定为低级。
若所述第一推送任务的渠道类型相同,则根据所述第一推送任务的发送时间确定优先级,其中,发送时间在前的第一推送任务的优先级为高级,发送时间在后的第一推送任务的优先级为低级。
具体地,根据渠道类型确定第一推送任务的优先级,并基于优先级将第一推送任务以及第一推送任务对应的待发送消息存储至待发送队列中。若第一推送任务的渠道类型为开放接口类型,则表示第一推送任务为通知类任务;若第一推送任务的渠道类型为定时任务执行模块类型,则表示第一推送任务为定时类任务。预设的优先级确定规则中,通知类任务的优先级大于定时类任务的优先级,任务类型相同的情况下,以发送时间确定任务的优先级。
启动模块204,用于根据所述待发送队列中所述第二推送任务的渠道类型与任务类型启动相应的发送平台,通过所述发送平台获取所述待发送队列中的所述第二推送任务。
具体地,根据待发送队列的推送任务的渠道类型与任务类型启动相应的发送平台,例如,若推送任务的任务类型为通知任务类型,启动通知类发送平台,以获取推送任务中的待发送消息进行发送。发送平台可建立多个,以将发送平台的逻辑朝微服务方向改造,并且发送平台之间互不干涉,即,发送平台拆分,按任务类型、渠道拆分,使得各任务类型、渠道逻辑上独立,不互相影响。接收渠道与发送平台之间通过消息发送平台进行交互,起到解耦及削峰作用,并且按照业务类型及渠道进行逻辑隔离。将消息发送的发送平台和接收渠道进行隔离,使得故障时将影响范围降到最低。
推送模块206,用于通过所述发送平台将所述第二推送任务中的待发送消息推送给客户端或者进行站内信存储。
在示例性的实施例中,所述推送模块206具体用于:
通过所述发送平台将所述第二推送任务中的待发送消息分成下发型和存储型;
将所述下发型的待发送消息发送到下游系统,以通过所述下游系统分发给客户端;或
将所述存储型的待发送消息存储到站内信内。
具体地,通过发送平台将第二推送任务中的待发送消息分成下发型和存储型,下发型消息发送到下游系统,通过下游系统分发给客户端,存储型存储到站内信内,且站内信存储重构,存储结构重新设计,减少数据库输入输出压力,使得相同消息量发送时对数据库产生的输入输出压力极大降低,这样同样资源下可以支撑更大的消息吞吐量。
实施例三
参阅图3,是本发明实施例三之计算机设备的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。该计算机设备2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图3所示,所述计算机设备2至少包括,但不限于,可通过系统总线相互通信连接存储器21、处理器22、网络接口23、以及消息发送量增长的优化系统20。其中:
本实施例中,存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如实施例二的消息发送量增长的优化系统20的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备2的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行消息发送量增长的优化系统20,以实现实施例一的消息发送量增长的优化方法。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述服务器2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将所述服务器2与外部终端相连,在所述服务器2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。需要指出的是,图3仅示出了具有部件20-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的所述消息发送量增长的优化系统20还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
例如,图2示出了所述实现消息发送量增长的优化系统20实施例二的程序模块示意图,该实施例中,所述消息发送量增长的优化系统20可以被划分为所述接收模块200、所述获取模块202、所述启动模块204以及所述推送模块206。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述消息发送量增长的优化系统20在所述计算机设备2中的执行过程。所述程序模块200-206的具体功能在实施例二中已有详细描述,在此不再赘述。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于计算机程序,被处理器执行时实现实施例一的消息发送量增长的优化方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (4)
1.一种消息发送量增长的优化方法,其特征在于,包括:
通过接收渠道接收多个待发送消息的第一推送任务,并根据所述接收渠道的渠道类型将所述第一推送任务存储至与所述渠道类型对应的任务入口队列中;
基于渠道系统管理模块从所有的任务入口队列中获取所述第一推送任务,根据所述第一推送任务的任务类型及推送时间确定所述第一推送任务的优先级,将预设的优先级对应的第一推送任务作为第二推送任务,并将所述第二推送任务存储至待发送队列;
根据所述待发送队列中所述第二推送任务的渠道类型与任务类型启动相应的发送平台,通过所述发送平台获取所述待发送队列中的所述第二推送任务;
通过所述发送平台将所述第二推送任务中的待发送消息推送给客户端或者进行站内信存储;
所述渠道类型包括开放接口类型及定时任务执行模块类型,所述任务入口队列包括通知任务入口队列及批量任务入口队列,所述通过接收渠道接收多个待发送消息的第一推送任务,并根据所述接收渠道的渠道类型将所述第一推送任务存储至与所述渠道类型对应的任务入口队列中包括:
当所述第一推送任务通过开放接口类型的接收渠道进行接收时,将所述第一推送任务存储至预先建立的通知任务入口队列;或
当所述第一推送任务通过定时任务执行模块类型的接收渠道进行接收时,将所述第一推送任务存储至预先建立的批量任务入口队列;
所述根据所述第一推送任务的任务类型及推送时间确定所述第一推送任务的优先级包括:
若所述第一推送任务的渠道类型为开放接口类型,将所述第一推送任务的优先级确定为高级;
若所述第一推送任务的渠道类型为定时任务执行模块类型,将所述第一推送任务的优先级确定为低级;
若所述第一推送任务的渠道类型相同,则根据所述第一推送任务的发送时间确定优先级,其中,发送时间在前的第一推送任务的优先级为高级,发送时间在后的第一推送任务的优先级为低级;
若所述第一推送任务为根据用户的操作进行数据处理后进行智能推荐营销消息的推送任务,则确定所述第一推送任务的优先级为在批量任务类型的第一推送任务之后;
所述通过所述发送平台将所述第二推送任务中的待发送消息推送给客户端或者进行站内信存储包括:
通过所述发送平台将所述第二推送任务中的待发送消息分成下发型和存储型;
将所述下发型的待发送消息发送到下游系统,以通过所述下游系统分发给客户端;或
将所述存储型的待发送消息存储到站内信内;
所述通过所述发送平台将所述第二推送任务中的待发送消息推送给客户端或者进行站内信存储之前,包括:
接收所述客户端进行状态查询后的状态回执;
解析所述状态回执,得到所述客户端的当前变更状态,并根据所述当前变更状态判断是否对所述客户端进行消息推送;
若所述当前变更状态为预设的变更状态,则停止向所述客户端进行消息推送,并将不可用标识符标记至所述客户端上,所述预设的变更状态为故障、停止或更新;
其中:
当基于所述状态回执查询到所述客户端当前可以接收的消息量的最大值时,则基于查询到的所述最大值对所述客户端进行消息推送;
所述方法还包括:
监测所述接收渠道、所述任务入口队列、所述渠道系统管理模块、所述待发送队列以及所述发送平台的流量状态,以对所述接收渠道、所述任务入口队列、所述渠道系统管理模块、所述待发送队列以及所述发送平台进行限流处理。
2.一种消息发送量增长的优化系统,用于实施权利要求1所述的消息发送量增长的优化方法,其特征在于,包括:
接收模块,用于通过接收渠道接收多个待发送消息的第一推送任务,并根据所述接收渠道的渠道类型将所述第一推送任务存储至与所述渠道类型对应的任务入口队列中;
获取模块,用于基于渠道系统管理模块从所有的任务入口队列中获取所述第一推送任务,根据所述第一推送任务的任务类型及推送时间确定所述推送任务的优先级,将预设的优先级对应的第一推送任务作为第二推送任务,并将所述第二推送任务存储至待发送队列;
启动模块,用于根据所述待发送队列中所述第二推送任务的渠道类型与任务类型启动相应的发送平台,通过所述发送平台获取所述待发送队列中的所述第二推送任务;
推送模块,用于通过所述发送平台将所述第二推送任务中的待发送消息推送给客户端或者进行站内信存储。
3.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1所述的消息发送量增长的优化方法的步骤。
4.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1所述的消息发送量增长的优化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011538892.2A CN112559154B (zh) | 2020-12-23 | 2020-12-23 | 消息发送量增长的优化方法、系统、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011538892.2A CN112559154B (zh) | 2020-12-23 | 2020-12-23 | 消息发送量增长的优化方法、系统、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112559154A CN112559154A (zh) | 2021-03-26 |
CN112559154B true CN112559154B (zh) | 2024-05-24 |
Family
ID=75032248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011538892.2A Active CN112559154B (zh) | 2020-12-23 | 2020-12-23 | 消息发送量增长的优化方法、系统、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559154B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113225699B (zh) * | 2021-04-30 | 2022-07-01 | 西安热工研究院有限公司 | 基于报警平台的消息发送系统及方法、存储方法的介质及设备 |
CN114390451A (zh) * | 2021-12-09 | 2022-04-22 | 上海帜讯信息技术股份有限公司 | 基于消息队列的5g消息批量发送方法、装置及电子设备 |
CN115277595B (zh) * | 2022-07-26 | 2023-04-25 | 深圳证券通信有限公司 | 数据发送方法及相关装置 |
CN116384956B (zh) * | 2023-06-05 | 2023-08-15 | 天津金城银行股份有限公司 | 一种消息批量发送方法、装置、设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108400927A (zh) * | 2018-01-22 | 2018-08-14 | 广州欧赛斯信息科技有限公司 | 一种针对高并发消息的消息推送方法及装置 |
CN111614718A (zh) * | 2020-04-10 | 2020-09-01 | 广州市玄武无线科技股份有限公司 | 一种企业通信渠道融合方法、装置、设备及可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8634810B2 (en) * | 2011-09-29 | 2014-01-21 | International Business Machines Corporation | Pushing secure notifications to mobile computing devices |
-
2020
- 2020-12-23 CN CN202011538892.2A patent/CN112559154B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108400927A (zh) * | 2018-01-22 | 2018-08-14 | 广州欧赛斯信息科技有限公司 | 一种针对高并发消息的消息推送方法及装置 |
CN111614718A (zh) * | 2020-04-10 | 2020-09-01 | 广州市玄武无线科技股份有限公司 | 一种企业通信渠道融合方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112559154A (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112559154B (zh) | 消息发送量增长的优化方法、系统、设备及可读存储介质 | |
CN111966289B (zh) | 基于Kafka集群的分区优化方法和系统 | |
CN111163159B (zh) | 消息订阅方法、装置、服务器及计算机可读存储介质 | |
US20210042578A1 (en) | Feature engineering orchestration method and apparatus | |
CN111130912B (zh) | 内容分发网络的异常定位方法、服务器及存储介质 | |
CN109861856B (zh) | 系统故障信息的通知方法、装置、存储介质及计算机设备 | |
CN109450691B (zh) | 服务网关监控方法、设备及计算机可读存储介质 | |
CN110333916B (zh) | 请求消息处理方法、装置、计算机系统及可读存储介质 | |
CN112422450B (zh) | 计算机设备、服务请求的流量控制方法及装置 | |
CN109639490B (zh) | 一种宕机通知方法及装置 | |
CN110008187B (zh) | 文件传输调度方法、装置、设备及计算机可读存储介质 | |
US11425632B2 (en) | Mechanism to provide updates to NB-IoT devices | |
CN111309442B (zh) | 微服务容器数量的调整方法、装置、系统、介质及设备 | |
CN112600842A (zh) | 集群shell方法、装置、电子设备及计算机可读存储介质 | |
CN109308219B (zh) | 任务处理方法、装置及分布式计算机系统 | |
CN105339915B (zh) | 推送型信息发送设备、推送型信息发送方法以及程序 | |
CN114615337A (zh) | 设备调度方法、系统、服务器及存储介质 | |
CN114884906A (zh) | 基于快速恢复的失败重试通知方法及装置 | |
CN110995839B (zh) | 广告系统性能的分析方法、装置和计算机存储介质 | |
CN110852537A (zh) | 服务质量检测方法和装置 | |
CN118316887A (zh) | 一种用于群发信息的流量浪涌消除方法及装置 | |
KR101506448B1 (ko) | M2m 트래픽 관리 방법 및 장치 | |
CN112115020B (zh) | 一种数据库连接池异常监测方法、装置及计算机设备 | |
CN114221874B (zh) | 流量分析及调度方法、装置、计算机设备及可读存储介质 | |
CN117896677A (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 |