Message pushing system and method, server, storage medium and program product

By setting up multiple message push groups in the message push system and distributing them according to the message content capacity, the real-time and reliability problems caused by rebalancing triggers of the message queue are solved, and more efficient message push is achieved.

CN119865529APending Publication Date: 2025-04-22CHINA UNIONPAY
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510029113.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-01-07
Publication Date
2025-04-22

AI Technical Summary

Technical Problem

The message queue has low real-time and low reliability caused by rebalancing trigger during message push.

Method used

By setting up multiple message push groups in the message push system and sending them to the corresponding message push group according to the content capacity of the notification message for push processing, it is avoided that consumers are mistakenly considered to be downtime due to excessively long processing of large-capacity messages, and the trigger of rebalancing is reduced.

Benefits of technology

It improves the real-time and reliability of message push, reduces the trigger frequency of rebalancing in the message queue, and ensures the stability and efficiency of message push.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119865529A_ABST
    Figure CN119865529A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a message pushing system and method, a server, a storage medium and a program product. Relates to the technical field of data processing. The system comprises a target distribution node and a message queue, the message queue comprises at least two message pushing groups; the target distribution node is used for determining a target message pushing group from the at least two message pushing groups according to the content capacity of a notification message to be pushed, and sending the message content of the notification message to the target message pushing group; the target message pushing group is used for pushing the message content when available resources of a target message pushing thread group in the target message pushing group meet a preset condition. The system achieves the effect of improving the real-time performance and reliability of message pushing of the system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of data processing technology, and in particular to a message push system, method, server, storage medium and program product. Background Art

[0002] Push messaging is a communication mode in which information is actively sent from the server to the client, rather than the client requesting the information. Push messaging is usually based on a publish-subscribe model, where the client subscribes to the topic of interest, and the server publishes new messages to the corresponding topic when there are new messages, and all clients subscribed to the topic will receive the message. Message queues play an important role in push messaging systems, responsible for delivering messages between servers and clients.

[0003] During the message push process, different messages contain different amounts of data, resulting in different push times for different message queues. This may cause some message queues, such as distributed message queues, to trigger the rebalancing mechanism at any time during the message push process, resulting in low real-time performance and low reliability during the message push process.

[0004] Therefore, how to solve the low real-time performance and low reliability of message push caused by the rebalancing triggering risk in the message queue during the message push process is a technical problem that needs to be solved urgently. Summary of the invention

[0005] The embodiments of the present application provide a message push system, method, server, storage medium and program product to solve the current technical problem of low real-time and low reliability of message push caused by irregular rebalancing in the message queue during the message push process.

[0006] In a first aspect, an embodiment of the present application provides a message push system, comprising: a target distribution node and a message queue, wherein the message queue comprises at least two message push groups;

[0007] The target distribution node is used to determine a target message push group from the at least two message push groups according to the content capacity of the notification message to be pushed, and send the message content of the notification message to the target message push group;

[0008] The target message push group is used to push the message content when the available resources of the target message push thread group in the target message push group meet preset conditions.

[0009] The message push system provided by the present application sends notification messages with different content capacities to different message push groups for push processing, so as to ensure that the message queue can avoid being mistakenly regarded as a downtime due to a consumer taking too long to process large-capacity messages during the message processing process, thereby avoiding the triggering of rebalancing; further, in the process of message queue consuming messages, when the resources of the message queue are lower than the preset resource threshold, the message consumption begins, otherwise the message consumption is suspended. In this way, the message consumption is performed only when there is enough margin in the message queue, which can avoid the situation where the consumer is mistakenly regarded as a downtime due to the message not being consumed for a long time when the thread is busy, further avoiding the triggering of rebalancing in the message queue, thereby improving the real-time and reliability of system push.

[0010] In a possible implementation manner, the target distribution node is specifically used to:

[0011] Obtain the message group division capacity range corresponding to each of the message push groups;

[0012] The target message push group corresponding to the notification message is determined according to the content capacity and the capacity ranges divided into a plurality of preset message groups.

[0013] In a possible implementation manner, the target distribution node is further configured to:

[0014] Determine the number of message groups of the message push group;

[0015] The preset content capacity range is divided according to the number of message groups to obtain a plurality of message group divided capacity ranges; each of the message group divided capacity ranges corresponds to each of the message push groups one by one.

[0016] In a possible implementation, the target distribution node includes two message sending modes; the first message distribution mode is used to distribute notification messages stored in a preset database of messages to be pushed within a first historical period from the current moment;

[0017] The second message distribution method is used to distribute the notification messages stored in the preset to-be-pushed message database within the second historical period starting from the end time of the first historical period;

[0018] The target distribution node is specifically used for:

[0019] Determining a target distribution mode of the two message sending modes according to the storage time of the notification message;

[0020] The target distribution method is adopted to send the message content to the target message push group.

[0021] In a possible implementation, the message push system further includes: a monitoring node;

[0022] The monitoring node is used to:

[0023] Acquire multiple candidate distribution nodes for sending notification messages, and determine the candidate distribution nodes that meet preset conditions as target distribution nodes for sending the message content;

[0024] When the target distribution node is down, a new target distribution node is determined from among the candidate distribution nodes.

[0025] In a possible implementation manner, the target distribution node is specifically used to:

[0026] When the current message state of the notification message meets a preset state condition, sending the message content to the target message push group;

[0027] When the current message state of the notification message does not meet the preset state condition, stop sending the message content.

[0028] In a possible implementation, the message status that meets the preset status condition includes to be pushed, being pushed, and being pushed again;

[0029] The message status that does not meet the preset status conditions includes push completion and expired non-push; wherein, the expired non-push indicates that the expected push time of the notification message is less than the current time, and the second time difference between the expected push time and the current time is greater than the second preset time threshold.

[0030] In a possible implementation, the target distribution node is specifically used to:

[0031] Determine a message sending result corresponding to the message content;

[0032] When the message sending result indicates that the message content is successfully sent to the target message push group, a message modification instruction of the notification message is generated according to the current message status of the notification message and the current remaining number of pushes; the message modification instruction is used to modify the notification message in a preset database of messages to be pushed.

[0033] In a possible implementation, the message modification instruction includes a number modification instruction and a status modification instruction;

[0034] The number modification instruction is used to reduce the current remaining number of pushes of the notification message to obtain the target remaining number of pushes of the notification message;

[0035] The state modification instruction is used to update the current message state of the notification message to the corresponding target message state according to the current remaining number of pushes.

[0036] In a possible implementation, the state modification instruction includes a first state modification instruction and a second state modification instruction;

[0037] The first status modification instruction is used to change the target message status of the notification message to being pushed when the current message status is to be pushed and the target remaining push times are greater than zero;

[0038] The second status modification instruction is used to change the target message status of the notification message to being pushed again when the current message status is kept being pushed / pushed again for more than a first preset time threshold and the target remaining push times are greater than zero.

[0039] In a possible implementation, the message push group includes at least two message push topics;

[0040] The target message push group is also used for:

[0041] When it is determined that the available resources of the target message push thread group do not meet the preset conditions, the target message push topic corresponding to the message content in the message push group is determined, and the message content is stored in other message push topics in the target message push group except the target message push topic.

[0042] In a possible implementation, the target message push thread group includes a plurality of message push threads corresponding to respective push objects; the push object is an object corresponding to the notification message among a plurality of objects in the downstream system;

[0043] The target message push group is specifically used for:

[0044] According to the push object and the target message push thread group, a target message push thread for pushing the message content is determined, so as to push the message content through the target message push thread.

[0045] In a possible implementation, the target message push group is specifically used to:

[0046] Adding a mutex lock to the message content;

[0047] When the mutex is added successfully, obtaining the target message status corresponding to the message content;

[0048] When it is determined that the target message state meets the preset state condition, push processing is performed on the message content;

[0049] If the mutex is not added successfully, or the target message state of the notification message does not meet a preset state condition, the message content is stopped from being pushed.

[0050] In a possible implementation, the target message push group is specifically used to:

[0051] Obtaining the current push result of the message content; the current push result includes whether the message content is successfully pushed to the corresponding push object, and whether the message content is not successfully pushed to the push object;

[0052] The current message status of the notification message is determined based on the current remaining number of pushes for the message content and the current push result; the current message status includes push completion and pending push; the push completion includes push success and push failure; the push failure includes pushing in progress and pushing again.

[0053] In a possible implementation, the target message push group is specifically used to:

[0054] When the current push result indicates that the message content is successfully pushed to the push object, determining that the current message status of the notification message is successfully pushed;

[0055] When the current push result indicates that the message content has not been successfully pushed to the push object, and the current remaining number of pushes is zero, determining that the current message state of the notification message is a push failure;

[0056] When the current push result indicates that the message content is not successfully pushed to the push object, and the current remaining number of pushes is greater than zero, it is determined that the current message state of the notification message is to be pushed.

[0057] In a possible implementation, the message push system further includes at least one feedback message queue;

[0058] The target message push group is specifically used for:

[0059] When the current push result indicates that the current push status is that the push is completed, generating a push feedback message of the notification message;

[0060] The feedback message queue is used to feed back the push feedback message to the upstream system of the message push system.

[0061] In a possible implementation, the target message push group is specifically used to:

[0062] In the case where the message feature indicates that the notification message requires feedback, the result feedback message is encapsulated to generate a push feedback message corresponding to the notification message.

[0063] In a second aspect, an embodiment of the present application provides a message push method, which is applied to a target distribution node in the message push system described in any one of the first aspects; the method comprises:

[0064] Receiving a notification message to be pushed sent by a message database to be pushed; the notification message includes message content and content capacity;

[0065] According to the content capacity, a target message push group is determined from the at least two message push groups, and the message content is sent to the target message push group.

[0066] The message push method provided by the present application sends notification messages to different message push groups for push processing based on content capacity, so as to ensure that the message queue can avoid being mistaken for downtime due to a consumer processing large-volume messages for too long during the message processing process, avoid triggering rebalancing, and improve the reliability and real-time performance of system push. In a possible implementation, the method specifically includes:

[0067] Obtain the message group division capacity range corresponding to each of the message push groups;

[0068] The target message push group corresponding to the notification message is determined according to the content capacity and the capacity range of each message group.

[0069] In a possible implementation, the method specifically includes:

[0070] Determine the number of message groups of the message push group;

[0071] The preset content capacity range is divided according to the number of message groups to obtain a plurality of message group divided capacity ranges; each of the message group divided capacity ranges corresponds to each of the message push groups one by one.

[0072] In a possible implementation, the method specifically includes: the target distribution node includes two message sending modes; the first message distribution mode is used to distribute notification messages stored in a preset database of messages to be pushed within a first historical period from the current moment;

[0073] The second message distribution method is used to distribute the notification messages stored in the preset to-be-pushed message database within the second historical period starting from the end time of the first historical period;

[0074] Determining a target distribution mode of the two message sending modes according to the storage time of the notification message;

[0075] The target distribution method is adopted to send the message content to the target message push group.

[0076] In a possible implementation, the method specifically includes:

[0077] When the current message state of the notification message meets a preset state condition, sending the message content to the target message push group;

[0078] When the current message state of the notification message does not meet the preset state condition, stop sending the message content.

[0079] In a possible implementation, the method specifically includes: the message status that meets the preset status condition includes to be pushed, being pushed, and being pushed again;

[0080] The message status that does not meet the preset status condition includes push completion and expired and not pushed; wherein,

[0081] The expiration indicates that the estimated push time of the notification message is less than the current time, and a second time difference between the estimated push time of the notification message and the current time is greater than a second preset time threshold.

[0082] In a possible implementation, the method specifically includes:

[0083] Determine a message sending result corresponding to the message content;

[0084] When the message sending result indicates that the message content is successfully sent to the target message push group, a message modification instruction of the notification message is generated according to the current message status of the notification message and the current remaining number of pushes; the message modification instruction is used to modify the notification message in the database of messages to be pushed.

[0085] In a possible implementation, the method specifically includes:

[0086] The message modification instruction includes a number modification instruction and a status modification instruction;

[0087] The number modification instruction is used to reduce the current remaining number of pushes of the notification message to obtain the target remaining number of pushes of the notification message;

[0088] The state modification instruction is used to update the current message state of the notification message to the corresponding target message state according to the current remaining number of pushes.

[0089] In a third aspect, an embodiment of the present application provides a message push method, which is applied to a target message push group in the message push system described in any one of the first aspects; the method comprises:

[0090] When the available resources of the target message push thread group corresponding to the target message push group meet the preset conditions, the message content is pushed.

[0091] The message push method provided by the present application starts consuming messages when the resources of the message queue are lower than a preset resource threshold during the process of consuming messages in the message queue, and pauses consuming messages otherwise. In this way, message consumption is performed only when the message queue has sufficient surplus, which can avoid the situation where the consumer is mistakenly believed to have crashed because the message has not been consumed for a long time when the thread is busy, further avoids the triggering of rebalancing in the message queue, and improves the reliability and real-time performance of the system push.

[0092] In a possible implementation, the method specifically includes:

[0093] When it is determined that the available resources of the target message push thread group do not meet the preset conditions, the target message push topic corresponding to the message content in the message push group is determined, and the message content is stored in other message push topics in the target message push group except the target message push topic.

[0094] In a possible implementation, the method specifically includes:

[0095] The target message push thread group includes a plurality of message push threads corresponding to each push object one by one; the push object is an object corresponding to the notification message among a plurality of objects in the downstream system;

[0096] According to the push object and the target message push thread group, a target message push thread for pushing the message content is determined, so as to push the message content through the target message push thread.

[0097] In a possible implementation, the method specifically includes:

[0098] Adding a mutex lock to the message content;

[0099] When the mutex is added successfully, obtaining the target message status corresponding to the message content;

[0100] When it is determined that the target message state meets the preset state condition, push processing is performed on the message content;

[0101] If the mutex is not added successfully, or the target message state of the notification message does not meet the preset state condition, the message content is stopped from being pushed.

[0102] In a possible implementation, the method specifically includes:

[0103] Obtaining the current push result of the message content; the current push result includes that the message content is successfully pushed to the push object, and that the message content is not successfully pushed to the push object;

[0104] The current message status of the notification message is determined according to the current push result and the current remaining number of pushes; the current message status includes push completion and pending push; the push completion includes push success and push failure; the push failure includes pushing in progress and pushing again.

[0105] In a possible implementation, the method specifically includes:

[0106] When the current push result indicates that the message content is successfully pushed to the push object, determining that the current message status of the notification message is successfully pushed;

[0107] When the current push result indicates that the message content has not been successfully pushed to the push object, and the current remaining number of pushes is zero, determining that the current message state of the notification message is a push failure;

[0108] When the current push result indicates that the message content is not successfully pushed to the push object, and the current remaining number of pushes is greater than zero, it is determined that the current message state of the notification message is to be pushed.

[0109] In a possible implementation, the method specifically includes:

[0110] When the push result indicates that the current push status is that the push is completed, generating a push feedback message of the notification message;

[0111] The push feedback message is fed back to the upstream system of the message push system through a feedback message queue preset in the message push system.

[0112] In a possible implementation, the method specifically includes:

[0113] In the case where the message feature indicates that the notification message requires feedback, the result feedback message is encapsulated to generate a push feedback message corresponding to the notification message.

[0114] In a fourth aspect, an embodiment of the present application provides a server, including: a memory, a processor;

[0115] The memory stores computer-executable instructions;

[0116] The processor executes the computer-executable instructions stored in the memory, so that the processor executes the above first aspect and / or various possible implementations of the first aspect.

[0117] In a fifth aspect, an embodiment of the present application provides a computer-readable storage medium, in which computer-executable instructions are stored. When the computer-executable instructions are executed by a processor, they are used to implement the first aspect above and / or various possible implementations of the first aspect.

[0118] In a sixth aspect, an embodiment of the present application provides a computer program product, including a computer program, which, when executed by a processor, implements the above first aspect and / or various possible implementation methods of the first aspect.

[0119] The message push system, method, server, storage medium and program product provided by the embodiments of the present application send notification messages with different content capacities to different message push groups in the message queue for push processing, so as to ensure that the message queue can avoid being mistakenly regarded as a downtime due to a consumer taking too long to process large-capacity messages during the message processing process, thereby avoiding the triggering of rebalancing; further, in the process of message queue consuming messages, when the resources of the message queue are lower than the preset resource threshold, the message consumption begins, otherwise the message consumption is suspended, so that the message queue consumes messages only when there is enough margin, thereby avoiding the situation where the consumer is mistakenly regarded as a downtime due to the message not being consumed for a long time when the thread is busy, further avoiding the triggering of rebalancing in the message queue, and improving the real-time and reliability of system push. BRIEF DESCRIPTION OF THE DRAWINGS

[0120] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present application and, together with the description, serve to explain the principles of the present application.

[0121] Figure 1 A schematic diagram of a message push system provided for this application;

[0122] Figure 2 Schematic diagram of the structure of the message push system provided for this application Figure 1 ;

[0123] Figure 3 Schematic diagram of the corresponding process of the message push system push process provided for this application Figure 1 ;

[0124] Figure 4 Schematic diagram of the push method provided for this application Figure 1 ;

[0125] Figure 5 Schematic diagram of the push method provided for this application Figure 2 ;

[0126] Figure 6 Schematic diagram of the server structure provided for this application Figure 1 .

[0127] The above drawings have shown clear embodiments of the present application, which will be described in more detail later. These drawings and text descriptions are not intended to limit the scope of the present application in any way, but to illustrate the concept of the present application to those skilled in the art by referring to specific embodiments. DETAILED DESCRIPTION

[0128] Here, exemplary embodiments will be described in detail, and examples thereof are shown in the accompanying drawings. When the following description refers to the drawings, unless otherwise indicated, the same numbers in different drawings represent the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present application. Instead, they are only examples of devices and methods consistent with some aspects of the present application.

[0129] In the technical solution of this application, the collection, storage, use, processing, transmission, provision and disclosure of information such as financial data or user data involved shall comply with the provisions of relevant laws and regulations and shall not violate public order and good morals.

[0130] It should be noted that in the embodiments of the present application, certain software, components, models and other existing solutions in the industry may be mentioned, and they should be regarded as exemplary. Their purpose is only to illustrate the feasibility of implementing the technical solution of the present application, but it does not mean that the applicant has or will necessarily use the solution.

[0131] First, the terms involved in this application are explained:

[0132] Rebalancing of message queues: refers to the process in which Kafka needs to reallocate partitions to consumers when the membership of a consumer group changes (for example, a consumer joins or leaves the group). This mechanism ensures that all consumers in the consumer group can effectively consume messages in the partitions, and that each partition is consumed by only one consumer at any time.

[0133] With the rapid development of Internet technology, modern applications pay more and more attention to user experience, and timely message push can significantly improve user interaction and satisfaction. For example, through message push technology, users can instantly receive social media reminders, news updates or transaction reminders without actively refreshing or querying.

[0134] Message queues play an important role in message push technology. They are responsible for delivering messages between the server and the client so that users can receive messages through the client in a timely manner.

[0135] However, during the message push process, due to the different amounts of data contained in different messages, the message queues take different amounts of time to push different messages. This may cause distributed message queues such as Kafka queues to trigger the rebalancing mechanism of the message queue at any time during the message push process.

[0136] Specifically, it can be understood in this application that in the process of message queues pushing messages through consumers consuming messages, most of the messages consumed in the current period are messages with a small amount of data, and consumers will consume the messages in a relatively short time, thus quickly completing the message push. However, if there is a consumer consuming a message with a large amount of data, and the message queue has not consumed the message for a long time, it will mistakenly believe that the consumer has crashed. In order to ensure that the message with a large amount of data can be pushed in time, the message queue will trigger the rebalancing mechanism and reassign consumers to the unsuccessful consumption in the message queue, that is, it will use new consumers to re-consume the message with a large amount of data. In the process of re-consuming messages, the newly assigned consumers may successfully consume the message with a large amount of data; however, there may still be a situation where the consumer queue triggers the rebalancing mechanism again due to the above reasons.

[0137] During the message push process, the rebalancing mechanism of the message queue will be triggered frequently and irregularly, which will cause the following problems in the message push process:

[0138] 1. Interrupt message consumption, resulting in reduced message push efficiency; specifically, during the rebalancing mechanism, consumers will suspend message consumption, resulting in a brief consumption interruption. This may affect the performance of applications with high real-time requirements, especially when rebalancing occurs frequently.

[0139] 2. Increase system latency; if members in the consumer group frequently join or leave, or if heartbeat times out due to network jitter, rebalancing may be triggered frequently, increasing the system burden.

[0140] 3. Affecting system stability. Repeated rebalancing mechanism triggering may cause other potential problems in the message queue server broker and consumer applications, such as messages not being consumed.

[0141] In view of the situation where the above-mentioned rebalancing mechanism is triggered frequently and irregularly, in some optional implementation modes, the message consumption with very short task execution time is usually solved by adjusting the consumer-side configuration parameters in the message queue (session.timeout.ms, heartbeat.interval.ms, max.poll.records, max.poll.interval.ms). For message consumption with long task execution time (for example, tens of minutes), it is generally "solved" by adjusting the message queue consumer-side configuration parameters + splitting large execution tasks.

[0142] However, when the above implementation method adjusts the consumer configuration parameters in the message queue + splits the large execution tasks, there will be problems such as the splitting granularity is difficult to control and the evaluation of the execution time of the small tasks after splitting is complicated. If the subsequent business logic needs to be adjusted or increased, it may be necessary to split the tasks again and evaluate the task time. In addition, by adjusting the message queue consumer parameters, it is impossible to simultaneously meet the requirements of both ensuring the consumer's consumption speed and timely detecting the consumer's availability, which will lead to technical problems such as low real-time performance and low reliability of message push.

[0143] In response to the above technical problems, the message push system provided by the present application is intended to solve the above technical problems of the prior art. Specifically, the message queue in the message push system provided by the present application includes at least two message push groups. By setting a capacity threshold, messages with a larger capacity are sent to the first message push group for push processing, and messages with a smaller capacity are sent to the second message push group for push processing. This can avoid consumers who have not consumed large-capacity messages due to inconsistent capacity from being mistakenly believed to have experienced a downtime, thereby reducing the triggering of the rebalancing mechanism of the message queue; further, in the process of consuming messages in the message queue, when the resources of the message queue are lower than the preset resource threshold, the message consumption begins, otherwise the message consumption is suspended. In this way, the message consumption is performed only when the message queue has enough margin, which can avoid the situation where the consumer is mistakenly believed to have experienced a downtime because the message has not been consumed for a long time when the thread is busy, and further avoid the triggering of rebalancing in the message queue.

[0144] In this way, the message push system provided by the present application can reduce the triggering of the rebalancing mechanism in the message queue through the above-mentioned scheme, thereby improving the real-time performance and reliability of message push.

[0145] Figure 1Scenario diagram of the message push system provided for this application. Specific application scenarios of this application may include: using the message push system to push notification messages generated by the upstream system of the message push system to the downstream system of the message push system; for example, in a transportation platform, using the message push system to push notification messages generated by the reconciliation system to push the reconciliation results to the industry party and the corresponding application party.

[0146] like Figure 1 As shown, the implementation of the message push system in the above scenario involves an upstream system 11 , a message push system 12 and a downstream system 13 .

[0147] The upstream system 11 encapsulates the generated processing result, obtains a notification message, and sends the notification message to the message push system 12 .

[0148] The message push system 12 includes a target distribution node and a message queue; the message queue includes multiple message push groups; specifically, when the message push system 12 receives a notification message, the target distribution node determines the target message push group corresponding to the notification message from at least two message push groups, and sends the message content of the notification message to the target message push group; then, the notification message is pushed to the downstream system 13 through the target message push group, thereby completing the message push process.

[0149] It should be noted that with the development of the Internet, message push systems have a wider range of application scenarios in modern applications, such as mobile application instant notifications, financial service reminders, transportation and logistics reminders, and smart home reminders.

[0150] The technical solution of the present application and how the technical solution of the present application solves the above-mentioned technical problems are described in detail below with specific embodiments. The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be repeated in some embodiments. The embodiments of the present application will be described below in conjunction with the accompanying drawings.

[0151] Figure 2 Schematic diagram of the structure of the message push system provided for this application Figure 1 ,like Figure 2 As shown, the message push system includes: a target distribution node and a message queue; wherein the message queue includes at least two message push groups.

[0152] It is understandable that different message push groups are used to process notification messages within different content capacity ranges. Each message push group includes multiple message push topics, and each message push topic is used to collaboratively process notification messages within the current content capacity range.

[0153] Specifically, the target distribution node is used to determine the target message push group from at least two message push groups according to the content capacity of the notification message to be pushed, and send the message content of the notification message to the target message push group; the target message push group is used to determine the target message push thread group for pushing the message content corresponding to the target message push group, and push the message content when the available resources of the target message push thread group meet the preset conditions.

[0154] In the present application, a database of messages to be pushed is pre-set in the message push system, which is used to store notification messages sent by the upstream system to the message push system, wherein the stored notification messages include message content and multiple message features corresponding to the message content, and the message features are used to describe the specific information of the notification message, such as the message capacity.

[0155] Specifically, the target distribution node reads the notification message from the database of messages to be pushed and sends it to the target message push group, and the target message push group pushes the notification message to the downstream system.

[0156] In some implementations, only one message push group is set in the message push system, or multiple message push groups are set, and each notification message is pushed in parallel in sequence in the message push system. Specifically, in the process of sequentially pushing messages, there may be multiple notification messages pushed continuously, all of which have the first capacity of message content, and it takes the first time to push the notification message of the first capacity. At this time, the notification message to be pushed currently has the second capacity, where the second capacity is five times the first capacity, and it takes five times the first time to push the notification message of the second capacity.

[0157] Since the content of the notification message of the second capacity is too large, the message push group has not received any feedback on the successful push of the notification message after the past three first times. At this time, the message push group does not know that the currently pushed notification message has not been pushed due to excessive capacity, but assumes that the consumer to which the notification message is pushed has experienced a system crash, resulting in the notification message not being pushed.

[0158] In this case, the message push group will stop pushing all notification messages, and reclassify the notification messages that have not been successfully pushed into consumers. In particular, the notification messages that were intended for consumers that are currently mistakenly believed to be down will be reallocated to other consumers, so that all notification messages can be pushed quickly and successfully. The above process of reclassifying message consumers and re-pushing messages will delay the push of the entire system, reduce push efficiency, and result in low real-time push performance.

[0159] In addition, it is possible that the notification message has just been successfully pushed, but the rebalancing mechanism is triggered before feedback is received. At this time, the message push group will believe that the notification message has not been successfully pushed and will push it again, resulting in repeated push of the notification message, reducing the reliability of message push.

[0160] In order to reduce the occurrence of the above situation, at least two message push groups are pre-configured in the message queue of the message push system of the present application, and different message push groups correspond to different content capacities.

[0161] In this way, in this application, the target distribution node is used to determine the corresponding target message push group in the message push system according to the content capacity of the notification message, and the notification message is sent to the target message push group for push processing, thereby realizing the corresponding downstream system in the message push.

[0162] The above distribution of messages to corresponding message groups for push processing can reduce the situation where consumers in the message queue are mistakenly believed to be down when they are still receiving message notifications, thereby improving the reliability of message push.

[0163] In this application, the target message push group includes multiple message push topics, and each message push topic is used to collaboratively and parallelly process notification messages to achieve funny message push.

[0164] It can be explained that in the present application, when the target distribution node sends the notification message to the target message push group, it can send the notification message to any message push topic in the group, or it can determine the corresponding target message push topic according to the message push situation and push it to the topic for processing.

[0165] Specifically, a target message push thread group corresponding to a target message push topic is determined. The target message push thread group includes multiple message push threads. Multiple consumers complete the consumption of notification messages through each consumer push thread, thereby pushing messages to a downstream system.

[0166] It is understandable that one target message push thread group corresponds to one consumer group. The consumer group includes multiple consumers. Multiple consumers can share the available resources of the consumer group and consume multiple notification messages at the same time to improve the message push efficiency.

[0167] Specifically, when receiving the notification message, the target message push topic in the target message push group can predetermine whether the available resources of the corresponding target message push thread group are sufficient. For example, the resource threshold corresponding to the thread group can be predetermined according to the operation status of the thread group, and the available resources can be compared with the resource threshold.

[0168] Optionally, if the available resources are greater than or equal to the resource threshold, it means that the available resources of the target message push thread group are sufficient, that is, the corresponding consumers in the thread group can be used to quickly complete the consumption process of the notification message. In this way, it can avoid the occurrence of consumers who have not completed consumption due to insufficient available resources during the message consumption process being mistakenly regarded as a downtime, thereby improving the reliability of the system.

[0169] Optionally, in the process of comparing the available resources with the resource threshold, if the available resources are less than the resource threshold, it means that the available resources of the target message push thread group are insufficient, that is, using the thread group to consume the notification message at the current moment will lead to reduced consumption efficiency and prolonged consumption time of the notification message. There is a possibility that the corresponding consumer may be mistakenly considered to be in a downtime situation when consuming the notification message, which will reduce system reliability.

[0170] Based on this, in some implementations, when it is determined that the available resources of the target message push thread group do not meet the preset conditions, the message content is stored in other message push topics in the target message push group except the target message push topic.

[0171] Specifically, the notification message is returned to the target message push group to be requeued for consumption, and the message is consumed when the resources in the thread group are sufficient to improve the system push efficiency.

[0172] It should be understood that since the target message push group includes multiple message push topics, if the notification message is returned to the message push topic where the message was pushed in the previous round, it will result in too many messages to be processed in this topic and a decrease in message push messages. Therefore, the notification message can be pushed to other message push topics except the target message push topic, and other relatively idle thread groups can be used to push the message. In this way, the message push processing can be completed quickly and the efficiency of the message push processing can be improved.

[0173] The message push system provided by the present application includes a target distribution node and a message queue; the message queue contains at least two message push groups; the target distribution node is used to determine the target message push group from at least two message push groups according to the content capacity of the notification message to be pushed, and send the message content of the notification message to the target message push group; the target message push group is used to push the message content when the available resources of the target message push thread group corresponding to the target message push group meet the preset conditions. In the above scheme, notification messages with different content capacities are sent to different message push groups for push processing to ensure that the message push queue can avoid being mistakenly regarded as downtime due to a consumer processing large-capacity messages for too long in the process of processing messages, and avoid the triggering of rebalancing; further, in the process of consuming messages in the message queue, when the resources of the message queue are lower than the preset resource threshold, the message consumption begins, otherwise the message consumption is suspended, so that the message queue consumes messages only when there is enough margin, which can avoid the situation that the consumer is mistakenly regarded as downtime due to the long time of not consuming the message when the thread is busy, and further avoid the triggering of rebalancing in the message queue, so as to improve the real-time and reliability of system push.

[0174] Before introducing the detailed process of message push, the target distribution node for sending the notification message may be introduced in detail.

[0175] On the basis of the above implementation, the message push system of the present application also includes a monitoring node. The monitoring node is used to: obtain multiple candidate distribution nodes for sending notification messages, determine the candidate distribution nodes that meet the preset conditions as the target distribution nodes for sending the message content; and determine a new target distribution node from each candidate distribution node when the target distribution node is down.

[0176] Specifically, the message push system pre-sets multiple nodes for sending notification messages, namely candidate distribution nodes. After the message push system is started, each candidate distribution node is started and a temporary directory is created on Zookeeper. At this time, only one candidate distribution node can be created successfully. This candidate distribution node is used as the target distribution node for sending notification messages after the current system is started, and other candidate distribution nodes are used as backup nodes.

[0177] It is understandable that other candidate distribution nodes can also perform other tasks while serving as backup nodes to fully utilize system resources.

[0178] Furthermore, each backup node will actively monitor the temporary directory on Zookeeper. When the process of the target distribution node fails or the node crashes, the temporary directory will be automatically deleted, and the backup node will receive a notification message from Zookeeper. At this time, the backup node will continue to create a temporary directory on Zookeeper. The backup node where the path is successfully created will switch to become the new target distribution node, and other backup nodes and the restored failed node will serve as new backup nodes.

[0179] In order to ensure that the backup node can immediately take over the task role of the failed node after becoming the target distribution node, the candidate distribution node needs to write the necessary information required to send the notification message to the zookeeper persistent directory as real-time as possible when it is successfully determined as the target distribution node.

[0180] However, since Zookeeper has poor real-time writing performance, the necessary information is updated to the local cache each time, and then a dedicated thread is used to asynchronously update it to the persistent directory on Zookeeper to improve the real-time performance of the system.

[0181] Furthermore, ZooKeeper monitoring can solve process and node-level faults, but thread-level faults need to be solved through monitoring threads. For example, by introducing monitoring threads, the status of high- and low-frequency distribution threads and the status of asynchronous update threads that write status information to ZooKeeper can be monitored in real time. When the corresponding thread exits, the monitoring thread will restart it and issue an alarm.

[0182] In this application, multiple backup nodes are set up through the above-mentioned monitoring nodes as standby nodes after the target distribution node fails, so as to solve the "single point risk" that may occur during the message push process and improve the reliability of the system during the message push process.

[0183] Next, the process of the target distribution node determining the target message push group corresponding to the notification message and the process of sending the message content to the target message push group are introduced in detail.

[0184] It should be understood that, before determining the corresponding target message push group, the target distribution node may predetermine the receiving conditions corresponding to each message push group, so as to accurately determine the corresponding queue later.

[0185] In some implementations, the target distribution node determines the number of message groups in the message push group; divides the preset content capacity range according to the number of message groups to obtain multiple message group divided capacity ranges; each message group divided capacity range corresponds to each message push group one by one.

[0186] Specifically, the number of message push groups included in the message push system is obtained; wherein the number of message groups can be obtained based on system demand and load prediction; at the same time, the content capacity range corresponding to the overall content of all message push groups in the current push process can be pre-determined based on the upstream system of the push notification message; further, the content capacity range is divided into multiple sub-ranges, each sub-range corresponding to a message push group. The division criteria can be based on the size, priority or other business logic of the message. For example, large messages and small messages can be assigned to different queues to optimize processing efficiency.

[0187] In this application, each divided capacity range is matched with a specific message push group one by one. This correspondence ensures that each queue processes messages within a specific range, thereby optimizing resource allocation and processing efficiency.

[0188] On this basis, in some implementations, the process of the target distribution node determining the target message push group corresponding to the notification message can specifically include: obtaining the message group division capacity range corresponding to each message push group; determining the target message push group corresponding to the notification message based on the content capacity and the capacity range of each message group division.

[0189] Specifically, when a notification message is to be pushed, the target distribution node will analyze the content capacity of the message. The content capacity is compared with the message group capacity range of each message push group, and the most suitable message push group for the notification message is determined, and used as the target message push group corresponding to the notification message. This matching can be based on capacity adaptation, priority requirements or other business logic to ensure that the message is pushed efficiently.

[0190] For example, assume that there are three message push groups in the system, which handle small, medium, and large messages respectively. The target distribution node analyzes the size of each notification message and distributes small messages to the first queue, medium messages to the second queue, and large messages to the third queue. This message distribution strategy can intelligently distribute messages to the most appropriate queue and try to avoid frequent triggering of the rebalancing mechanism in the queue.

[0191] On the basis of determining the target message push groups corresponding to each notification message, the message content in the notification message is sent to the target message push group through the target distribution node, so that the target message push group pushes the message content to the corresponding downstream system.

[0192] In some implementations, when the target distribution node sends notification messages to the target message push group one after another, there may be a problem that as the number of notification messages received by the system gradually increases, the node sending efficiency decreases.

[0193] In some optional implementations, the target distribution node can sequentially traverse the notification messages stored in the database of messages to be pushed in a paging manner and send them to the message push group. As time goes by, the number of pages to be sent in the database of messages to be pushed will gradually increase, which affects the real-time performance of the notification messages sent to the queue, causing a large delay in pushing the latest stored messages, reducing the real-time performance of the system push messages.

[0194] In view of the above situation, the present application pre-sets the target distribution node to include two message sending methods. Among them, the message sending method is the method adopted by the target distribution node to send the notification message to the target message push group. Specifically, the first message distribution method is used to distribute the notification message stored in the preset database of messages to be pushed within the first historical period from the current moment; the second message distribution method is used to distribute the notification message stored in the preset database of messages to be pushed within the second historical period from the end moment of the first historical period.

[0195] It can be explained that the first historical period can be a relatively short time window for processing the latest messages that may have a higher priority. By giving priority to these messages, the system can ensure that notifications with high timeliness requirements can reach users in a timely manner. The second historical period is usually set with a relatively long time window, so that lower priority or higher delay tolerance messages can be processed to ensure that the system can gradually process these messages as resources permit, avoid message backlogs, and improve the system's message push efficiency.

[0196] In summary, the target distribution node can intelligently select the appropriate distribution method according to the timeliness and priority of the message, which not only improves the efficiency of message sending, but also optimizes the resource utilization of the system.

[0197] It should be noted that, in some other implementations, the target distribution node can set multiple distribution methods according to actual needs, which are used to distribute messages stored in different time windows respectively. This application does not specifically limit the number of distribution methods.

[0198] On the basis that the target distribution node includes multiple distribution modes, the target distribution node can be used to: determine the target distribution mode of the two message sending modes according to the storage time of the notification message; and send the message content to the target message push group using the target distribution mode.

[0199] In the present application, when each notification message is sent and stored in the database of messages to be pushed in the message push system, its storage time can be recorded, and the storage time can be used for the subsequent selection of the distribution method.

[0200] Furthermore, the target distribution node determines the corresponding target distribution method according to the storage time of each notification message, and uses the target distribution method to send the message content to the corresponding target message push group for push processing.

[0201] Optionally, if the storage time of the message is within the first historical period from the current time, the first message distribution method is selected; conversely, if the storage time of the message is within the second historical period from the end time of the first historical period, the second message distribution method is selected.

[0202] In some message push systems, the sending of messages depends not only on their content capacity and storage time, but also on their current message status. In order to ensure the reliability and real-time performance of system push messages, the message push system provided by this application also pre-configures a finite state mechanism, which dynamically controls the sending of notification messages according to the status conditions of the notification messages, so as to quickly and reliably send notification messages to the queue for push processing.

[0203] It should be noted that the reason why the sending of notification messages needs to be controlled in the present application may be that: some notification messages have been sent successfully or failed to be sent, but the notification message still exists in the database of messages to be pushed, and the above status is not displayed, causing the target distribution node to mistakenly believe that the notification message has not been sent and repeatedly send the notification message; and some notification messages have been in the sending status and have not been updated. The push status of these notification messages will affect the reliability and real-time performance of the system during the entire push process.

[0204] In response to the above situation, the technical solution of the present application pre-sets limited types of message status that may be involved in the push process for notification messages, and then decides whether to continue pushing the notification message based on the message status of the notification message and the preset status conditions, so as to ensure that the system can efficiently send the notification message to the corresponding target message push group, avoid missed and repeated sending, and improve the real-time and reliability of the overall system message push.

[0205] In some embodiments, the target distribution node can be used to: send the message content to the target message push group when the current message state of the notification message meets the preset state condition; stop sending the message content when the current message state of the notification message does not meet the preset state condition.

[0206] In the present application, when the target distribution node reads the notification message in the to-be-pushed message database, it continuously monitors the message status of the notification message, so as to determine the subsequent processing method for the notification message according to the message status.

[0207] Furthermore, in the present application, the target distribution node also predefines a set of status conditions for determining whether the message meets the requirements for sending.

[0208] Furthermore, the target distribution node may decide whether to send the message content to the target message push group according to the matching condition between the current message state of the notification message and the preset state condition.

[0209] Specifically, the target distribution node will determine whether the current message status of the notification message meets the preset status conditions; if the conditions are met, the message content of the notification message will be sent to the target message push group; if the conditions are not met, it means that the message status of the notification message indicates that it is not suitable for continued push, then the sending of the message content of the notification message can be stopped.

[0210] Optionally, in the present application, the message statuses that meet the preset status conditions include waiting to be pushed, being pushed, and being pushed again; the message statuses that do not meet the preset status conditions include push completed and expired and not pushed.

[0211] The estimated push time of the expired notification message is less than the current time, and the second time difference between the message and the current time is greater than the second preset time threshold. In other words, the estimated push time of the expired notification message has passed, and the time difference between the message and the current time exceeds the preset threshold (e.g., 24 hours).

[0212] It should also be explained that in this application, "to be pushed" indicates that the notification message is ready and waiting to be pushed; "pushing" indicates that the notification message is being pushed to the target message push group; "pushing again" indicates that the notification message is being pushed again after the last push failed; "pushing ended" indicates that the notification message has been successfully pushed, or that the push has failed.

[0213] It should be understood that after the target distribution node sends the notification message to the message queue, in order to keep the message features stored in the system consistent with the actual data, the notification message can be processed according to the message sending result, such as updating the message status of the notification message, etc., to ensure that the system can accurately track the processing progress of each notification message and perform subsequent operations as needed.

[0214] Optionally, the target distribution node can be used to: determine the message sending result corresponding to the message content; when the message sending result indicates that the message content is successfully sent to the target message push group, generate a message modification instruction for the notification message according to the current message status of the notification message and the current remaining number of pushes; the message modification instruction is used to modify the notification message in the database of messages to be pushed.

[0215] Since the message status of the notification message is stored in the database of messages to be pushed, and the message sent by the target distribution node to the target message push group is the message content of the notification message, when the target distribution node modifies the message status of the notification message according to the successful sending result, a message modification instruction can be generated and sent to the database of messages to be pushed, so as to complete the status modification of the notification message through the database of messages to be pushed.

[0216] Specifically, after sending the message content of the notification message, the target distribution node can send back the message sending result corresponding to the message content through the confirmation mechanism or feedback signal of the target message push group. The message sending result includes that the message content is successfully sent to the target message push group, or that the message content is not successfully sent to the target message push group.

[0217] Optionally, when the sending result indicates that the message content is successfully sent to the target message push group, the target distribution node generates a message modification instruction according to the current state of the notification message and the remaining number of pushes. The message modification instruction is used to update the state of the notification message in the database of messages to be pushed; the target distribution node executes the generated message modification instruction through the database of messages to be pushed, and modifies the corresponding notification message in the database of messages to be pushed.

[0218] Exemplarily, when the target distribution node successfully sends a message content to the target message push group, when the notification message corresponding to the message content is in the current message state of "pushing again", the target distribution node further confirms the current remaining push times of the notification message, for example, the current remaining push times is zero, generates a message modification instruction to update the status of the notification message to "push ended", and executes the instruction in the database of messages to be pushed.

[0219] In order to ensure the push efficiency of the system, the same notification message cannot be pushed unlimited times. Therefore, the message push system of the present application will pre-set the number of push times for each message during the process of pushing each notification message. In this way, it is also possible to avoid the situation where the notification message cannot be successfully pushed in one go due to system operating conditions, network status, etc. Through the above inclusive settings, the reliability of the system push process can be improved.

[0220] However, in order to ensure that the number of pushes stored in the system is consistent with the actual data, the number of pushes can be modified after each push process to determine the remaining number of pushes, and the pushes can be stopped when the remaining number of pushes is zero.

[0221] In some embodiments, the message modification instruction includes a number modification instruction and a status modification instruction; the number modification instruction is used to reduce the current remaining number of push times of the notification message to obtain the target remaining number of push times of the notification message; the status modification instruction is used to update the current message status of the notification message to the corresponding target message status based on the current remaining number of push times.

[0222] In the process of modifying the notification message in the push message database, multiple message characteristics of the notification message, such as the message status and the remaining push times, are modified.

[0223] Specifically, when modifying the number of times, it can be: when the message content of the notification message is successfully sent to the target message push group, the target distribution node executes the number modification instruction; through the number modification instruction, the remaining number of pushes of the notification message is reduced. For example, if the current remaining number of pushes is 3, after the reduction operation is executed, the target remaining number of pushes is 2.

[0224] Specifically, when modifying the status, it can be: when the message content of the notification message is successfully sent to the target message push group, the target distribution node executes the status modification instruction. When the current remaining push times of the notification message are greater than 0, the status modification instruction may keep the message status as "pushing again" for subsequent push attempts; or, when the current remaining push times of the notification message are 0, after successful push, the target status is updated to "push completed", indicating that the push process has been completed.

[0225] In this way, the target distribution node applies the generated number modification instructions and status modification instructions to the database of messages to be pushed, and can accurately update the number of pushes and status of the message after confirming that the message has been successfully sent, thereby improving the accuracy and reliability of the system.

[0226] It should be understood that different current message states and different current remaining push times correspond to different modification instructions, that is, the resulting target message states are different, that is, the modification logic for the message state in this application is determined based on the current message state and the current remaining push times.

[0227] On this basis, the status modification instructions in the present application include a first status modification instruction and a second status modification instruction; the first status modification instruction is used to change the target message status of the notification message to being pushed when the current message status is to be pushed and the target remaining number of pushes is greater than zero; the second status modification instruction is used to change the target message status of the notification message to being pushed again when the current message status is to keep pushing / push again for more than a first preset time threshold and the target remaining number of pushes is greater than zero.

[0228] Specifically, when the current state of the notification message is "pending push" and the target remaining push times are greater than zero, the target distribution node will execute the first state modification instruction to change the target state of the notification message to "pushing", indicating that the message has entered the push process.

[0229] Specifically, when the current status of the notification message is "pushing" or "pushing again", and the duration of this status exceeds the first preset time threshold, and the target remaining push times is greater than zero, the target distribution node will execute the second status modification instruction to change the target status of the notification message to "pushing again" in order to make a re-push attempt.

[0230] In this way, the target distribution node in the present application can dynamically adjust the message processing strategy through precise state modification instructions to ensure that the notification message is effectively pushed under appropriate conditions.

[0231] Next, by describing in detail the target message push group in the message push system, the message content push process is described in detail.

[0232] In the present application, the target message push thread group includes multiple message push threads corresponding to each push object one by one; the push object is an object corresponding to the notification message among multiple objects in the downstream system.

[0233] It should be understood that each message push group is provided with a message push thread group for pushing messages. The message push thread group is composed of multiple independent message push threads. Each message push thread corresponds to a consumer, that is, a push object, to send the notification message to the corresponding push object. It should be noted that the push object is an object corresponding to the notification message among multiple objects in the downstream system. For example, in a transportation platform, the push object can be the industry party and application party corresponding to the notification message in the downstream system.

[0234] Therefore, in the target message push group, the notification message can be pushed to the corresponding push object through the target message push thread corresponding to the push object in the target message push thread group.

[0235] In one implementation, the target message push group is specifically used to: determine a target message push thread for pushing message content according to the push object and the message push thread group, so as to push the message content through the target message push thread.

[0236] Specifically, the target message push thread group includes multiple message push threads. Through the corresponding relationship between the push objects and the message push threads, the target message push thread corresponding to the notification message can be determined from the multiple message push threads.

[0237] Exemplarily, the push object corresponding to the notification message can be identified through the message push thread, for example, the user ID or the device ID; and the message push thread corresponding to the push object is searched in the target message push thread group. If thread A is responsible for the object, thread A is selected as the target message push thread, and thread A is responsible for pushing the message content to the corresponding push object (for example, the user device).

[0238] In the process of pushing the message content, in order to avoid the message content being pushed repeatedly, the target message push group of the present application is also pre-set with a mutual exclusion lock mechanism, which is used to avoid repeated push of the message content and ensure the reliability of the message push. Moreover, based on the mutual exclusion lock mechanism, the target message push group of the present application also checks the message status corresponding to the notification message before sending the message content, so as to avoid pushing the message of stopping the push message to the downstream system, and further ensure the reliability of the message push.

[0239] In one embodiment, the target message push group is specifically used to: add a mutex lock to the message content; when the mutex lock is successfully added, obtain the target message status corresponding to the message content; when it is determined that the target message status meets the preset status condition, push the message content; when the mutex lock is not successfully added, or the target message status of the notification message does not meet the preset status condition, stop pushing the message content.

[0240] Specifically, when the target message push thread wants to push the message content of the notification message, it first tries to add a mutex lock for the message content, and ensures that the message content will not be pushed repeatedly through the mutex lock. Optionally, if the mutex lock is added successfully, it means that the current thread, that is, the target message push thread, has obtained the permission to process the message content, and can further obtain the target message status corresponding to the message content, that is, the message status after being successfully sent to the current target message push group; if the target message status also meets the previously preset status conditions, it means that the target message push thread can execute the message push processing and send the message content to the corresponding downstream system.

[0241] Optionally, if the target message status does not meet the previously preset status condition, it means that the message content has been pushed, or the number of push failures exceeds the preset time, and the message content is stopped from being pushed.

[0242] Optionally, if the mutex lock is not added successfully, it means that the message content is being or has been processed by other threads. To ensure the reliability of system push, the target message push thread can stop pushing the message content.

[0243] It should be understood that after the target message push thread pushes the message content, since different notification messages correspond to different current message states, even if the same push result is obtained, the message states corresponding to the notification messages after push are different.

[0244] Based on this, in this application, the message status of the notification message in the message database to be pushed can be updated again according to the current push result of the message content and the current message status of the corresponding notification message, so that the message push system can determine whether to continue pushing the corresponding notification message.

[0245] In some embodiments, the target message push group can be used to: obtain the current push result of the message content; the current push result includes the message content being successfully pushed to the push object, and the message content being not successfully pushed to the push object; determine the current message status of the notification message based on the current push result and the current remaining number of pushes; the current message status includes push completion and pending push; push completion includes push success and push failure; push failure includes pushing in progress and pushing again.

[0246] Specifically, after pushing the message content, the system can obtain the result of the push, wherein the push result can be success (the message has been delivered to the push object) or failure (the message has not been delivered).

[0247] Further, according to the current push result and the current remaining push times, it is determined whether to continue to push the message content of the notification message again.

[0248] For example, if it is determined based on the current push result and the remaining push times that the notification message can be pushed again, the message status of the notification message is modified to pending push, and the next message push is arranged through the target distribution node; conversely, if it is determined based on the current push result and the remaining push times that the push is completed, the push is stopped and the message status of the notification message is changed.

[0249] In some optional embodiments, the target message push group can be used to: determine that the current message status of the notification message is a successful push when the current push result indicates that the message content is successfully pushed to the push object; determine that the current message status of the notification message is a push failure when the current push result indicates that the message content is not successfully pushed to the push object, and the current remaining number of pushes is zero; determine that the current message status of the notification message is to be pushed when the current push result indicates that the message content is not successfully pushed to the push object, and the current remaining number of pushes is greater than zero.

[0250] Optionally, if the push is successful, or if the number of remaining pushes is zero and the push is unsuccessful, the status is Push Completed.

[0251] Optionally, if the push is unsuccessful and there are still remaining push times, the status is pending push, and you can arrange to wait for the next push processing.

[0252] On the basis of the above implementation mode, when the notification message is pushed, the message push result of the notification message can also be recorded to feed back to the upstream system so that the upstream system can know the message status.

[0253] In the present application, the message push system further includes at least one feedback message queue; the target message push group is specifically used to: generate a push feedback message of the notification message when the push result indicates that the current push state is the end of the push;

[0254] Feedback message queue, used to feed back push feedback messages to the upstream system of the message push system.

[0255] Specifically, when the push result indicates that the current push status is push completion (whether push success or push failure), the target message push thread generates a push feedback message, wherein the push feedback message includes the push result (success or failure) and related metadata (such as message ID, timestamp, etc.).

[0256] Furthermore, the generated push feedback message is placed in a feedback message queue, and the push feedback message corresponding to the notification message of the end of pushing is delivered to the upstream system through the feedback message queue, so that the upstream system can know the push result of the notification message and perform corresponding processing, such as recording logs, updating database status, triggering subsequent business processes, or notifying users.

[0257] In this application, by setting up a mechanism for feeding back the push results, a complete message processing closed loop is formed, thereby improving the reliability of the system.

[0258] In some implementations, the target message push group may be used to: when a message feature indicates that a notification message requires feedback, encapsulate the result feedback message and generate a push feedback message corresponding to the notification message.

[0259] Specifically, according to business needs, some upstream systems need to know the push feedback information of the notification message in order to trigger subsequent business processes. However, there are also some upstream systems that do not need to know the push feedback information of the notification message. Therefore, in order to reduce the system burden, in this application, the upstream system can indicate in the message features whether it needs to know the push feedback information of the notification message when generating the notification message. If it is indicated that it needs to know the push feedback information of the notification message, after the push is completed, a push feedback message is generated through the target message push group and fed back to the upstream system through the feedback message queue.

[0260] In this way, by identifying the message characteristics, the target message push group allows the system to flexibly decide which messages require feedback, thereby optimizing resource usage.

[0261] Figure 3 A flow chart corresponding to the message push process of the message push system provided in the embodiment of the present application.

[0262] See also Figure 3 A message push process provided in an embodiment of the present application may specifically include:

[0263] First of all, the entire message push process is divided into four major steps: message reception, message distribution, message push, and message feedback.

[0264] Specifically, the entire message push process is initiated by the upstream system API of the message push system. The upstream system encapsulates the message content and message characteristics to be pushed (such as message ID, message capacity (large message / small message), sending address, number of retransmissions, sending time interval, notification of downstream service timeout, whether it is a large message, Kafka message topic, whether it is necessary to receive message push feedback information, callback information, etc.), and sends it to the message push system using upmesh.

[0265] The message push system receives the message message, parses the message to obtain the notification message containing the above content, and stores the notification message in the pre-generated database of messages to be pushed. Specifically, during the storage process, the message status of the notification message is also set to be pushed; optionally, if the storage is successful, a message write success response is returned; if it fails, a message write failure response is returned.

[0266] The message sending process includes the first distribution mode (high-frequency message distribution) and the second distribution mode (low-frequency message distribution). Among them, the high-frequency message distribution uses a sliding window based on the message sending time to perform paging filtering queries, and only retrieves notification messages in a small granularity time slice range (for example, 2 minutes) that are in a waiting-to-send state each time; the low-frequency message distribution is within a relatively large time slice range (for example, 20 minutes), and the status is in a waiting-to-send state and the sending time exceeds the high-frequency message distribution time slice range, and also sends and is in the sending and resending state. The message sending time exceeds the specified threshold (default 1h).

[0267] During the distribution process, when the sending is successful, the notification message in the database of messages to be pushed is also updated according to the current message status and the remaining number of the notification message.

[0268] For example, update the status of a notification message that is waiting to be sent to being sent, and increase the number of times it has been sent by 1;

[0269] Update the notification message whose status is "sending" or "resending", whose message sending time exceeds the specified threshold, and whose number of sent times has not reached the number of sent times, to "resending", and increase the number of sent times by 1;

[0270] Update the notification message whose status is sending or resending, whose message sending time exceeds the specified threshold, but whose number of times of sending has reached the sending number, to sending failure;

[0271] Update the notification message whose status is "Sending" but whose sending time has expired from the current time to "Expired".

[0272] Prior to this, when the notification message is sent to the message push group for push processing, the notification message is also sent to the corresponding Kafka message group according to the content capacity of the notification message; for example, for a large message, it is sent to the first Kafka message group; for a small message, it is sent to the second Kafka message group in the Kafka message group;

[0273] Optionally, any Kafka message group includes at least two topics. For example, the first Kafka message group includes topic1 and topic2.

[0274] Optionally, if a large message is successfully sent to topic1 (or topic2) in the first Kafka message group, the message table information is updated; if the sending fails, the message table information is not updated and the system waits for the next round of distribution.

[0275] In the process of consuming message content in the Kafka message queue, first check whether the thread usage rate of the task execution thread pool corresponding to the queue has reached the specified threshold (for example, 70%). If it has not reached the specified threshold, directly submit the notification message to the task thread pool to execute the subsequent push process; if it has reached the specified threshold, first sleep for a specified time (default 1 second, configurable), and then resubmit it to another topic, that is, topic2 (or topic1) in the first Kafka message group.

[0276] Furthermore, in the task thread pool, in order to solve the problem of repeatedly pushing messages to the downstream system, a distributed lock will be added to the message ID first (currently based on redis, with a validity period of the current message notification downstream service timeout + 10 seconds). If the lock fails, the current message will be intercepted. If the message has not been processed (sending or resending), it will wait for subsequent distribution by the distribution module; if the lock is successful, the current notification message will be queried, and notification messages with a status of pending, completed (successful, failed) or expired will be actively intercepted. Only messages with a status of sending or resending will be pushed to the downstream system. After receiving a response from the downstream system or a sending timeout, if the sending is successful, the notification message status of the message table will be updated to successful launch; if the sending fails or the sending timeout is exceeded, it will be determined whether the number of sending times has reached the total number of sending times. If the total number of sending times has not been reached, the status will be updated to pending, and the next sending time will be calculated based on the sending time interval, waiting for subsequent distribution; if the total number of sending times has been reached, the status will be updated to sending failure or sending timeout. For the message sender who needs to receive the message push result notification, the final result is encapsulated as a reply message and sent to the reply topic (named response_msg) of the Kafka message queue and then enters the subsequent message feedback process; for the message sender who does not need to receive the message push result notification, the entire message push process ends.

[0277] In the message feedback process, after consuming the message record of the response topic (named response_msg) in Kafka, the notification address of the push feedback message is obtained according to the query result of the notification message, and the push feedback information is pushed to the upstream system.

[0278] Figure 4 Schematic diagram of the push method provided for this application Figure 1 The method is applied to the target distribution node in the message push system described in the above embodiment, such as Figure 4 As shown, the method includes:

[0279] S401. Receive a notification message to be pushed sent by a database of messages to be pushed; the notification message includes message content and content capacity.

[0280] S402: Determine a target message push group from at least two message push groups according to content capacity, and send the message content to the target message push group.

[0281] The message push method provided in the present application sends notification messages to different message push groups for push processing according to content capacity, so as to ensure that the message queue can avoid being mistakenly considered as a downtime due to a consumer taking too long to process large-capacity messages during the message processing process, avoid the triggering of rebalancing, and improve the reliability and real-time performance of the system push.

[0282] In a possible implementation manner, the method specifically includes:

[0283] Obtain the message group division capacity range corresponding to each message push group;

[0284] According to the content capacity and the capacity range of each message group, the target message push group corresponding to the notification message is determined.

[0285] In a possible implementation manner, the method specifically includes:

[0286] Determine the number of message groups for the message push group;

[0287] The preset content capacity range is divided according to the number of message groups to obtain a plurality of message group divided capacity ranges; each message group divided capacity range corresponds to each message push group one by one.

[0288] In a possible implementation, the method specifically includes: the target distribution node includes two message sending modes; the first message distribution mode is used to distribute notification messages stored in a preset database of messages to be pushed within a first historical period from the current moment;

[0289] The second message distribution method is used to distribute the notification messages stored in the preset to-be-pushed message database within the second historical period starting from the end time of the first historical period;

[0290] Determine the target distribution method in the two message sending methods according to the storage time of the notification message;

[0291] Use target distribution to send message content to the target message push group.

[0292] In a possible implementation manner, the method specifically includes:

[0293] When the current message status of the notification message meets the preset status condition, the message content is sent to the target message push group;

[0294] When the current message status of the notification message does not meet the preset status condition, the sending of the message content is stopped.

[0295] In a possible implementation, the method specifically includes: the message status that meets the preset status condition includes waiting to be pushed, being pushed, and being pushed again;

[0296] The message status that does not meet the preset status conditions includes push completion and expired and not pushed; among them,

[0297] The estimated push time of the expired representation notification message is less than the current time, and a second time difference between the estimated push time and the current time is greater than a second preset time threshold.

[0298] In a possible implementation manner, the method specifically includes:

[0299] Determine the message sending result corresponding to the message content;

[0300] When the message sending result indicates that the message content is successfully sent to the target message push group, a message modification instruction for the notification message is generated according to the current message status of the notification message and the current remaining number of pushes; the message modification instruction is used to modify the notification message in the database of messages to be pushed.

[0301] In a possible implementation manner, the method specifically includes:

[0302] Message modification instructions include number modification instructions and status modification instructions;

[0303] The number modification instruction is used to reduce the current remaining number of pushes of the notification message to obtain the target remaining number of pushes of the notification message;

[0304] The status modification instruction is used to update the current message status of the notification message to the corresponding target message status according to the current remaining number of pushes.

[0305] The message push method provided in this embodiment is applied to the message push system provided in the above system embodiment. Its implementation principle and technical effects are similar, and are not described in detail in this embodiment.

[0306] Figure 5 Schematic diagram of the push method provided for this application Figure 2 The method is applied to the target message push group in the message push system described in the above implementation mode, such as Figure 5 As shown, the method includes:

[0307] S501: When the available resources of the target message push thread group corresponding to the target message push group meet preset conditions, push processing is performed on the message content.

[0308] The message push method provided by the present application starts consuming messages when the resources of the message queue are lower than a preset resource threshold during the process of consuming messages in the message queue, and pauses consuming messages otherwise. In this way, message consumption is performed only when the message queue has sufficient surplus, which can avoid the situation where the consumer is mistakenly believed to have crashed because the message has not been consumed for a long time when the thread is busy, further avoids the triggering of rebalancing in the message queue, and improves the reliability and real-time performance of the system push.

[0309] In a possible implementation manner, the method specifically includes:

[0310] When it is determined that the available resources of the target message push thread group do not meet the preset conditions, the target message push topic corresponding to the message content in the message push group is determined, and the message content is stored in other message push topics in the target message push group except the target message push topic.

[0311] In a possible implementation manner, the method specifically includes:

[0312] The target message push thread group includes multiple message push threads corresponding to each push object one by one; the push object is an object corresponding to the notification message among multiple objects in the downstream system;

[0313] According to the push object and the target message push thread group, a target message push thread for pushing the message content is determined, so that the message content is pushed through the target message push thread.

[0314] In a possible implementation manner, the method specifically includes:

[0315] Add a mutex to the message content;

[0316] When the mutex is added successfully, the target message status corresponding to the message content is obtained;

[0317] When it is determined that the target message status meets the preset status condition, the message content is pushed;

[0318] If the mutex is not added successfully, or the target message status of the notification message does not meet the preset status condition, the message content is stopped from being pushed.

[0319] In a possible implementation manner, the method specifically includes:

[0320] Get the current push result of the message content; the current push result includes the message content successfully pushed to the push object, and the message content not successfully pushed to the push object;

[0321] The current message status of the notification message is determined based on the current push result and the current remaining push times; the current message status includes push completion and pending push; push completion includes push success and push failure; push failure includes pushing in progress and pushing again.

[0322] In a possible implementation manner, the method specifically includes:

[0323] When the current push result indicates that the message content is successfully pushed to the push object, determining that the current message status of the notification message is successfully pushed;

[0324] When the current push result indicates that the message content has not been successfully pushed to the push object, and the current remaining push times are zero, determining that the current message status of the notification message is a push failure;

[0325] When the current push result indicates that the message content is not successfully pushed to the push object, and the current remaining push times are greater than zero, it is determined that the current message state of the notification message is to be pushed.

[0326] In a possible implementation manner, the method specifically includes:

[0327] When the push result indicates that the current push status is that the push is completed, a push feedback message of the notification message is generated;

[0328] The push feedback message is fed back to the upstream system of the message push system through the feedback message queue preset in the message push system.

[0329] In a possible implementation manner, the method specifically includes:

[0330] When the message characteristics indicate that the notification message requires feedback, the result feedback message is encapsulated to generate a push feedback message corresponding to the notification message.

[0331] The message push method provided in this embodiment is applied to the message push system provided in the above system embodiment. Its implementation principle and technical effects are similar, and are not described in detail in this embodiment.

[0332] Figure 6 Schematic diagram of the server structure provided for this application Figure 1 .like Figure 6 As shown, the server 60 provided in this embodiment includes: at least one processor 601 and a memory 602. Optionally, the server 60 also includes a communication component 603. The processor 601, the memory 602 and the communication component 603 are connected via a bus 604.

[0333] In a specific implementation process, at least one processor 601 executes the computer execution instructions stored in the memory 602, so that at least one processor 601 executes the above method.

[0334] The specific implementation process of the processor 601 can be found in the above method embodiment, and its implementation principle and technical effect are similar, so this embodiment will not be repeated here.

[0335] In the above embodiments, it should be understood that the processor may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), etc. A general-purpose processor may be a microprocessor or any conventional processor. The steps of the method disclosed in the invention may be directly implemented as being executed by a hardware processor, or may be executed by a combination of hardware and software modules in the processor.

[0336] The memory may include a high-speed memory (Random Access Memory, RAM), and may also include a non-volatile memory (Non-volatile Memory, NVM), such as at least one disk storage.

[0337] The bus may be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus, etc. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, the bus in the drawings of the present application is not limited to only one bus or one type of bus.

[0338] The present application also provides a computer program product, including a computer program, which implements the above method when executed by a processor.

[0339] The present application also provides a computer-readable storage medium, in which computer-executable instructions are stored. When a processor executes the computer-executable instructions, the above method is implemented.

[0340] The above-mentioned readable storage medium can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic disk or optical disk. The readable storage medium can be any available medium that can be accessed by a general or special-purpose computer.

[0341] An exemplary readable storage medium is coupled to a processor so that the processor can read information from the readable storage medium and write information to the readable storage medium. Of course, the readable storage medium can also be a component of the processor. The processor and the readable storage medium can be located in an application specific integrated circuit (Application Specific Integrated Circuits, referred to as: ASIC). Of course, the processor and the readable storage medium can also exist in the device as discrete components.

[0342] The division of units is only a logical function division, and there may be other divisions in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interface, device or unit, which can be electrical, mechanical or other forms.

[0343] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0344] In addition, each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.

[0345] If the function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present invention, or the part that contributes to the prior art, or the part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium, including several instructions for a computer device (which can be a personal computer, server, or network device, etc.) to perform all or part of the steps of the methods of each embodiment of the present invention. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), disk or optical disk, etc. Various media that can store program codes.

[0346] Those skilled in the art can understand that all or part of the steps of implementing the above-mentioned method embodiments can be completed by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When the program is executed, the steps of the above-mentioned method embodiments are executed; and the aforementioned storage medium includes: ROM, RAM, disk or optical disk and other media that can store program codes.

[0347] Finally, it should be noted that those skilled in the art will readily conceive of other embodiments of the present invention after considering the specification and practicing the invention disclosed herein. The present invention is intended to cover any variations, uses or adaptations of the present invention, which follow the general principles of the present invention and include common knowledge or customary technical means in the art not disclosed by the present invention, are not limited to the precise structure described above and shown in the drawings, and may be modified and changed in various ways without departing from the scope thereof. The scope of the present invention is limited only by the appended claims.

Claims

1. A message push system, characterized in that: The message push system includes a target distribution node and a message queue, and the message queue includes at least two message push groups; The target distribution node is used to determine a target message push group from the at least two message push groups according to the content capacity of the notification message to be pushed, and send the message content of the notification message to the target message push group; The target message push group is used to push the message content when the available resources of the target message push thread group in the target message push group meet the preset conditions.

2. The system according to claim 1, characterized in that The target distribution node is specifically used for: Obtain the message group division capacity range corresponding to each of the message push groups; The target message push group corresponding to the notification message is determined according to the content capacity and the capacity ranges divided into a plurality of preset message groups.

3. The system according to claim 2, characterized in that The target distribution node is further used for: Determine the number of message groups of the message push group; The preset content capacity range is divided according to the number of message groups to obtain a plurality of message group divided capacity ranges; each of the message group divided capacity ranges corresponds to each of the message push groups one by one.

4. The system according to any one of claims 1 to 3, characterized in that: The target distribution node includes two message sending modes; the first message distribution mode is used to distribute notification messages stored in a preset database of messages to be pushed within a first historical period from the current moment; The second message distribution method is used to distribute the notification messages stored in the preset to-be-pushed message database within the second historical period starting from the end time of the first historical period; The target distribution node is specifically used for: Determining a target distribution mode of the two message sending modes according to the storage time of the notification message; The target distribution method is adopted to send the message content to the target message push group.

5. The system according to any one of claims 1 to 3, characterized in that: The message push system also includes: a monitoring node; The monitoring node is used to: Acquire multiple candidate distribution nodes for sending notification messages, and determine the candidate distribution nodes that meet preset conditions as target distribution nodes for sending the message content; When the target distribution node is down, a new target distribution node is determined from among the candidate distribution nodes.

6. The system according to claim 1, characterized in that The target distribution node is specifically used for: When the current message state of the notification message meets the preset state condition, sending the message content to the target message push group; When the current message state of the notification message does not meet the preset state condition, stop sending the message content.

7. The system according to claim 6, characterized in that The message statuses satisfying the preset status conditions include waiting to be pushed, being pushed, and being pushed again; The message status that does not meet the preset status conditions includes push completion and expired non-push; wherein, the expired non-push indicates that the expected push time of the notification message is less than the current time, and the second time difference between the expected push time and the current time is greater than the second preset time threshold.

8. The system according to claim 6, characterized in that The target distribution node is specifically used for: Determine a message sending result corresponding to the message content; When the message sending result indicates that the message content is successfully sent to the target message push group, a message modification instruction of the notification message is generated according to the current message status of the notification message and the current remaining number of pushes; the message modification instruction is used to modify the notification message in a preset database of messages to be pushed.

9. The system according to claim 8, characterized in that The message modification instruction includes a number modification instruction and a status modification instruction; The number modification instruction is used to reduce the current remaining number of pushes of the notification message to obtain the target remaining number of pushes of the notification message; The state modification instruction is used to update the current message state of the notification message to the corresponding target message state according to the current remaining number of pushes.

10. The system according to claim 9, characterized in that The state modification instruction includes a first state modification instruction and a second state modification instruction; The first status modification instruction is used to change the target message status of the notification message to being pushed when the current message status is to be pushed and the target remaining push times are greater than zero; The second status modification instruction is used to change the target message status of the notification message to being pushed again when the current message status is kept being pushed / pushed again for more than a first preset time threshold and the target remaining push times are greater than zero.

11. The system according to claim 1, characterized in that The message push group includes at least two message push topics; The target message push group is also used for: When it is determined that the available resources of the target message push thread group do not meet the preset conditions, the target message push topic corresponding to the message content in the message push group is determined, and the message content is stored in other message push topics in the target message push group except the target message push topic.

12. The system according to claim 1, characterized in that The target message push thread group includes a plurality of message push threads corresponding to each push object one by one; the push object is an object corresponding to the notification message among a plurality of objects in the downstream system; The target message push group is specifically used for: According to the push object and the target message push thread group, a target message push thread for pushing the message content is determined, so as to push the message content through the target message push thread.

13. The system according to claim 1, characterized in that The target message push group is specifically used for: Adding a mutex lock to the message content; When the mutex is added successfully, obtaining the target message status corresponding to the message content; When it is determined that the target message state meets the preset state condition, push processing is performed on the message content; If the mutex is not added successfully, or the target message state of the notification message does not meet a preset state condition, the message content is stopped from being pushed.

14. The system according to claim 7, characterized in that The target message push group is specifically used for: Obtaining the current push result of the message content; the current push result includes whether the message content is successfully pushed to the corresponding push object, and whether the message content is not successfully pushed to the push object; The current message status of the notification message is determined based on the current remaining number of pushes for the message content and the current push result; the current message status includes push completion and pending push; the push completion includes push success and push failure; the push failure includes pushing in progress and pushing again.

15. The system according to claim 14, characterized in that The target message push group is specifically used for: When the current push result indicates that the message content is successfully pushed to the push object, determining that the current message status of the notification message is successfully pushed; When the current push result indicates that the message content has not been successfully pushed to the push object, and the current remaining number of pushes is zero, determining that the current message state of the notification message is a push failure; When the current push result indicates that the message content is not successfully pushed to the push object, and the current remaining number of pushes is greater than zero, it is determined that the current message state of the notification message is to be pushed.

16. The system according to claim 15, characterized in that The message push system also includes at least one feedback message queue; The target message push group is specifically used for: When the current push result indicates that the current push status is that the push is completed, generating a push feedback message of the notification message; The feedback message queue is used to feed back the push feedback message to the upstream system of the message push system.

17. The system according to claim 16, characterized in that The target message push group is specifically used for: In the case where the message feature indicates that the notification message requires feedback, the result feedback message is encapsulated to generate a push feedback message corresponding to the notification message.

18. A message push method, characterized in that: A target distribution node in a message push system according to any one of claims 1 to 17; the method comprising: Receiving a notification message to be pushed sent by a message database to be pushed; the notification message includes message content and content capacity; According to the content capacity, a target message push group is determined from the at least two message push groups, and the message content is sent to the target message push group.

19. A message push method, characterized in that: A target message push group in a message push system according to any one of claims 1 to 17; the method comprising: When the available resources of the target message push thread group in the target message push group meet the preset conditions, the message content is pushed.

20. A server, characterized in that: include: Memory, processor; The memory stores computer-executable instructions; The processor executes the computer-executable instructions stored in the memory, so that the processor performs the method according to claim 18 or 19.

21. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer-executable instructions, which are used to implement the method according to claim 18 or 19 when executed by a processor.

22. A computer program product, comprising a computer program, which implements the method of claim 18 or 19 when executed by a processor.