WO2021073405A1 - 数据分发方法、电子设备及存储介质 - Google Patents

数据分发方法、电子设备及存储介质 Download PDF

Info

Publication number
WO2021073405A1
WO2021073405A1 PCT/CN2020/118122 CN2020118122W WO2021073405A1 WO 2021073405 A1 WO2021073405 A1 WO 2021073405A1 CN 2020118122 W CN2020118122 W CN 2020118122W WO 2021073405 A1 WO2021073405 A1 WO 2021073405A1
Authority
WO
WIPO (PCT)
Prior art keywords
subscription
server
subscriber
target
message
Prior art date
Application number
PCT/CN2020/118122
Other languages
English (en)
French (fr)
Inventor
胡伟松
Original Assignee
北京达佳互联信息技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京达佳互联信息技术有限公司 filed Critical 北京达佳互联信息技术有限公司
Priority to EP20875899.5A priority Critical patent/EP3998754B1/en
Publication of WO2021073405A1 publication Critical patent/WO2021073405A1/zh
Priority to US17/668,730 priority patent/US20220166842A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1859Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Definitions

  • the present disclosure relates to the field of data distribution technology, and in particular to a data distribution method, electronic equipment, and storage medium.
  • the distributed message queue system is composed of multiple servers, and the multiple servers distribute and store the messages in the multiple message queues, and the multiple servers perform distributed storage and real-time distribution of the messages in the multiple message queues.
  • the message data published by the server that publishes the message (hereinafter referred to as the production server) is uniformly stored in the distributed message queuing system, and multiple servers requesting to subscribe to the message (hereinafter referred to as the subscriber server) need to be downloaded from the distributed message queuing system.
  • the message queue subscribes to messages.
  • the distributed message queue system needs to communicate with multiple subscriber servers at the same time, resulting in a high network communication load and consuming a lot of machine resources.
  • the present disclosure provides a data distribution method, electronic equipment and storage medium.
  • the technical solutions of the present disclosure are as follows:
  • a data distribution method which is applied to a data distribution system, the data distribution system includes a storage server and a subscription server set, and the method is executed on the storage server and includes:
  • a first subscriber and a target subscriber are determined in the set of subscribers; wherein, the target subscriber has subscribed to and stored a target message, and the target message is required by the first subscriber Subscribed news;
  • a data distribution method which is applied to a data distribution system, the data distribution system includes a storage server and a subscription server set, and the method is executed on the subscription server and includes:
  • the notification message is used to instruct the subscription server to subscribe to a message from a target subscription server;
  • the target subscription server is that the storage server determines the sorting result of the subscribers in the subscription server set according to the subscription timestamp of each subscription server, and according to the sorting result, from the subscription server set After the subscription server is determined, it is determined by the subscription server; the subscription timestamp is used to indicate the subscription progress of each subscription server; the target subscription server has subscribed and stored target messages, and the target messages are all The message that the subscriber needs to subscribe to;
  • a data distribution device which is applied to a data distribution system, the data distribution system includes a storage server and a subscription server set, and the device is set on the storage server and includes:
  • An obtaining module configured to obtain the subscription timestamp of each subscriber in the set of subscription servers, the subscription timestamp being used to indicate the subscription progress of each subscriber;
  • the determining module is configured to determine the sorting result of the subscribers in the subscription server set according to the subscription timestamp of each subscriber; according to the sorting result, determine the first subscriber in the subscription server set And a target subscriber; wherein the target subscriber has subscribed and stored a target message, and the target message is a message that the first subscriber needs to subscribe to;
  • the notification module is configured to send a notification message to the first subscription server, where the notification message is used to instruct the first subscription server to subscribe to the target message from the target subscription server.
  • a data distribution device which is applied to a data distribution system, the data distribution system includes a storage server and a subscription server set, and the device is set on the subscription server and includes:
  • a receiving module configured to receive a notification message sent by the storage server; the notification message is used to instruct the subscription server to subscribe to a message from a target subscription server;
  • the target subscription server is that the storage server determines the sorting result of the subscribers in the subscription server set according to the subscription timestamp of each subscription server, and according to the sorting result, from the subscription server set After the subscription server is determined, it is determined by the subscription server; the subscription timestamp is used to indicate the subscription progress of each subscription server; the target subscription server has subscribed and stored target messages, and the target messages are all The message that the subscriber needs to subscribe to;
  • the subscription module is configured to subscribe to the target message from the target subscription server according to the notification message.
  • a data distribution system including: a storage server and a subscription server;
  • the storage server is configured to obtain the subscription timestamp of each subscription server in the set of subscription servers, where the subscription timestamp is used to indicate the subscription progress of each subscription server;
  • the storage server is further configured to determine the sorting result of the subscribers in the subscription server set according to the subscription timestamp of each subscriber; and determine the first subscription in the subscription server set according to the sorting result A server and a target subscriber; wherein the target subscriber has subscribed to and stored a target message, and the target message is a message that the first subscriber needs to subscribe to;
  • the storage server is further configured to send a notification message to the first subscription server
  • the first subscription server is configured to, after receiving the notification message, subscribe to the target message from the target subscription server according to the notification message.
  • an electronic device including:
  • a memory for storing executable instructions of the processor
  • the processor is configured to execute the instructions to implement the data distribution method provided in the foregoing embodiment of the present disclosure.
  • a storage medium is provided.
  • the electronic device can execute the data distribution method provided in the above-mentioned embodiment of the present disclosure.
  • the data distribution method, electronic device, and storage medium provided by the embodiments of the present disclosure realize that a certain subscription server can subscribe to messages from other subscription servers, which reduces the number of subscription servers that access the storage server at the same time, and further reduces the access at the same time.
  • the number of subscribers of the distributed message queuing system effectively disperses the subscription pressure of multiple subscribers to the distributed message queuing system, greatly reduces the network communication load of the distributed message queuing system, and reduces the consumption of machine resources.
  • Fig. 1 is a structural diagram of a distributed message queuing system according to an embodiment of the present disclosure
  • Fig. 2 is a flowchart showing a data distribution method according to an embodiment of the present disclosure
  • Fig. 3 is a flowchart showing another data distribution method according to an embodiment of the present disclosure.
  • Fig. 4 is a structural diagram of another distributed message queuing system according to an embodiment of the present disclosure.
  • Fig. 5 is a structural diagram of another distributed message queuing system according to an embodiment of the present disclosure.
  • Fig. 6 is a block diagram showing a data distribution device according to an embodiment of the present disclosure.
  • Fig. 7 is a block diagram showing another data distribution device according to an embodiment of the present disclosure.
  • Fig. 8 is a block diagram showing an electronic device according to an embodiment of the present disclosure.
  • Fig. 9 is a block diagram showing another electronic device according to an embodiment of the present disclosure.
  • the user information involved in this disclosure is information authorized by the user or fully authorized by all parties.
  • the meaning of A and/or B includes: A and B, A and B.
  • an application scenario of the data distribution method in the embodiments of the present disclosure is introduced by an example.
  • FIG. 1 is a structural diagram of a distributed message queuing system according to an embodiment of the present disclosure.
  • the distributed message queuing system includes a storage server 1 and a storage server 2, and a subscription server 1. , Subscriber 2, Subscriber 3, Subscriber 4 and production server.
  • the production server publishes the produced message to the storage server according to the storage server configured in the local configuration file, and publishes the message queue identifier configured in the local configuration file to the storage server, and the storage server According to the identifier of the message queue, the message published by the production server is stored in the corresponding message queue.
  • the production server simultaneously generates the time point corresponding to the message (that is, the time point of the message), that is, each message generated by the production server includes the time point corresponding to the message.
  • the production server After the production server generates the message, it sends each generated message to the storage server, and the storage server sequentially stores the messages according to the sequence of the time points corresponding to each message.
  • the message with the earliest time point (that is, the smallest time point) is ranked at the top of the message queue.
  • the time point includes time units such as year, month, day, hour, minute, second, millisecond, etc.
  • the embodiment of the present disclosure does not limit the time unit of the time point.
  • the number of storage servers, subscription servers, and production servers is set according to requirements, which is not limited in the embodiment of the present disclosure.
  • each subscriber server subscribes to the messages in the corresponding message queue from the storage server according to the identifiers of the storage server and the message queue configured in the local configuration file, and consumes the subscribed messages (consuming the message means using the message).
  • the message is the data.
  • the production server obtains user data from the terminal, processes the obtained user data, generates a log (a type of message), and sends the log to the storage server for storage.
  • the server is a server that stores logs, and the subscriber subscribes to the logs from the storage server, and uses the subscribed logs to train the model to obtain the training model.
  • the storage server configured in the local configuration file of the production server includes: storage server 1 and storage server 2, the identifier of the message queue corresponding to storage server 1 and storage server 2 is message queue 1, and the production server sends storage server 1 to storage server 1.
  • the production server generates 1 to 30 messages, the first message corresponds to the time point 001, the second message corresponds to the time point 002, the third message corresponds to the time point 003, and so on.
  • the time points corresponding to 1 to 30 messages are 001 to 030, respectively.
  • the production server randomly sends 30 messages from 001 to 030 to the storage server 1 or the storage server 2.
  • the storage server 1 uses the time point corresponding to each message according to the time point. In the time sequence from 001 to 030, the received messages are stored in the message queue 1 of the storage server 1 in order.
  • the production server After the production server generates 30 messages from 031 to 060, it randomly sends 30 messages from 031 to 060 to the storage server 1 or the storage server 2. Taking the sending of 30 messages from 031 to 060 to the storage server 2 as an example, the storage server 2 stores the 30 messages from 031 to 060 in the message queue 1 of the storage server 2.
  • the storage server 1 and the storage server 2 store messages in the message queue 2 in the same process as the message queue 1, and will not be repeated here.
  • the message queues configured in the local configuration files of Subscriber 1, Subscriber 2, Subscriber 3, and Subscriber 4 are all Message Queue 1
  • Subscriber 1, Subscriber 2, Subscriber 3, and Subscriber 4 are respectively Subscribe to the messages in the message queue 1 from the storage server 1.
  • the message is at least one of the 30 messages from 001 to 030; the message in the message queue 1 is subscribed from the storage server 2.
  • the message is at least one of the 30 messages with time points from 031 to 060.
  • the storage server maintains blocks, message queues, and subscription timestamps.
  • a block is a fixed-size memory space used to store multiple messages in sequence;
  • a message queue is a linked list composed of multiple blocks, and the blocks are arranged in order according to the creation time.
  • a distributed message queue system supports multiple message queues at the same time.
  • the storage server also maintains a binary tree for the message queue. For example, multiple subscribers subscribing to the same message queue will be organized into a binary tree. The subscriber with the newer timestamp will have a node in the complete binary tree. The closer the position is to the root node.
  • the subscriber when multiple subscribers subscribe to the same message queue, when a subscriber subscribes to messages in the message queue, it will first try to subscribe to the message from the subscriber corresponding to its parent node; if the subscription fails, it will Continue to try to subscribe to the message from the subscriber corresponding to its ancestor node; if the subscription fails again, it will finally subscribe to the message from the storage server. In addition, the subscriber will cache the subscribed messages locally for its descendants to subscribe. This way of caching the subscribed messages for other subscribers to subscribe to effectively disperses the subscription pressure of multiple subscribers to the distributed message queue system, greatly reduces the network communication load of the distributed message queue system, and reduces Consumption of machine resources.
  • FIG. 2 is a flowchart of a data distribution method according to an embodiment of the present disclosure.
  • the data distribution method provided by an embodiment of the present disclosure is applicable to a distributed message queuing system.
  • the distributed message queuing system includes a storage server
  • the data distribution method is suitable for the distribution of large-scale data to reduce the communication load when the distributed message queuing system and multiple subscribers perform network communication at the same time, and reduce the machine resource consumption of the distributed message queuing system. happening.
  • the data distribution method provided by the embodiments of the present disclosure is executed by a data distribution device, which is usually implemented in software and/or hardware, and the data distribution device is deployed in each of the distributed message queue systems.
  • a data distribution device which is usually implemented in software and/or hardware, and the data distribution device is deployed in each of the distributed message queue systems.
  • the method includes the following steps:
  • Step 201 Obtain the subscription timestamp of each subscription server in the subscription server set.
  • the subscription timestamp is used to indicate the subscription progress of the subscriber server, mark the message that the subscriber server has subscribed, and the message that needs to be subscribed next time.
  • the subscription timestamp is the largest time point among the time points of each message among the messages subscribed by the subscriber server each time.
  • the time point of the message subscribed by the subscription server 1 this time is 5 messages from 001 to 005 (the subscription server 1 either subscribes from the storage server 1, or subscribes to and stores these 5 messages from other Subscribed in the subscription server), the maximum time point in the message subscribed by the subscription server 1 this time is 005, and it is determined that the subscription timestamp of the subscription server 1 is 005.
  • the subscription timestamp 005 is used to indicate that the subscription server 1 has subscribed or is subscribing to the message queue 1 at the time point 005, and the messages before the time point 005 (messages corresponding to the time points 001 to 004), and the subscription server 1
  • the time needs to start from time 006, subscribe to the messages after time 006, and after time 006.
  • the storage server obtains the subscription timestamp of each subscription server in the set of subscription servers to determine the subscription progress of each subscription server. For example, with reference to Figure 1, if the subscription server 2 subscribes to 5 messages from 006 to 010, the subscription server 3 subscribes to 5 messages from 011 to 015, and the subscription server 4 subscribes to 5 messages from 016 to 020.
  • the storage server 1 obtains the subscription timestamp 005 of the subscription server 1, and the subscription timestamp 010 of the subscription server 2, the subscription timestamp 015 of the subscription server 3, and the subscription timestamp 020 of the subscription server 4, respectively, to determine each Subscriber's subscription progress.
  • the subscription server subscribes to messages from the storage server 1 and the storage server 2. In other embodiments, the subscriber subscribes to messages from other subscriber servers.
  • the storage server uses any method to obtain the subscription timestamp of each subscription server, which is not limited in the embodiment of the present disclosure.
  • Step 202 Determine the first subscriber from the set of subscribers according to the subscription timestamp of each subscriber, and determine the target subscriber of the first subscriber.
  • the first subscriber server subscribes to messages from other subscriber servers.
  • the target subscriber has subscribed and stored the message that the first subscriber needs to subscribe.
  • the storage server determines the subscription progress of each subscription server according to the subscription timestamp of each subscription server. According to the subscription progress of each subscription server, from The first subscriber is determined in the set of subscribers, and the target subscriber of the first subscriber is determined.
  • subscriber 1 has subscribed to messages from 001 to 005, and subscriber 1 needs to subscribe to 5 messages from 006 to 010 next time.
  • subscriber 2, subscriber 3, and subscriber 4 have subscribed to and stored 5 messages from 006 to 010, and the subscriber 1 subscribes to the messages from subscriber 2, subscriber 3, and subscriber 4 from 006 to 010.
  • the storage server 1 determines that the subscription server 1 is the first subscription server, and at the same time determines that the target subscription server of the subscription server 1 is: at least one of the subscription server 2, the subscription server 3, and the subscription server 4.
  • Storage Server 1 determines that Subscriber 2 is the first subscriber and determines the target of Subscriber 2
  • the subscription server is the subscription server 3 and/or the subscription server 4;
  • the storage server 1 determines that the subscription server 3 is the first subscription server, and determines that the target subscription server of the subscription server 3 is the subscription server 4.
  • subscriber 4 needs to subscribe to 5 messages from 021 to 025 next time, subscriber 1, subscriber 2 and subscriber 3 have not subscribed and store 5 messages from 021 to 025, so subscriber 4 Not as the first subscriber.
  • one or more target subscribers are determined for each first subscriber, for example, only one target subscriber is determined for each first subscriber.
  • the number of target subscription servers determined for the first subscription server is set according to requirements, which is not limited in the embodiment of the present disclosure.
  • Step 203 Notify the first subscriber server to subscribe to the message from the target subscriber server.
  • the storage server after determining the first subscriber server and determining the target subscriber server of the first subscriber server, the storage server notifies the first subscriber server to subscribe to messages from the corresponding target subscriber server.
  • the storage server 1 notifies the subscription server 1 to subscribe from the target subscription server (any one of the subscription server 2, the subscription server 3, and the subscription server 4) at the time point of 006 5 messages to 010.
  • the storage server uses any method to notify the first subscription server to subscribe to the message from the target subscription server, which is not limited in the embodiment of the present disclosure.
  • the subscription server 4 does not serve as the first subscription server. At this time, the subscription server 4 directly subscribes to messages from the storage server 1 and the storage server 2.
  • the storage server 2 is the same as the storage server 1. As shown in Figure 1, the storage server 2 determines the first subscriber for the set of subscribers, determines the target subscriber of the first subscriber, and notifies the first subscriber to subscribe from the corresponding target The server subscribes to the message, and the storage server 2 executes the above method in the same process as the storage server 1, and will not be repeated here.
  • the embodiment of the present disclosure realizes that the first subscriber server subscribes messages from the target subscriber server, reduces the number of subscribers accessing the storage server at the same time, further reduces the number of subscribers accessing the distributed message queue system at the same time, and effectively decentralizes
  • the subscription pressure of multiple subscribers to the distributed message queuing system greatly reduces the network communication load of the distributed message queuing system and reduces the consumption of machine resources.
  • Fig. 3 is a flowchart showing another data distribution method according to an embodiment of the present disclosure. The method includes the following steps:
  • Step 301 The storage server obtains the subscription timestamp of each subscription server in the subscription server set.
  • the storage server obtains the subscription timestamp of each subscription server in the subscription server set by the following method:
  • Method 1 Receive the subscription request sent by the subscription server, and determine the subscription timestamp of the subscription server according to the subscription request.
  • the subscription server when subscribing to a message from the storage server, the subscription server sends a subscription request to the storage server, requesting to subscribe to the message in the message queue stored by the storage server.
  • the subscription request includes: the start time point of the subscription message and the number of subscription messages.
  • the storage server parses the subscription request to determine the specific message that the subscription server needs to subscribe to.
  • the subscription server 1 sends a subscription request to the storage server 1.
  • the subscription request includes the starting time point 001 and the number of messages that need to be subscribed 5.
  • the storage server 1 parses the subscription request and determines that the subscription server 1 needs to subscribe to 5 messages from time 001 to time 005.
  • the storage server 1 determines that the subscription timestamp of the subscription server 1 is 005, and the subscription timestamp 005 is used to indicate that the subscription server 1 is subscribing to the time point 005 and the message before the time point 005.
  • the storage server 1 sends 5 messages from 001 to 005 in time to the subscription server 1.
  • the storage server 1 determines the subscription timestamps of the subscription server 2, the subscription server 3, and the subscription server 4 according to the subscription requests sent by the subscription server 2, the subscription server 3, and the subscription server 4, respectively.
  • the subscription timestamps of the subscription server 3 and the subscription server 4 are determined by the following method 2.
  • the subscription server sends a subscription request to the storage server, the storage server parses the subscription request, and sends a corresponding message to the subscription server according to the subscription request, which is not limited in the embodiment of the present disclosure.
  • Manner 2 Receive feedback information sent by the subscription server, and determine the subscription timestamp of the subscription server according to the feedback information.
  • the feedback information is sent to the storage server after the subscription server subscribes to the message from other subscription servers; the feedback information includes the subscription timestamp.
  • the subscription server determines its own subscription timestamp according to the subscribed messages, and sends feedback information including the subscription timestamp to the storage server.
  • the subscription server 1 determines that it has subscribed and It stores 5 messages from 006 to 010 in time, determines that its subscription timestamp is 010, and sends feedback information including the subscription timestamp 010 to the storage server 1 and the storage server 2.
  • the storage server 1 determines the subscription timestamp of the subscription server 1 according to the feedback information sent by the subscription server 1.
  • the storage server 2 determines the subscription timestamps of the subscription server 1, the subscription server 2, the subscription server 3, and the subscription server 4, which is the same as that of the subscription server 1, and will not be repeated here.
  • Step 302 The storage server determines the first subscription server from the set of subscription servers according to the subscription timestamp of each subscription server, and determines the target subscription server of the first subscription server.
  • the storage server determines the first subscription server from the set of subscription servers according to the subscription timestamp of each subscription server, and determines the target subscription server of the first subscription server, including: according to the subscription time of each subscription server Stamp, sort the subscribers in the subscriber set, and get the sorting result. According to the sorting result, the first subscriber is determined from the set of subscribers, and the target subscriber of the first subscriber is determined.
  • the sorting result is a binary tree sorting result.
  • the storage server sorts the subscription servers according to the subscription timestamp of each subscription server in the subscription server set to obtain a binary tree sorting result.
  • each subscription server 1 determines that the subscription timestamps of the subscription server 1, the subscription server 2, the subscription server 3, and the subscription server 4 are 005, 010, 015, and 020, each subscription server
  • the subscription timestamp of is the key value of the binary tree, and the binary tree is established.
  • Each node in the binary tree corresponds to a subscriber in the set of subscribers.
  • the subscription timestamp of the subscriber corresponding to each child node in the binary tree is less than the subscription timestamp of the subscriber corresponding to the parent node.
  • the subscription timestamp of Subscriber 4 corresponding to the root node is the largest, and the subscription timestamps of Subscriber 2 and Subscriber 3 corresponding to the child nodes are smaller than their parent node (root node).
  • the subscription time stamp of the subscriber 1 corresponding to the child node is less than the subscription time stamp of the subscriber 3 corresponding to its parent node.
  • determining the first subscriber from the set of subscribers and determining the target subscriber of the first subscriber includes: according to the binary tree sorting result, Determine other subscribers except the second subscriber, and use other subscribers as the first subscriber; from the ancestor nodes of the specified node, select the subscribers corresponding to some or all of the ancestor nodes, and set the selected ancestor node as the first The target subscriber of the subscriber.
  • the second subscriber is the subscriber corresponding to the root node of the binary tree; the designated node corresponds to the first subscriber.
  • the sorting result is the binary tree sorting result
  • the subscription timestamp of the subscriber corresponding to the root node is the largest
  • other subscribers can subscribe to messages from the subscriber corresponding to the root node, and the subscription corresponding to the root node
  • the server can only subscribe to messages from the storage server. Therefore, it is determined that the subscribers other than the subscriber corresponding to the root node are the first subscribers. As shown in Figure 1, it is determined that the subscriber server 1, subscriber server 2, and subscriber server 3 other than the subscriber server 4 corresponding to the root node are the first subscriber servers.
  • the subscription timestamp of the subscriber corresponding to each ancestor node is greater than the subscription time of the subscriber corresponding to the node stamp. Therefore, from the ancestor nodes of the binary tree node corresponding to the first subscriber, at least one subscriber corresponding to the ancestor node is selected as the target subscriber of the first subscriber.
  • Subscriber 1 from the ancestor nodes of the corresponding node of Subscriber 1 (the nodes corresponding to Subscriber 2, Subscriber 3, and Subscriber 4), select at least one subscriber corresponding to the ancestor node (Subscription The server 2, the subscriber server 3, and the subscriber server 4) serve as the target subscriber servers of the subscriber server 1.
  • subscriber 4 corresponding to the root node is selected as the target subscriber of subscriber 2 and subscriber 3.
  • the ancestor node of the node corresponding to the first subscriber is determined, and the subscriber corresponding to the ancestor node is used as the target subscriber of the first subscriber, and the target subscriber is determined
  • the same subscriber is avoided as the target subscriber of multiple first subscribers, and the communication load and machine resource consumption of the subscriber are reduced.
  • Subscriber 3 serves as the target subscriber of Subscriber 1 and Subscriber 2 at the same time
  • only Subscriber 4 corresponding to Subscriber 2 is used as the target subscriber of Subscriber 2, avoiding that Subscriber 3 serves as both Subscriber 1 and Subscriber 2 at the same time.
  • the target subscriber of subscriber 2 reduces the communication load and resource consumption of subscriber 3.
  • the node corresponding to the subscription server 4 is an ancestor node of the node corresponding to the subscription server 4.
  • determining the first subscriber from the set of subscribers and determining the target subscriber of the first subscriber includes: according to the binary tree sorting result, Determine other subscribers except the second subscriber, set other subscribers as the first subscriber, set the parent node of the specified node as the target node, and set the subscriber corresponding to the target node as the target subscriber of the first subscriber .
  • the parent node of the binary tree node corresponding to Subscriber 1 is used as the target node (the node corresponding to Subscriber 3), and Subscriber 3 corresponding to the target node is used as the target subscription of Subscriber 1 server.
  • the parent node (root node) of the binary tree node corresponding to Subscriber 2 is determined as the target node, and Subscriber 4 corresponding to the target node is used as the target subscriber of Subscriber 2.
  • the sorting result is the binary tree sorting result
  • the parent node of the binary tree node corresponding to the first subscriber is used as the target node
  • the subscriber corresponding to the target node is used as the target subscriber of the first subscriber.
  • the target subscription server it not only avoids the same subscription server as the target subscription server of multiple first subscription servers, reduces the communication load and machine resource consumption of the subscription server, but also can quickly determine the target of the first subscription server Subscribe to the server to improve the operating efficiency of the entire system.
  • Subscriber 1 For Subscriber 1, only Subscriber 2 is the target subscriber. For Subscriber 2 and Subscriber 3, only Subscriber 4 is the target subscriber. When the number of subscribers is large, each first subscriber corresponds to only one target subscriber, which can quickly determine the target subscriber of each first subscriber, and each target subscriber is only a child node of the corresponding node The target subscribers reduce the communication load of each target subscriber. For example, Subscriber 4 only serves as the target subscriber of Subscriber 2 and Subscriber 3, and Subscriber 3 only serves as the target subscriber of Subscriber 1.
  • the binary tree when the sorting result is a binary tree, the binary tree is a complete binary tree or a full binary tree. In a full binary tree, all layers except the last layer have reached the maximum number of nodes in this layer, all nodes in the last layer are all to the left, and the number of nodes in all layers in the full binary tree has reached the maximum.
  • the complete binary tree or full binary tree has a complete structure and can quickly and conveniently determine the target subscriber for each first subscriber.
  • the target subscriber corresponds to the ancestor node of the specified node; or, the target subscriber corresponds to the parent node of the specified node; the specified node corresponds to the first subscriber; wherein, the first subscriber performs the following steps: from the parent node The corresponding target subscriber subscribes to the target message; based on the target message from the target subscriber corresponding to the parent node, the target message is subscribed from the target subscriber corresponding to the ancestor node; based on the target subscriber corresponding to the ancestor node If the target message is not subscribed, the target message is subscribed from the storage server.
  • the storage server determines the second subscriber corresponding to the root node of the binary tree according to the binary tree sorting result; then, determines the first subscriber according to the second subscriber, and the first subscriber is a subscriber other than the second subscriber; Then, the target subscriber is determined according to the designated node corresponding to the first subscriber, where the target subscriber is the subscriber corresponding to the ancestor node or parent node of the designated node.
  • the sorting result is a linear sorting result.
  • the storage server sorts the subscription servers according to the subscription timestamp of each subscription server in the subscription server set to obtain a linear sort result.
  • FIG. 4 is a structural diagram of another distributed message queue system according to an embodiment of the present disclosure.
  • the subscription timestamps are from large to small, Subscriber 4>Subscriber 3>Subscriber 2>Subscriber 1.
  • the storage server 2 sorts the subscription server 1, the subscription server 2, the subscription server 3, and the subscription server 4 according to the subscription timestamp, and the process of obtaining the linear sorting result is the same as that of the storage server 1, and will not be repeated here.
  • the linear sorting result is in order or reverse order.
  • the storage server 1 determines the linear sorting result according to the subscription timestamp as follows: Subscriber 1 ⁇ Subscriber 2 ⁇ Subscriber 3 ⁇ Subscriber 4.
  • determining the first subscriber from the set of subscribers and determining the target subscriber of the first subscriber includes: determining according to the linear sorting result For the subscribers other than the third subscriber, other subscribers are regarded as the first subscriber; the subscriber is selected from the set of subscribers, and the selected subscriber is used as the target subscriber of the first subscriber.
  • the third subscriber is the subscriber corresponding to the largest subscription timestamp, and the subscription timestamp of the selected subscriber is greater than the subscription timestamp of the first subscriber.
  • the storage server first determines the linear sorting result of the subscribers according to the subscription timestamp of each subscriber; then, according to the linear sorting result, determines the third subscriber corresponding to the largest subscription timestamp; and then determines the third subscriber according to the third subscriber A subscriber, where the first subscriber is a subscriber other than the third subscriber; then, according to the first subscriber, the target subscriber is determined from the set of subscribers, and the target subscriber is greater than the first subscriber The subscription timestamp of the subscriber.
  • subscriber server 1, subscriber server 2, and subscriber server 3 except subscriber server 4 are determined to be the first subscriber server.
  • the subscription server 1 at least one of the subscription server 2, the subscription server 3, and the subscription server 4 is selected as the target subscription server.
  • Subscriber 2 select Subscriber 3 or Subscriber 4 as the target subscriber.
  • subscriber 4 is directly selected as the target subscriber.
  • the first subscriber can be determined more quickly, and the target subscriber of the first subscriber can be determined, and at the same time, multiple target subscribers can be quickly determined for each first subscriber.
  • the method when there are multiple target subscribers, after determining the target subscriber of the first subscriber, the method further includes: determining the priority of each target subscriber according to the sorting result.
  • notifying the first subscriber to subscribe to the message from the target subscriber includes: sending the priority of each target subscriber to the first subscriber, and notifying the first subscriber according to the priority of each target subscriber from the target The subscriber subscribes to the message.
  • the first subscriber server selects the target subscriber server in order according to the priority of the target subscriber server, and subscribes to messages from the selected target subscriber server.
  • the higher the priority of the target subscriber the smaller the subscription timestamp.
  • the storage server 1 determines that the target subscriber of Subscriber 1 is Subscriber 2, Subscriber 3, and Subscriber 4. Because in the linear sorting result, according to the size of the subscription timestamp, Subscriber 4> Subscriber 3> Subscriber 2, then it is determined that the priority of Subscriber 2 is higher than Subscriber 3, and the priority of Subscriber 3 is higher than that of Subscriber. 4.
  • the priority of the target subscriber is determined according to the node position of each target subscriber in the binary tree. For example, when the first subscription server is subscription server 1, among the target subscription servers of subscription server 1, the node corresponding to subscription server 4 is the parent node of the node corresponding to subscription server 2 and subscription server 3. The priority is higher than the subscription server 4. In some embodiments, the subscription server 2 and the subscription server 3 have the same priority.
  • the priority of the target subscribers is set according to the sorting result. If the priority corresponding to each target subscriber is determined, when there are multiple target subscribers, the first subscriber is made to follow the priority and order Subscribe to messages from each target subscriber.
  • the priority setting can avoid the problem of high communication load and loss of machine resources when serving as the target subscriber of multiple first subscribers at the same time.
  • Subscriber 4 is the target subscriber of Subscriber 1, Subscriber 2 and Subscriber 3 at the same time. If Subscriber 1, Subscriber 2 and Subscriber 3 are from Subscriber 4 at the same time. Subscribing to the message will cause the subscriber server 4 to communicate with the subscriber server 1, the subscriber server 2 and the subscriber server 3 at the same time, which causes the communication load of the subscriber server 4 to be too high.
  • the subscriber 1 subscribes to the message from the subscriber 2 first in the order of priority, and the subscriber 2 subscribes to the message from the subscriber 3 first in the order of priority, avoiding the subscriber 1, the subscriber 2, and
  • the subscriber server 3 simultaneously subscribes to messages from the subscriber server 4 and communicates with the subscriber server 4 at the same time, which reduces the communication load of the subscriber server 4.
  • the embodiment of the present disclosure does not limit the specific form of the sorting result.
  • Step 303 The storage server notifies the first subscriber server to subscribe to the message from the target subscriber server.
  • a notification message is sent to the first subscriber server, and the notification message is used to instruct the first subscriber server to subscribe to the target message from the target subscriber server.
  • the target subscriber server has subscribed and stored the target message, and the target message is the message that the first subscriber server needs to subscribe.
  • informing the first subscriber server to subscribe to messages from the target subscriber server includes: sending identification information of the target subscriber server to the first subscriber server, so that the first subscriber server subscribes to the message from the target subscriber server according to the identification information .
  • the identification information of the target subscription server is information that uniquely identifies the target subscription server.
  • the identification information includes the IP address of the target subscriber. Combining steps 301 to 302, the storage server 1 determines that the subscriber 1 is the first subscriber, and determines that the target subscriber of the subscriber 1 is the subscriber. 2.
  • IP addresses 192.168.2.3 (the IP address of subscribing server 2), 192.168.2.4 (the IP address of subscribing server 3) and 192.168.2.5 (the identification of subscribing server 4)
  • the identification information also includes the priority identification of the target subscriber.
  • the identification information sent by the storage server to the first subscription server includes: the priority identification of each target subscription server.
  • the storage server sets the priority identifier of each target subscriber. For example, set the priority of the subscriber server 4 to 3, the priority of the subscriber server 3 to 2, and the priority identifier of the subscriber server 2 to 1.
  • the setting of the priority identifier is not limited in the embodiment of the present disclosure.
  • the specific data included in the identification information and the specific form of the identification information are set according to requirements, which are not limited in the embodiments of the present disclosure.
  • Step 304 The first subscription server receives the notification sent by the storage server.
  • the first subscription server receives and parses the notification sent by the storage server, and determines the target subscription server according to the notification, so as to subscribe to the message from the target subscription server.
  • the subscription server 1 receives the identification information sent by the storage server 1, the identification information includes an IP address, and the target subscription server is determined to be the subscription server 2, the subscription server 3, and the subscription server 4 according to the IP address.
  • the identification information sent by the storage server 1 also includes the priority identification corresponding to each target subscriber, the subscriber 1 determines the priority of each target subscriber at the same time.
  • the first subscription server receives the notification sent by the storage server, and the process of parsing may refer to the process of receiving information and parsing by the server, which is not limited in the embodiment of the present disclosure.
  • Step 305 The first subscription server subscribes to the message from the target subscription server according to the notification.
  • the first subscription server when the first subscription server receives the notification sent by the storage server and determines the target subscription server, it sends a subscription request to the target subscription server to subscribe and store the message.
  • the subscription server 1 determines that the target subscription server is the subscription server 2, the subscription server 3, and the subscription server 4, and after determining the respective IP addresses of the subscription server 2, the subscription server 3, and the subscription server 4, the subscription server 2. Select any one of the subscription server 3 and the subscription server 4, and subscribe to the news until the 5 messages from 006 to 010 are subscribed, and the subscribed messages are stored.
  • the subscription server 1 will also determine the priority of each target subscription server at the same time. At this time, Subscriber 1 first subscribes to the message from Subscriber 2 according to the priority. If it has not subscribed to the message from Subscriber 2, then subscribes to the message from Subscriber 3. If it has not subscribed to the message from Subscriber 3, then Subscriber 1 Subscribe to messages directly from the subscriber server 4. According to the priority identifier, the process of subscribing to messages from multiple target subscription servers by the first subscriber server can refer to the priority usage method, which is not limited in the embodiment of the present disclosure.
  • the first subscription server if the first subscription server subscribes to a message from the target subscription server, it determines feedback information according to the subscribed message, and sends the feedback information to the storage server.
  • the first subscription server subscribes to the message from the target subscription server, and determines the feedback information according to the subscribed message, and the process of sending the feedback information to the storage server can refer to step 301, which will not be repeated here.
  • the first subscription server if it does not subscribe to the message from the target subscription server, it sends a subscription request to the storage server to subscribe to the message from the storage server. For example, combining steps 301 to 305, if the subscription server 1 has not subscribed from the subscription server 2, the subscription server 3 and the subscription server 4 to the 5 messages at the time point of 006 to 010, the subscription server 1 will send to the storage server 1 or the storage server 1.
  • Server 2 sends a subscription request (Subscription server 1 is not sure about the specific storage location from 006 to 010 at the time point, so it randomly sends a subscription request to storage server 1 or storage server 2), and subscribes to 5 time points from 006 to 010 news.
  • each storage server determines the set of subscribers that subscribe to messages in the message queue, and determines the first subscriber in the set of subscribers, and the target subscription of the first subscriber server.
  • storage server 1 stores message queue 1 and message queue 2, subscriber server 1, subscriber server 2, subscriber server 3, and subscriber server 4 subscribe to messages in message queue 1, and the storage server is in the above four subscriber servers.
  • Subscriber A, Subscriber B, Subscriber C, and Subscriber D subscribe to the messages in message queue 2.
  • the storage server determines the first subscriber among the above four subscribers, and determines each first subscriber The first subscription object information.
  • the storage server 2 determines the first subscription server and the first subscription object information of the first subscription server in the set of subscription servers subscribing to the messages in the message queue 1 and message queue 2, respectively.
  • the process is the same as that of the storage server 1. Do repeats.
  • the embodiments of the present disclosure realize that a certain subscriber server subscribes to messages in the message queue from other subscriber servers, reduces the number of subscribers accessing the storage server at the same time, and further reduces the number of subscribers accessing the distributed message queue system at the same time , Effectively disperse the subscription pressure of multiple subscriber servers to the distributed message queuing system, greatly reduce the network communication load of the distributed message queuing system, and reduce the consumption of machine resources.
  • the subscription server uses a fragmented storage method to store messages from different storage servers in different storage areas (the storage areas are, for example, fragments).
  • subscription server 1 corresponds to shard 1 of storage server 1, and shard 2 of storage server 2.
  • Subscriber 1 will store 5 messages from 001 to 005 in message queue 1 subscribed by storage server 1 to shard 1, and 5 from 006 to 010 in message queue 1 subscribed by subscriber 2 Messages are stored in shard 1, and 5 messages from 011 to 015 in the message queue 1 subscribed by the subscriber 3 are stored in shard 1, and the message queue 1 subscribed from the subscriber 4 is in time Five messages from 016 to 020 are stored in shard 1.
  • FIG. 1 it can be seen that the 20 messages with time points from 001 to 020 originate from the storage server 1.
  • the subscription server 1 stores the messages subscribed from the subscription server 2, the subscription server 3, and the subscription server 4 into the shard 2, where the message comes from the storage server 2.
  • the subscription server 1 stores the messages directly subscribed from the storage server 2 in the shard 2.
  • the time point of the message is 0031 to 060. It should be noted that in actual use, the number of shards is set according to the number of storage servers, and each shard corresponds to a storage server.
  • the subscriber 1 subscribes to the message from the message queue 1 of the storage server 1, it subscribes to the message queue from the shard 1, the shard 1 of the subscriber 3, and the shard 1 of the subscriber 4, respectively, from the subscriber 2 1 in the message.
  • the messages in shard 1 are the messages in the message queue 1 subscribed by the subscriber server 2, the subscription server 3 and the subscriber server 4 from the storage server 1, or the messages subscribed from the shard 1 of other subscriber servers. .
  • the subscriber 1 subscribes to the message from the message queue 1 of the storage server 2, it subscribes to the message queue 1 from the shard 2, the shard 2 of the subscriber 3, and the shard 2 of the subscriber 4, respectively.
  • the messages in the shard 2 are the messages in the message queue 1 subscribed by the subscriber server 2, the subscriber server 3 and the subscriber server 4 from the storage server 2 respectively, or the messages subscribed from the shard 2 of other subscriber servers.
  • the subscription server 2, the subscription server 3, and the subscription server 4 subscribe to messages from other subscription servers and save the same process as the subscription server 1, and will not be repeated here.
  • the subscription server adopts a fragmented storage manner to store messages from different storage servers in corresponding fragments, which facilitates the management of messages by the subscription server.
  • the message generated by the production server is published to the storage server, where the storage server stores the message published by the production server in the corresponding message queue according to the identifier of the message queue sent by the production server.
  • the subscription server 1 sends a subscription request to the storage server to directly subscribe to the message in the message queue from the storage server, and stores the subscribed message in a certain shard (such as shard 3) for other subscription servers to subscribe use.
  • Subscriber 2 and Subscriber 3 directly subscribe to the message in the message queue from Subscriber 1, and are also stored in Shard 3. After that, Subscriber 2 and Subscriber 3 send feedback messages to the storage server to inform the storage server The respective subscription timestamp.
  • the production server when the production server publishes a message, it randomly selects a storage server corresponding to a shard, and writes the published message to this storage server.
  • the subscribing server subscribes to messages, it is divided into the following two situations: if the message is allowed to be out of order, the subscribing server randomly selects a subscription timestamp corresponding to a shard, and starts subscribing to the message based on the subscription timestamp; if the message is required to be in order ,
  • the subscription server adopts the merge algorithm, each time it selects the shard where the message with the smallest subscription timestamp is located for subscription, which is not limited in the embodiment of the present disclosure.
  • FIG. 6 is a block diagram of a data distribution device according to an embodiment of the present disclosure.
  • the data distribution device 600 is applied to a data distribution system.
  • the data distribution system includes a storage server and a subscription server set.
  • the device is set on the storage server and includes: an acquisition module 601, a determination module 602, and a notification module 603.
  • the obtaining module 601 is configured to obtain the subscription timestamp of each subscription server in the set of subscription servers, and the subscription timestamp is used to indicate the subscription progress of the subscription server.
  • the determining module 602 is configured to determine the sorting result of the subscribers in the subscriber set according to the subscription timestamp of each subscriber; according to the sorting result, determine the first subscriber and the target subscriber in the subscriber set; wherein, the target The subscriber has subscribed and stored the target message, and the target message is the message that the first subscriber needs to subscribe to.
  • the notification module 603 is configured to send a notification message to the first subscription server, where the notification message is used to instruct the first subscription server to subscribe to the target message from the target subscription server.
  • the embodiments of the present disclosure realize that a certain subscriber server subscribes to messages in the message queue from other subscriber servers, reduces the number of subscribers accessing the storage server at the same time, and further reduces the number of subscribers accessing the distributed message queue system at the same time , Effectively disperse the subscription pressure of multiple subscriber servers to the distributed message queuing system, greatly reduce the network communication load of the distributed message queuing system, and reduce the consumption of machine resources.
  • the acquisition module 601 is configured to:
  • the feedback information is sent by the subscription server to the storage server after subscribing to a message from the target subscription server, and the feedback information includes the subscription timestamp.
  • the determining module 602 is configured to determine the binary tree sorting result of the subscriber according to the subscription timestamp of each subscriber; wherein, the target subscriber corresponds to the ancestor node of the specified node; or, the target subscriber Corresponding to the parent node of the designated node; the designated node corresponds to the first subscriber;
  • the notification message is used to instruct the first subscription server to subscribe to the target message from the target subscription server corresponding to the parent node;
  • the target message is subscribed from the storage server.
  • the determining module 602 is configured to:
  • the target subscription server is determined according to the designated node corresponding to the first subscription server, where the target subscription server is a subscription server corresponding to an ancestor node or a parent node of the designated node.
  • the determining module 602 is configured to:
  • the determining module 602 is configured to:
  • the target subscriber server is determined from the set of subscriber servers, and the target subscriber server is a subscriber server that is greater than the subscription timestamp of the first subscriber server.
  • the determining module 602 is further configured to:
  • the priority is used to instruct the first subscriber to subscribe to the target message from the target subscriber according to the priority of each target subscriber;
  • the notification module 603 is configured to:
  • the notification message includes identification information of the target subscription server, and the identification information is used to instruct the first subscription server to subscribe to the target subscription server.
  • the target message is used to instruct the first subscription server to subscribe to the target subscription server.
  • FIG. 7 is a block diagram of another data distribution device according to an embodiment of the present disclosure.
  • the data distribution device 700 is applied to a data distribution system.
  • the data distribution system includes a storage server and a subscription server set.
  • the device is set on the subscription server and includes a receiving module 701 and a subscription module 702.
  • the receiving module 701 is configured to receive a notification message sent by the storage server; the notification message is used to instruct the subscription server to subscribe to the message from the target subscription server;
  • the target subscriber is determined by the storage server according to the subscription timestamp of each subscriber to determine the sorting result of the subscribers in the subscriber set, and according to the sorting result, the subscriber is determined for the subscriber after the subscriber is determined from the set of subscribers according to the sorting result ;
  • the subscription timestamp is used to indicate the subscription progress of each subscriber; the target subscriber has subscribed and stored the target message, and the target message is the message that the subscriber needs to subscribe to.
  • the subscription module 702 is configured to subscribe to the target message from the target subscription server according to the notification message.
  • the embodiments of the present disclosure realize that a certain subscriber server subscribes to messages in the message queue from other subscriber servers, reduces the number of subscribers accessing the storage server at the same time, and further reduces the number of subscribers accessing the distributed message queue system at the same time.
  • the quantity effectively disperses the subscription pressure of multiple subscriber servers to the distributed message queuing system, greatly reduces the network communication load of the distributed message queuing system, and reduces the consumption of machine resources.
  • the subscription module 702 is further configured to:
  • the feedback information is determined according to the target message, and the feedback information is sent to the storage server; the feedback message includes the subscription timestamp of the subscriber;
  • a subscription request is sent to the storage server to subscribe to the target message from the storage server.
  • the notification message includes the identification information and priority of each target subscriber server; the subscription module 702 is configured to:
  • the notification message includes identification information of the target subscription server, and the identification information is used to instruct the first subscription server to subscribe to the target message from the target subscription server.
  • the sorting result is a binary tree sorting result
  • the target subscriber corresponds to the ancestor node of the specified node; or, the target subscriber corresponds to the parent node of the specified node; the specified node corresponds to the subscriber;
  • the subscription module 702 is configured to:
  • the target message is subscribed from the target subscriber corresponding to the ancestor node;
  • the target message is subscribed from the storage server.
  • the present disclosure shows a data distribution system.
  • the data distribution system includes: a subscription server and a subscription server.
  • the storage server is configured to obtain the subscription timestamp of each subscriber in the set of subscribers, and the subscription timestamp is used to indicate the subscription progress of each subscriber;
  • the storage server is also configured to determine the sorting result of the subscribers in the subscriber set according to the subscription timestamp of each subscriber; according to the sorting result, determine the first subscriber and the target subscriber in the subscriber set; where, The target subscriber has subscribed and stored the target message, and the target message is the message that the first subscriber needs to subscribe to;
  • the storage server is further configured to send a notification message to the first subscription server
  • the first subscription server is configured to, after receiving the notification message, subscribe to the target message from the target subscription server according to the notification message.
  • FIG. 8 is a block diagram of another electronic device according to an embodiment of the present disclosure.
  • the electronic device 800 includes:
  • the processor 801 is configured to execute executable instructions stored in the memory 802 to implement the data distribution method in the embodiment shown in FIG. 2 or FIG. 3.
  • a storage medium including instructions such as a memory 802 including instructions.
  • the foregoing instructions may be executed by the processor 801 of the electronic device 800 to complete the method in the embodiment shown in FIG. 2 or FIG. 3 .
  • the storage medium is a non-transitory computer-readable storage medium, for example, the non-transitory computer-readable storage medium is ROM, random access memory (RAM), CD-ROM, magnetic tape, floppy disk, and optical data storage Equipment, etc.
  • FIG. 9 is a block diagram showing another electronic device according to an embodiment of the present disclosure.
  • the electronic device 900 includes:
  • a memory 902 for storing executable instructions of the processor 901.
  • the processor 901 is configured to execute executable instructions stored in the memory 902 to implement the data distribution method in the embodiment shown in FIG. 2 or FIG. 3.
  • a storage medium including instructions is also provided, such as a memory 902 including instructions.
  • the foregoing instructions may be executed by the processor 901 of the electronic device 900 to complete the method in the embodiment shown in FIG. 2 or FIG. 3 .
  • the storage medium is a non-transitory computer-readable storage medium, for example, the non-transitory computer-readable storage medium is ROM, random access memory (RAM), CD-ROM, magnetic tape, floppy disk, and optical data storage Equipment, etc.
  • the description is relatively simple, and for related parts, please refer to the part of the description of the method embodiment.

Landscapes

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

Abstract

本公开关于一种数据分发方法、装置及存储介质,包括:获取订阅服务器集合中每个订阅服务器的订阅时间戳,订阅时间戳用于指示每个订阅服务器的订阅进度;根据每个订阅服务器的订阅时间戳,确定订阅服务器集合中的订阅服务器的排序结果;根据排序结果,在订阅服务器集合中确定第一订阅服务器和目标订阅服务器;目标订阅服务器已经订阅并存储有目标消息,目标消息为第一订阅服务器需要订阅的消息;向第一订阅服务器发送通知消息,通知消息用于指示第一订阅服务器从目标订阅服务器中订阅目标消息。本公开实施例有效分散了多个订阅服务器对分布式消息队列系统的订阅压力,大大降低了分布式消息队列系统的网络通信负载,并降低了对机器资源的消耗。

Description

数据分发方法、电子设备及存储介质
本申请要求于2019年10月16日提交的申请号为201910985286.6、发明名称为“数据分发方法、装置及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本公开涉及数据分发技术领域,尤其涉及一种数据分发方法、电子设备及存储介质。
背景技术
目前的生产环境中,需要分发的数据量不断增长,大规模数据的实时分发通常是通过分布式消息队列系统实现的。分布式消息队列系统由多个服务器组成,多个服务器分布存储多个消息队列中的消息,由多个服务器对多个消息队列中的消息进行分布存储和实时分发。
相关技术中,发布消息的服务器(下称生产服务器)发布的消息数据统一存储到分布式消息队列系统中,多个请求订阅消息的服务器(下称订阅服务器)需要从分布式消息队列系统中的消息队列订阅消息,当多个订阅服务器同时订阅消息队列中的消息时,导致分布式消息队列系统需要和多个订阅服务器同时进行网络通信,造成较高的网络通信负载,消耗很多机器资源。
发明内容
本公开提供一种数据分发方法、电子设备及存储介质。本公开的技术方案如下:
根据本公开实施例的一方面,提供一种数据分发方法,应用于数据分发系统,所述数据分发系统包括存储服务器和订阅服务器集合,所述方法执行于存储服务器,包括:
获取所述订阅服务器集合中每个订阅服务器的订阅时间戳,所述订阅时间戳用于指示每个订阅服务器的订阅进度;
根据所述每个订阅服务器的订阅时间戳,确定所述订阅服务器集合中的订阅服务器的排序结果;
根据所述排序结果,在所述订阅服务器集合中确定第一订阅服务器和目标订阅服务器;其中,所述目标订阅服务器已经订阅并存储有目标消息,所述目标消息为所述第一订阅服务器需要订阅的消息;
向所述第一订阅服务器发送通知消息,所述通知消息用于指示所述第一订阅服务器从所述目标订阅服务器中订阅所述目标消息。
根据本公开实施例的另一方面,提供一种数据分发方法,应用于数据分发系统,所述数据分发系统包括存储服务器和订阅服务器集合,所述方法执行于订阅服务器,包括:
接收所述存储服务器发送的通知消息;所述通知消息用于指示所述订阅服务器从目标订阅服务器中订阅消息;
其中,所述目标订阅服务器是所述存储服务器根据每个订阅服务器的订阅时间戳,确定所述订阅服务器集合中的订阅服务器的排序结果,并根据所述排序结果,从所述订阅服务器集合中确定所述订阅服务器后,为所述订阅服务器确定的;所述订阅时间戳用于指示每个订阅服务器的订阅进度;所述目标订阅服务器已经订阅并存储有目标消息,所述目标消息为所述订阅服务器需要订阅的消息;
根据所述通知消息,从所述目标订阅服务器中订阅所述目标消息。
根据本公开实施例的另一方面,提供一种数据分发装置,应用于数据分发系统,所述数据分发系统包括存储服务器和订阅服务器集合,所述装置设置于存储服务器,包括:
获取模块,被配置为获取所述订阅服务器集合中每个订阅服务器的订阅时间戳,所述订阅时间戳用于指示每个订阅服务器的订阅进度;
确定模块,被配置为根据所述每个订阅服务器的订阅时间戳,确定所述订阅服务器集合中的订阅服务器的排序结果;根据所述排序结果,在所述订阅服务器集合中确定第一订阅服务器和目标订阅服务器;其中,所述目标订阅服务器已经订阅并存储有目标消息,所述目标消息为所述第一订阅服务器需要订阅的消息;
通知模块,被配置为向所述第一订阅服务器发送通知消息,所述通知消息用于指示所述第一订阅服务器从所述目标订阅服务器中订阅所述目标消息。
根据本公开实施例的另一方面,提供一种数据分发装置,应用于数据分发系统,所述数据分发系统包括存储服务器和订阅服务器集合,所述装置设置于订阅服务器,包括:
接收模块,被配置为接收所述存储服务器发送的通知消息;所述通知消息用于指示所述订阅服务器从目标订阅服务器中订阅消息;
其中,所述目标订阅服务器是所述存储服务器根据每个订阅服务器的订阅时间戳,确定所述订阅服务器集合中的订阅服务器的排序结果,并根据所述排序结果,从所述订阅服务器集合中确定所述订阅服务器后,为所述订阅服务器确定的;所述订阅时间戳用于指示每个订阅服务器的订阅进度;所述目标订阅服务器已经订阅并存储有目标消息,所述目标消息为所述订阅服务器需要订阅的消息;
订阅模块,被配置为根据所述通知消息,从所述目标订阅服务器中订阅所述目标消息。
根据本公开实施例的另一方面,提供一种数据分发系统,包括:存储服务器和订阅服务器;
所述存储服务器,被配置为获取订阅服务器集合中每个订阅服务器的订阅时间戳,所述订阅时间戳用于指示每个订阅服务器的订阅进度;
所述存储服务器,还被配置为根据每个订阅服务器的订阅时间戳,确定所述订阅服务器集合中的订阅服务器的排序结果;根据所述排序结果,在所述订阅服务器集合中确定第一订阅服务器和目标订阅服务器;其中,所述目标订阅服务器已经订阅并存储有目标消息,所述目标消息为所述第一订阅服务器需要订阅的消息;
所述存储服务器,还被配置为向所述第一订阅服务器发送通知消息;
所述第一订阅服务器,被配置为在接收所述通知消息后,根据所述通知消息,从所述目标订阅服务器中订阅所述目标消息。
根据本公开实施例的另一方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述本公开实施例的提供的数据分发方法。
根据本公开实施例的另一方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述本公开实施例提供的数据分发方法。
本公开实施例提供的技术方案至少带来以下有益效果:
本公开实施例提供的数据分发方法、电子设备及存储介质,实现了某一订阅服务器能够从其他订阅服务器中订阅消息,降低了同一时刻访问存储服务器的订阅服务器数量,进一步的降低了同一时刻访问分布式消息队列系统的订阅服务器数量,有效分散了多个订阅服务器对分布式消息队列系统的订阅压力,大大降低了分布式消息队列系统的网络通信负载,并降低了机器资源的消耗。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据本公开的实施例示出的一种分布式消息队列系统的结构图;
图2是根据本公开的实施例示出的一种数据分发方法的流程图;
图3是根据本公开的实施例示出的另一种数据分发方法的流程图;
图4是根据本公开的实施例示出的另一种分布式消息队列系统的结构图;
图5是根据本公开的实施例示出的另一种分布式消息队列系统的结构图;
图6是根据本公开的实施例示出的一种数据分发装置的框图;
图7是根据本公开的实施例示出的另一种数据分发装置的框图;
图8是根据本公开的实施例示出的一种电子设备的框图;
图9是根据本公开的实施例示出的另一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下能够互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开所涉及的用户信息为经用户授权或者经过各方充分授权的信息。
在一些实施例中,A和/或B的含义包括:A和B,A,B这三种情况。
为了使本公开实施例更加清楚,首先对本公开实施例中数据分发方法的应用场景进行举例介绍。
参照图1,图1是根据本公开的实施例示出的一种分布式消息队列系统的结构图,如图1所示,该分布式消息队列系统包括存储服务器1和存储服务器2、订阅服务器1、订阅服务器2、订阅服务器3、订阅服务器4和生产服务器。
该分布式消息队列系统中,生产服务器根据本地配置文件中配置的存储服务器,将生产的消息发布到存储服务器中,并将本地配置文件中配置的消息队列的标识发布给存储服务器,由存储服务器根据消息队列的标识,将生产服务器发布的消息存储到对应的消息队列中。
其中,生产服务器在生成每个消息的过程中,同时生成该消息对应的时间点(也即消息的时间点),即生产服务器生成的每个消息中包括该消息对应的时间点。生产服务器在生成消息后,将生成的每个消息发送至存储服务器,存储服务器根据每个消息对应的时间点的先后顺序,对消息进行顺序存储。其中,时间点最早的(也即时间点最小的)的消息排在消息队列的最前面。
在一些实施例中,时间点中包括年、月、日、时、分、秒、毫秒等时间单位,本公开实施例对时间点的时间单位不进行限制。实际使用中,存储服务器、订阅服务器和生产服务器的数量根据需求设置,本公开实施例对此不做限制。
在数据分发过程中,每个订阅服务器根据本地配置文件中配置的存储服务器和消息队列的标识,从存储服务器订阅对应的消息队列中的消息,并消费订阅的消息(消费消息即使用消息)。其中,消息即数据,例如在推荐系统中,生产服务器从终端获取用户数据,并对获取的用户数据进行处理后生成日志(日志为消息的一种),将日志发送至存储服务器进行存储,存储服务器为存储日志的服务器,订阅服务器从存储服务器中订阅日志,并采用订阅的日志对模型进行训练,得到训练模型。
参照图1,生产服务器的本地配置文件中配置的存储服务器包括:存储服务器1和存储服务器2,与存储服务器1和存储服务器2对应的消息队列的标识为消息队列1,生产服务器向存储服务器1和存储服务器2分别发布消息,发布消息时携带消息队列的标识,存储服务器1和存储服务器2接收到生产服务器发布的消息后,根据消息对应的消息队列的标识,将消息存储到消息队列1中。
例如,生产服务器生成了1至30个消息,第一个消息对应的时间点为001,第二个消息对应的时间点为002,第三个消息对应的时间点为003,以此类推,第1至30个消息对应的时间点分别为001至030。生产服务器将时间点为001至030的30个消息随机的发送至存储服务器1或存储服务器2。
以将时间点为001至030的30个消息发送至存储服务器1为例,存储服务器1在接收到时间点为001至030的30个消息后,根据每个消息对应的时间点,按照时间点001至030的时间顺序,将接收到的消息顺序存储到存储服务器1的消息队列1中。
同理,生产服务器生成时间点为031至060的30个消息后,随机的将时间点为031至060的30个消息发送至存储服务器1或存储服务器2。以将时间点为031至060的30个消息发送至存储服务器2为例,则由存储服务器2将时间点为031至060的30个消息存储到存储服务器2的消息队列1中。
若存在消息队列2,则存储服务器1和存储服务器2存储消息队列2中消息的过程与消息队列1相同,在此不做赘述。
例如,假设订阅服务器1、订阅服务器2、订阅服务器3和订阅服务器4的本地配置文件中配置的消息队列都为消息队列1,则订阅服务器1、订阅服务器2、订阅服务器3和订阅服务器4分别从存储服务器1中订阅消息队列1中的消息。其中,该消息是时间点为001至030的30个消息中的至少一个;从存储服 务器2中订阅消息队列1中的消息。其中,该消息是时间点为031至060的30个消息中的至少一个。
实际使用中,生产服务器生产消息并发布的过程,存储服务器存储消息的过程,以及订阅服务器从存储服务器订阅消息的过程,在此不做赘述。
针对存储服务器,存储服务器会维护块(block)、消息队列和订阅时间戳。其中,block是固定大小的内存空间,用于顺序存储多条消息;消息队列是由多个block组成的链表,block按照创建时间有序排列,一个分布式消息队列系统同时支持多个消息队列。在一些实施例中,存储服务器还为消息队列维护了二叉树,例如,订阅同一个消息队列的多个订阅服务器会组织成一个二叉树,订阅时间戳越新的订阅服务器,其在完全二叉树中的节点位置越靠近根节点。
在一些实施例中,针对多个订阅服务器订阅同一消息队列的情况,一个订阅服务器在订阅该消息队列中的消息时,会先尝试从其父节点对应的订阅服务器订阅消息;如果订阅失败,会继续尝试从其祖先节点对应的订阅服务器订阅消息;如果再次订阅失败,最后才会从存储服务器订阅消息。另外,订阅服务器会将订阅到的消息缓存在本地,以供其子孙节点订阅。这种将订阅到的消息缓存起来供其他订阅服务器订阅的方式,有效分散了多个订阅服务器对分布式消息队列系统的订阅压力,大大降低了分布式消息队列系统的网络通信负载,并降低了机器资源的消耗。
图2是根据本公开的实施例示出的一种数据分发方法的流程图,参照图2,本公开实施例提供的数据分发方法适用于分布式消息队列系统,该分布式消息队列系统包括存储服务器和订阅服务器集合,该数据分发方法适用于大规模数据的分发,以降低分布式消息队列系统与多个订阅服务器同时进行网络通信时的通信负载,并降低分布式消息队列系统的机器资源消耗的情况。
在一些实施中,本公开实施例提供的数据分发方法由数据分发装置执行,该数据分发装置通常以软件和/或硬件的方式实现,该数据分发装置部署于该分布式消息队列系统中的每个存储服务器中,该方法包括以下步骤:
步骤201、获取订阅服务器集合中每个订阅服务器的订阅时间戳。
其中,订阅时间戳用于指示订阅服务器的订阅进度,标志订阅服务器已经订阅的消息,以及下次需要订阅的消息。在一些实施例中,订阅时间戳为订阅服务器每次订阅的消息中,每个消息的时间点中最大的时间点。
例如,结合图1举例,若订阅服务器1本次订阅的消息的时间点为001至005的5个消息(订阅服务器1或者从存储服务器1中订阅,或者从其他已经订阅并存储这5个消息的订阅服务器中订阅),则订阅服务器1本次订阅的消息中,最大时间点为005,确定订阅服务器1的订阅时间戳为005。该订阅时间戳005,用于指示订阅服务器1已经订阅或正在订阅消息队列1中时间点为005,以及时间点005之前的消息(时间点001至004分别对应的消息),以及订阅服务器1下次需要从时间点006开始,订阅时间点006,以及时间点006之后的消息。
本公开实施例中,存储服务器获取订阅服务器集合中,每个订阅服务器的订阅时间戳,以确定每个订阅服务器的订阅进度。例如,结合图1举例,若订阅服务器2订阅时间点为006至010的5个消息,订阅服务器3订阅时间点为011至015的5个消息,订阅服务器4订阅时间点为016至020的5个消息,存储服务器1分别获取订阅服务器1的订阅时间戳005,以及订阅服务器2的订阅时间戳010,订阅服务器3的订阅时间戳015,订阅服务器4的订阅时间戳020,以分别确定每个订阅服务器的订阅进度。
在一些实施例中,订阅服务器从存储服务器1和存储服务器2订阅消息。在另一些实施例中,订阅服务器从其他订阅服务器订阅消息。存储服务器采用任意的方法获取每个订阅服务器的订阅时间戳,本公开实施例对此不做限制。
步骤202,根据每个订阅服务器的订阅时间戳,从订阅服务器集合中确定第一订阅服务器,并确定第一订阅服务器的目标订阅服务器。
其中,第一订阅服务器从其他订阅服务器中订阅消息。目标订阅服务器已经订阅并存储了第一订阅服务器需要订阅的消息。
本公开实施例中,存储服务器在获取到每个订阅服务器的订阅时间戳后,根据每个订阅服务器的订阅时间戳,确定每个订阅服务器的订阅进度,根据每个订阅服务器的订阅进度,从订阅服务器集合中确定第一订阅服务器,并确定第一订阅服务器的目标订阅服务器。
例如,结合步骤201,订阅服务器1已经订阅时间点为001至005的消息,订阅服务器1下次需要订阅时间点为006至010的5个消息,此时订阅服务器2、订阅服务器3和订阅服务器4都已经订阅并存储了时间点为006至010的5个消息,则订阅服务器1从订阅服务器2、订阅服务器3和订阅服务器4中订阅时间点为006至010的消息。此时存储服务器1确定订阅服务器1为第一订阅服 务器,同时确定订阅服务器1的目标订阅服务器为:订阅服务器2、订阅服务器3和订阅服务器4中的至少一个。
同理,订阅服务器2下次从订阅服务器3和订阅服务器4中订阅时间点为011至015的5个消息,则存储服务器1确定订阅服务器2为第一订阅服务器,并确定订阅服务器2的目标订阅服务器为订阅服务器3和/或订阅服务器4;
订阅服务器3下次从订阅服务器4中订阅时间点为016至020的5个消息,则存储服务器1确定订阅服务器3为第一订阅服务器,并确定订阅服务器3的目标订阅服务器为订阅服务器4。
因为订阅服务器4下次需要订阅时间点为021至025的5个消息,订阅服务器1、订阅服务器2和订阅服务器3均未订阅并存储时间点为021至025的5个消息,因此订阅服务器4不作为第一订阅服务器。
实际使用中,为每个第一订阅服务器确定一个或多个目标订阅服务器,例如,只为每个第一订阅服务器确定一个目标订阅服务器。其中,为第一订阅服务器确定的目标订阅服务器的数量根据需求设置,本公开实施例对此不做限制。
步骤203,通知第一订阅服务器从目标订阅服务器中订阅消息。
本公开实施例中,存储服务器在确定第一订阅服务器,并确定第一订阅服务器的目标订阅服务器后,通知第一订阅服务器从与其对应的目标订阅服务器中订阅消息。
例如,结合步骤202,订阅服务器1为第一订阅服务器时,存储服务器1通知订阅服务器1从目标订阅服务器(订阅服务器2、订阅服务器3和订阅服务器4中的任意一个)中订阅时间点为006至010的5个消息。
实际使用中,存储服务器采用任意的方法通知第一订阅服务器从目标订阅服务器中订阅消息,本公开实施例对此不做限制。
需要说明的是,本公开实施例中订阅服务器4不作为第一订阅服务器,此时订阅服务器4直接从存储服务器1和存储服务器2中订阅消息。
存储服务器2与存储服务器1相同,如图1所示,存储服务器2针对订阅服务器集合确定第一订阅服务器,确定第一订阅服务器的目标订阅服务器,并通知第一订阅服务器从与其对应的目标订阅服务器中订阅消息,存储服务器2执行上述方法的过程与存储服务器1相同,在此不做赘述。
本公开实施例实现了第一订阅服务器从目标订阅服务器中订阅消息,降低了同一时刻访问存储服务器的订阅服务器数量,进一步的降低了同一时刻访问 分布式消息队列系统的订阅服务器数量,有效分散了多个订阅服务器对分布式消息队列系统的订阅压力,大大降低了分布式消息队列系统的网络通信负载,并降低了机器资源的消耗。
图3是根据本公开的实施例示出的另一种数据分发方法的流程图,该方法包括以下步骤:
步骤301,存储服务器获取订阅服务器集合中每个订阅服务器的订阅时间戳。
本公开实施例中,存储服务器获取订阅服务器集合中每个订阅服务器的订阅时间戳,通过以下方式实现:
方式一:接收订阅服务器发送的订阅请求,根据该订阅请求,确定订阅服务器的订阅时间戳。
本公开实施例中,订阅服务器从存储服务器订阅消息时,向存储服务器发送订阅请求,请求订阅存储服务器存储的消息队列中的消息。
在一些实施例中,该订阅请求中包括:订阅消息的起始时间点和订阅消息的数量。存储服务器接收到订阅请求后,解析该订阅请求,确定订阅服务器需要订阅的具体消息。
例如,结合步骤201至步骤203,若时间点为001至005的5个消息由订阅服务器1从存储服务器1中订阅,则订阅服务器1向存储服务器1发送订阅请求。在一些实施例中,该订阅请求中包括起始时间点001,以及需要订阅的消息的数量5。存储服务器1接收到该订阅请求后,解析该订阅请求,确定订阅服务器1需要订阅的是从时间点001至时间点005的5个消息。此时,存储服务器1确定订阅服务器1的订阅时间戳为005,该订阅时间戳005用于指示订阅服务器1正在订阅时间点为005,以及时间点005之前的消息。在接到该订阅请求后,存储服务器1向订阅服务器1发送时间点为001至005的5个消息。
同理,存储服务器1根据订阅服务器2、订阅服务器3和订阅服务器4分别发送的订阅请求,分别确定订阅服务器2、订阅服务器3和订阅服务器4的订阅时间戳。
需要说明的是,如果订阅服务器3和订阅服务器4未向存储服务器1发送订阅请求,订阅服务器3和订阅服务器4的订阅时间戳通过下述方式二确定。
其中,订阅服务器向存储服务器发送订阅请求,存储服务器解析该订阅请求,根据订阅请求向订阅服务器发送对应消息的过程,本公开实施例对此不做限制。
方式二:接收订阅服务器发送的反馈信息,根据该反馈信息,确定订阅服务器的订阅时间戳。
反馈信息是订阅服务器从其他订阅服务器中订阅消息后,向存储服务器发送的;反馈信息包括订阅时间戳。
本公开实施例中,当订阅服务器从其他订阅服务器中订阅消息后,订阅服务器根据已经订阅的消息,确定自身的订阅时间戳,并向存储服务器发送包括该订阅时间戳的反馈信息。
例如,结合步骤201至步骤203,订阅服务器1从订阅服务器2、订阅服务器3和订阅服务器4中的任何一个订阅到消息后,该消息的时间点为006至010,订阅服务器1确定已经订阅并存储了时间点为006至010的5个消息,确定自身的订阅时间戳为010,并发送包括订阅时间戳010的反馈信息至存储服务器1和存储服务器2。此时存储服务器1根据订阅服务器1发送的反馈信息,确定订阅服务器1的订阅时间戳。
存储服务器2确定订阅服务器1、订阅服务器2、订阅服务器3和订阅服务器4的订阅时间戳的过程与订阅服务器1相同,在此不作赘述。
步骤302,存储服务器根据每个订阅服务器的订阅时间戳,从订阅服务器集合中确定第一订阅服务器,并确定第一订阅服务器的目标订阅服务器。
本公开实施例中,存储服务器根据每个订阅服务器的订阅时间戳,从订阅服务器集合中确定第一订阅服务器,并确定第一订阅服务器的目标订阅服务器,包括:根据每个订阅服务器的订阅时间戳,对订阅服务器集合中的订阅服务器进行排序,得到排序结果。根据该排序结果,从订阅服务器集合中确定第一订阅服务器,并确定第一订阅服务器的目标订阅服务器。
在一些实施例中,该排序结果为二叉树排序结果。
本公开实施例中,存储服务器根据订阅服务器集合中每个订阅服务器的订阅时间戳,对订阅服务器进行排序,得到二叉树排序结果。
例如,结合步骤301,参照图1,当存储服务器1确定订阅服务器1、订阅服务器2、订阅服务器3和订阅服务器4的订阅时间戳分别为005、010、015和020后,以每个订阅服务器的订阅时间戳为二叉树的关键值,建立二叉树,二叉 树中的每个节点对应订阅服务器集合中的一个订阅服务器。其中,二叉树中每个子节点对应的订阅服务器的订阅时间戳,小于父节点对应的订阅服务器的订阅时间戳。如图1所示,在二叉树排序结果中,根节点对应的订阅服务器4的订阅时间戳最大,子节点对应的订阅服务器2和订阅服务器3的订阅时间戳,均小于其父节点(根节点)对应的订阅服务器4的订阅时间戳。子节点对应的订阅服务器1的订阅时间戳,小于其父节点对应的订阅服务器3的订阅时间戳。
在另一些实施例中,当排序结果为二叉树排序结果时,根据该排序结果,从订阅服务器集合中确定第一订阅服务器,并确定第一订阅服务器的目标订阅服务器,包括:根据二叉树排序结果,确定除了第二订阅服务器之外的其他订阅服务器,将其他订阅服务器作为第一订阅服务器;从指定节点的祖先节点中,选择部分或全部祖先节点对应的订阅服务器,将选择的祖先节点作为第一订阅服务器的目标订阅服务器。其中,第二订阅服务器为二叉树根节点对应的订阅服务器;指定节点与第一订阅服务器对应。
本公开实施例中,当排序结果为二叉树排序结果时,因为根节点对应的订阅服务器的订阅时间戳最大,其他订阅服务器都能够从根节点对应的订阅服务器中订阅消息,而根节点对应的订阅服务器只能从存储服务器中订阅消息。因此,确定除根节点对应的订阅服务器之外的其他订阅服务器为第一订阅服务器。如图1所示,确定除根节点对应的订阅服务器4之外的订阅服务器1、订阅服务器2和订阅服务器3,为第一订阅服务器。
在确定第一订阅服务器的目标订阅服务器时,因为第一订阅服务器对应的二叉树节点的祖先节点中,每个祖先节点对应的订阅服务器的订阅时间戳,均大于该节点对应的订阅服务器的订阅时间戳。因此,从第一订阅服务器对应的二叉树节点的祖先节点中,选择至少一个祖先节点对应的订阅服务器,作为第一订阅服务器的目标订阅服务器。
如图1所示,对于订阅服务器1,从订阅服务器1对应节点的祖先节点中(订阅服务器2、订阅服务器3和订阅服务器4分别对应的节点),选择至少一个祖先节点对应的订阅服务器(订阅服务器2、订阅服务器3和订阅服务器4)作为订阅服务器1的目标订阅服务器。
同理,对于订阅服务器2和订阅服务器3,选择根节点对应的订阅服务器4,作为订阅服务器2和订阅服务器3目标订阅服务器。
本公开实施例中,当排序结果为二叉树排序结果时,确定第一订阅服务器对应节点的祖先节点,以该祖先节点对应的订阅服务器,作为第一订阅服务器的目标订阅服务器,在确定目标订阅服务器的过程中,避免了同一个订阅服务器作为多个第一订阅服务器的目标订阅服务器,降低了该订阅服务器的通信负载和机器资源损耗。例如,订阅服务器3同时作为订阅服务器1和订阅服务器2的目标订阅服务器,只以订阅服务器2对应的订阅服务器4,作为订阅服务器2的目标订阅服务器,避免了订阅服务器3同时作为订阅服务器1和订阅服务器2的目标订阅服务器,降低了订阅服务器3的通信负载和资源损耗。其中,订阅服务器4对应节点,是订阅服务器4对应节点的祖先节点。
在另一些实施例中,当排序结果为二叉树排序结果时,根据该排序结果,从订阅服务器集合中确定第一订阅服务器,并确定第一订阅服务器的目标订阅服务器,包括:根据二叉树排序结果,确定除了第二订阅服务器之外的其他订阅服务器,将其他订阅服务器作为第一订阅服务器,将指定节点的父节点作为目标节点,将目标节点对应的订阅服务器,作为第一订阅服务器的目标订阅服务器。
例如,参见图1,对于订阅服务器1,将订阅服务器1对应的二叉树节点的父节点作为目标节点(订阅服务器3对应的节点),将目标节点对应的订阅服务器3,作为订阅服务器1的目标订阅服务器。
同理,对于订阅服务器2,确定订阅服务器2对应的二叉树节点的父节点(根节点)作为目标节点,将目标节点对应的订阅服务器4,作为订阅服务器2的目标订阅服务器。
本公开实施例中,当排序结果为二叉树排序结果时,以第一订阅服务器对应的二叉树节点的父节点作为目标节点,以目标节点对应的订阅服务器作为第一订阅服务器的目标订阅服务器,在确定目标订阅服务器的过程中,不仅避免了同一个订阅服务器作为多个第一订阅服务器的目标订阅服务器,降低了该订阅服务器的通信负载和机器资源损耗,而且能够快速的确定第一订阅服务器的目标订阅服务器,提高整个系统的运行效率。
如图1所示,对于订阅服务器1,只以订阅服务器2为目标订阅服务器,对于订阅服务器2和订阅服务器3,分别只以订阅服务器4为目标订阅服务器。当订阅服务器数量较大时,每个第一订阅服务器均只对应一个目标订阅服务器,能够快速的确定每个第一订阅服务器的目标订阅服务器,同时每个目标订阅服 务器只作为对应节点的子节点的目标订阅服务器,降低了每个目标订阅服务器的通信负载。例如,订阅服务器4只作为订阅服务器2和订阅服务器3的目标订阅服务器,订阅服务器3只作为订阅服务器1的目标订阅服务器。
在一些实施例中,当排序结果为二叉树时,该二叉树为完全二叉树或满二叉树。完全二叉树中,除最后一层外其他各层都达到该层节点的最大数,最后一层中所有节点都全部靠左排,而满二叉树中所有层的节点数都达到最大。完全二叉树或满二叉树的结构完整,能够快速方便的为每个第一订阅服务器确定目标订阅服务器。
在一些实施例中,目标订阅服务器对应指定节点的祖先节点;或,目标订阅服务器对应指定节点的父节点;指定节点与第一订阅服务器对应;其中,第一订阅服务器执行如下步骤:从父节点对应的目标订阅服务器中订阅目标消息;基于从父节点对应的目标订阅服务器中未订阅到目标消息,则从祖先节点对应的目标订阅服务器中订阅目标消息;基于从祖先节点对应的目标订阅服务器中未订阅到目标消息,则从存储服务器中订阅目标消息。
其中,存储服务器根据二叉树排序结果,确定对应二叉树根节点的第二订阅服务器;之后,根据第二订阅服务器确定第一订阅服务器,第一订阅服务器为除了第二订阅服务器之外的其他订阅服务器;之后,根据第一订阅服务器对应的指定节点,确定目标订阅服务器,其中,目标订阅服务器为指定节点的祖先节点或父节点对应的订阅服务器。
在一些实施例中,该排序结果为线性排序结果。
本公开实施例中,存储服务器根据订阅服务器集合中每个订阅服务器的订阅时间戳,对订阅服务器进行排序,得到线性排序结果。例如,结合步骤201至步骤203,参照图4,图4是根据本公开的实施例示出的另一种分布式消息队列系统的结构图,当存储服务器1确定订阅服务器1、订阅服务器2、订阅服务器3和订阅服务器4的订阅时间戳分别为005、010、015和020后,根据确定的订阅时间戳,对订阅服务器1、订阅服务器2、订阅服务器3和订阅服务器4进行排序,得到线性排序结果。
如图4所示,得到的线性排序结果中,订阅时间戳从大到小,订阅服务器4>订阅服务器3>订阅服务器2>订阅服务器1。存储服务器2根据订阅时间戳,对订阅服务器1、订阅服务器2、订阅服务器3和订阅服务器4进行排序,得到线性排序结果的过程与存储服务器1相同,在此不做赘述。
实际使用中,线性排序结果为顺序或者逆序。例如,存储服务器1根据订阅时间戳,确定的线性排序结果为,订阅服务器1<订阅服务器2<订阅服务器3<订阅服务器4。
在另一些实施例中,当排序结果为线性排序结果时,根据排序结果,从订阅服务器集合中确定第一订阅服务器,并确定第一订阅服务器的目标订阅服务器,包括:根据线性排序结果,确定除了第三订阅服务器之外的其他订阅服务器,将其他订阅服务器作为第一订阅服务器;从订阅服务器集合中选择订阅服务器,将选择的订阅服务器作为第一订阅服务器的目标订阅服务器。其中,第三订阅服务器为最大订阅时间戳对应的订阅服务器,选择的订阅服务器的订阅时间戳大于第一订阅服务器的订阅时间戳。即,存储服务器先根据每个订阅服务器的订阅时间戳,确定订阅服务器的线性排序结果;之后,根据线性排序结果,确定最大订阅时间戳对应的第三订阅服务器;之后根据第三订阅服务器确定第一订阅服务器,其中,第一订阅服务器为除了第三订阅服务器之外的其他订阅服务器;之后,根据第一订阅服务器,从订阅服务器集合中确定目标订阅服务器,目标订阅服务器为大于第一订阅服务器的订阅时间戳的订阅服务器。
如图4所示,确定除订阅服务器4外的订阅服务器1、订阅服务器2和订阅服务器3,为第一订阅服务器。另外,如图4所示,对于订阅服务器1,选择订阅服务器2、订阅服务器3和订阅服务器4中的至少一个,作为目标订阅服务器。对于订阅服务器2,选择订阅服务器3或订阅服务器4作为目标订阅服务器。对于订阅服务器3,直接选择订阅服务器4作为目标订阅服务器。
本公开实施例中,能够更快的确定第一订阅服务器,并确定第一订阅服务器的目标订阅服务器,同时能够为每个第一订阅服务器快速的确定多个目标订阅服务器。
在一些实施例中,当目标订阅服务器为多个时,确定第一订阅服务器的目标订阅服务器之后,还包括:根据排序结果,确定每个目标订阅服务器的优先级。相应的,通知第一订阅服务器从目标订阅服务器中订阅消息,包括:向第一订阅服务器发送每个目标订阅服务器的优先级,通知第一订阅服务器根据每个目标订阅服务器的优先级,从目标订阅服务器订阅消息。
本公开实施例中,第一订阅服务器按照目标订阅服务器的优先级,顺序选择目标订阅服务器,从选择的目标订阅服务器中订阅消息。其中,目标订阅服务器的优先级越高,订阅时间戳越小。例如,结合步骤301至步骤302,在线性 排序结果中,第一订阅服务器为订阅服务器1时,存储服务器1根据线性排序结果,确定订阅服务器1的目标订阅服务器为订阅服务器2、订阅服务器3和订阅服务器4。由于在线性排序结果中,按照订阅时间戳的大小,订阅服务器4>订阅服务器3>订阅服务器2,则确定订阅服务器2的优先级高于订阅服务器3,订阅服务器3的优先级高于订阅服务器4。
相同的,在二叉树排序结果中,根据每个目标订阅服务器在二叉树中的节点位置,确定目标订阅服务器的优先级。例如,第一订阅服务器为订阅服务器1时,订阅服务器1的目标订阅服务器中,订阅服务器4对应节点为订阅服务器2和订阅服务器3对应节点的父节点,则确定订阅服务器2和订阅服务器3的优先级高于订阅服务器4,在一些实施例中,订阅服务器2和订阅服务器3的优先级相同。
本公开实施例中,根据排序结果,设置目标订阅服务器的优先级,如果确定了每个目标订阅服务器对应的优先级,当目标订阅服务器为多个时,使第一订阅服务器按照优先级,顺序从各目标订阅服务器订阅消息。优先级的设置能够避免同时作为多个第一订阅服务器的目标订阅服务器时,通信负载过高和机器资源损耗的问题。
例如,参照图4,在线性排序中,订阅服务器4同时为订阅服务器1、订阅服务器2和订阅服务器3的目标订阅服务器,若订阅服务器1、订阅服务器2和订阅服务器3同时从订阅服务器4中订阅消息,则会使得订阅服务器4需要同时与订阅服务器1、订阅服务器2和订阅服务器3进行通信,导致订阅服务器4的通信负载过高。此时,按照优先级顺序,使得订阅服务器1按照优先级顺序,首先从订阅服务器2订阅消息,订阅服务器2按照优先级顺序首先从订阅服务器3订阅消息,避免了订阅服务器1、订阅服务器2和订阅服务器3同时从订阅服务器4订阅消息,同时与订阅服务器4通信,降低了订阅服务器4的通信负载。
需要说明的是,根据每个订阅服务器的订阅时间戳,对订阅服务器集合中的订阅服务器进行排序,得到的排序结果是任意能够确定第一订阅服务器,以及第一订阅服务器的目标订阅服务器排序结果,本公开实施例对排序结果的具体形式不做限制。
步骤303,存储服务器通知第一订阅服务器从目标订阅服务器中订阅消息。
即向第一订阅服务器发送通知消息,该通知消息用于指示第一订阅服务器从目标订阅服务器中订阅目标消息。其中,目标订阅服务器已经订阅并存储有目标消息,目标消息为第一订阅服务器需要订阅的消息。
在一些实施例中,通知第一订阅服务器从目标订阅服务器中订阅消息,包括:向第一订阅服务器发送目标订阅服务器的标识信息,以使第一订阅服务器根据标识信息从目标订阅服务器中订阅消息。
本公开实施例中,目标订阅服务器的标识信息为唯一标识目标订阅服务器的信息。在一些实施例中,标识信息中包括目标订阅服务器的IP地址,结合步骤301至步骤302,存储服务器1在确定订阅服务器1为第一订阅服务器,并确定订阅服务器1的目标订阅服务器为订阅服务器2、订阅服务器3和订阅服务器4后,将IP地址:192.168.2.3(订阅服务器2的IP地址)、192.168.2.4(订阅服务器3的IP地址)和192.168.2.5(订阅服务器4的标识)发送至订阅服务器1,以通知订阅服务器1下次从IP地址192.168.2.3、192.168.2.4和192.168.2.4分别对应的订阅服务器中,订阅时间点为006至010的5个消息。
在一些实施例中,该标识信息中还包括目标订阅服务器的优先级标识。
本公开实施例中,存储服务器向第一订阅服务器发送标识信息中包括:每个目标订阅服务器的优先级标识。例如,结合步骤303,存储服务器在确定订阅服务器1的每个目标订阅服务器的优先级后,设置每个目标订阅服务器的优先级标识。例如,设置订阅服务器4的优先级为3、订阅服务器3的优先级为2,订阅服务器2的优先级标识为1。优先级标识的设置,本公开实施例对此不做限制。
实际使用时,标识信息中包括的具体数据,以及标识信息的具体形式根据需求进行设置,本公开实施例对此不做限制。
步骤304,第一订阅服务器接收存储服务器发送的通知。
本公开实施例中,第一订阅服务器接收并解析存储服务器发送的通知,根据该通知确定目标订阅服务器,以从目标订阅服务器中订阅消息。
例如,结合步骤303,订阅服务器1接收到存储服务器1发送的标识信息,该标识信息中包括IP地址,根据IP地址确定目标订阅服务器为订阅服务器2、订阅服务器3和订阅服务器4。对应的,当存储服务器1发送的标识信息中还包括每个目标订阅服务器对应的优先级标识时,订阅服务器1同时确定每个目标订阅服务器的优先级。
实际使用时,第一订阅服务器接收存储服务器发送的通知,并解析的过程可参照服务器接收信息并解析的过程,本公开实施例对此不做限制。
步骤305,第一订阅服务器根据通知从目标订阅服务器中订阅消息。
本公开实施例中,第一订阅服务器在接收到存储服务器发送的通知,确定目标订阅服务器时,向目标订阅服务器发送订阅请求,以订阅并存储消息。
例如,结合步骤304,订阅服务器1确定目标订阅服务器为订阅服务器2、订阅服务器3和订阅服务器4,并在确定订阅服务器2、订阅服务器3和订阅服务器4分别对应的IP地址后,从订阅服务器2、订阅服务器3和订阅服务器4中选择任意一个,从中订阅消息,直至订阅到时间点为006至010的5个消息,并将订阅到的消息进行存储。
相应的,如果标识信息中还包括每个订阅服务器对应的优先级标识,则订阅服务器1同时还会确定每个目标订阅服务器的优先级。此时,订阅服务器1根据优先级,首先从订阅服务器2订阅消息,若未从订阅服务器2订阅到消息,则从订阅服务器3订阅消息,若未从订阅服务器3订阅到消息,则订阅服务器1直接从订阅服务器4中订阅消息。第一订阅服务器根据优先级标识,从多个目标订阅服务器中订阅消息的过程可参照优先级的使用方法,本公开实施例对此不做限制。
在一些实施例中,第一订阅服务器若从目标订阅服务器中订阅到消息,则根据订阅到的消息确定反馈信息,向存储服务器发送反馈信息。本公开实施例中,第一订阅服务器从目标订阅服务器中订阅到消息,根据订阅到的消息确定反馈信息,向存储服务器发送反馈信息的过程可参考步骤301,在此不做赘述。
本公开实施例中,若第一订阅服务器未从目标订阅服务器中订阅到消息,则向存储服务器发送订阅请求,从存储服务器中订阅消息。例如,结合步骤301至步骤305,若订阅服务器1未从订阅服务器2、订阅服务器3和订阅服务器4中订阅到时间点为006至010的5个消息,则订阅服务器1向存储服务器1或存储服务器2发送订阅请求(订阅服务器1并不确定时间点为006至010的具体存储位置,因此随机的向存储服务器1或存储服务器2发送订阅请求),以订阅时间点为006至010的5个消息。
需要说明的是,每个存储服务器针对其存储的每个消息队列,确定订阅该消息队列中消息的订阅服务器集合,在该订阅服务器集合中确定第一订阅服务器,以及第一订阅服务器的目标订阅服务器。例如,参照图4,存储服务器1存 储有消息队列1和消息队列2,订阅服务器1、订阅服务器2、订阅服务器3和订阅服务器4订阅了消息队列1中消息,存储服务器在上述4个订阅服务器中确定第一订阅服务器,并确定每个第一订阅服务器的第一订阅对象信息。同理,订阅服务器A、订阅服务器B、订阅服务器C和订阅服务器D订阅了消息队列2中的消息,存储服务器在上述4个订阅服务器中确定第一订阅服务器,并确定每个第一订阅服务器的第一订阅对象信息。
存储服务器2在订阅消息队列1和消息队列2中消息的订阅服务器集合中,分别确定第一订阅服务器,以及第一订阅服务器的第一订阅对象信息的过程,与存储服务器1相同,在此不做赘述。
本公开实施例实现了某一订阅服务器从其他订阅服务器中订阅消息队列中的消息,降低了同一时刻访问存储服务器的订阅服务器数量,进一步的降低了同一时刻访问分布式消息队列系统的订阅服务器数量,有效分散了多个订阅服务器对分布式消息队列系统的订阅压力,大大降低了分布式消息队列系统的网络通信负载,并降低了机器资源的消耗。
在一些实施例中,订阅服务器在订阅到消息后,采用分片存储的方式,将来自不同存储服务器的消息存储到不同的存储区域中(存储区域例如为分片)。例如,订阅服务器1对应存储服务器1的分片1,以及对应存储服务器2的分片2。订阅服务器1将从存储服务器1订阅的消息队列1中时间点为001至005的5个消息存储到分片1中,将从订阅服务器2订阅的消息队列1中时间点为006至010的5个消息存储到分片1中,将从订阅服务器3订阅的消息队列1中时间点为011至015的5个消息存储到分片1中,将从订阅服务器4订阅的消息队列1中时间点为016至020的5个消息存储到分片1中。结合图1举例可知,时间点为001至020的20个消息均来源于存储服务器1。
同理,订阅服务器1将从订阅服务器2、订阅服务器3、订阅服务器4中订阅的消息存储到分片2中,其中,该消息来自存储服务器2。或者,订阅服务器1将直接从存储服务器2中订阅的消息存储到分片2中。其中,该消息的时间点为0031至060的。需要说明的是,实际使用中,分片的数量根据存储服务器的数量进行设置,每个分片对应一个存储服务器。
相应的,订阅服务器1订阅来自存储服务器1的消息队列1中的消息时,分别从订阅服务器2的分片1、订阅服务器3的分片1和订阅服务器4的分片1中,订阅消息队列1中的消息。其中,分片1中的消息为订阅服务器2、订阅服 务器3和订阅服务器4分别从存储服务器1订阅的消息队列1中的消息,或者从其他订阅服务器的分片1中订阅的消息。。
同理,订阅服务器1订阅来自存储服务器2的消息队列1的消息时,分别从订阅服务器2的分片2、订阅服务器3的分片2和订阅服务器4的分片2中,订阅消息队列1中的消息。其中,分片2中的消息为订阅服务器2、订阅服务器3和订阅服务器4分别从存储服务器2订阅的消息队列1中的消息,或者从其他订阅服务器的分片2中订阅的消息。订阅服务器2、订阅服务器3和订阅服务器4从其他订阅服务器订阅消息并保存的过程与订阅服务器1相同,在此不做赘述。
本公开实施例中,订阅服务器采用分片存储的方式,将来自不同存储服务器的消息存储到对应的分片中,方便了订阅服务器对消息的管理。
在一些实施例中,参见图5,生产服务器生成的消息发布到存储服务器中,其中,存储服务器根据生产服务器发送的消息队列的标识,将生产服务器发布的消息存储到对应的消息队列中。其中,订阅服务器1向存储服务器发送订阅请求,以直接从存储服务器中订阅该消息队列中的消息,并将订阅的消息存储在某一分片(比如分片3)中以供其他订阅服务器订阅使用。而订阅服务器2和订阅服务器3直接从订阅服务器1中订阅该消息队列中的消息,并同样存储在分片3中;之后订阅服务器2和订阅服务器3向存储服务器发送反馈消息,以告知存储服务器各自的订阅时间戳。
在一些实施例中,生产服务器在发布消息时,会随机选取一个分片对应的存储服务器,并将发布的消息写入到这个存储服务器。另外,订阅服务器在订阅消息时,分为如下两种情况:如果允许消息乱序,则订阅服务器随机选取一个分片对应的订阅时间戳,基于该订阅时间戳开始订阅消息;如果要求消息有序,则订阅服务器采用归并算法,每次都选取订阅时间戳最小的那条消息所在的分片进行订阅,本公开实施例对此不做限制。
参照图6,图6是根据本公开的实施例示出的一种数据分发装置的框图。该数据分发装置600应用于数据分发系统,数据分发系统包括存储服务器和订阅服务器集合,该装置设置于存储服务器,包括:获取模块601、确定模块602和通知模块603。
获取模块601被配置为获取订阅服务器集合中每个订阅服务器的订阅时间戳,订阅时间戳用于指示订阅服务器的订阅进度。
确定模块602被配置为根据每个订阅服务器的订阅时间戳,确定订阅服务器集合中的订阅服务器的排序结果;根据排序结果,在订阅服务器集合中确定第一订阅服务器和目标订阅服务器;其中,目标订阅服务器已经订阅并存储有目标消息,目标消息为第一订阅服务器需要订阅的消息。
通知模块603被配置为向第一订阅服务器发送通知消息,通知消息用于指示第一订阅服务器从目标订阅服务器中订阅目标消息。
本公开实施例实现了某一订阅服务器从其他订阅服务器中订阅消息队列中的消息,降低了同一时刻访问存储服务器的订阅服务器数量,进一步的降低了同一时刻访问分布式消息队列系统的订阅服务器数量,有效分散了多个订阅服务器对分布式消息队列系统的订阅压力,大大降低了分布式消息队列系统的网络通信负载,并降低了机器资源的消耗。
在一些实施例中,该获取模块601被配置为:
接收订阅服务器发送的订阅请求,根据订阅请求,确定订阅服务器的订阅时间戳;或者,
接收订阅服务器发送的反馈信息,根据反馈信息,确定订阅服务器的订阅时间戳;
其中,所述反馈信息是所述订阅服务器从所述目标订阅服务器中订阅消息后,向所述存储服务器发送的,所述反馈信息包括所述订阅时间戳。
在一些实施例中,确定模块602被配置为:根据每个订阅服务器的订阅时间戳,确定所述订阅服务器的二叉树排序结果;其中,目标订阅服务器对应指定节点的祖先节点;或,目标订阅服务器对应指定节点的父节点;指定节点与第一订阅服务器对应;
在一些实施例中,所述通知消息用于指示第一订阅服务器从所述父节点对应的目标订阅服务器中订阅所述目标消息;
基于从所述父节点对应的目标订阅服务器中未订阅到所述目标消息,则从所述祖先节点对应的目标订阅服务器中订阅所述目标消息;
基于从所述祖先节点对应的目标订阅服务器中未订阅到所述目标消息,则从所述存储服务器中订阅所述目标消息。
在一些实施例中,确定模块602被配置为:
根据所述二叉树排序结果,确定对应二叉树根节点的第二订阅服务器;
根据所述第二订阅服务器确定所述第一订阅服务器,所述第一订阅服务器为除了所述第二订阅服务器之外的其他订阅服务器;
根据所述第一订阅服务器对应的指定节点,确定所述目标订阅服务器,所述目标订阅服务器为所述指定节点的祖先节点或父节点对应的订阅服务器。
在一些实施例中,确定模块602被配置为:
根据每个订阅服务器的订阅时间戳,确定所述订阅服务器的线性排序结果;
在一些实施例中,确定模块602被配置为:
根据所述线性排序结果,确定最大订阅时间戳对应的第三订阅服务器;
根据所述第三订阅服务器确定所述第一订阅服务器,所述第一订阅服务器为除了所述第三订阅服务器之外的其他订阅服务器;
根据所述第一订阅服务器,从所述订阅服务器集合中确定所述目标订阅服务器,所述目标订阅服务器为大于所述第一订阅服务器的订阅时间戳的订阅服务器。
在一些实施例中,确定模块602还被配置为:
根据所述排序结果,确定每个目标订阅服务器的优先级;
其中,所述优先级用于指示所述第一订阅服务器根据每个目标订阅服务器的优先级,从所述目标订阅服务器订阅所述目标消息;
在一些实施例中,通知模块603被配置为:
向所述第一订阅服务器发送所述通知消息,所述通知消息中包括所述目标订阅服务器的标识信息,所述标识信息用于指示所述第一订阅服务器从所述目标订阅服务器中订阅所述目标消息。
参照图7,图7是根据本公开的实施例示出的另一种数据分发装置的框图。该数据分发装置700应用于数据分发系统,数据分发系统包括存储服务器和订阅服务器集合,该装置设置于订阅服务器,包括:接收模块701和订阅模块702。
该接收模块701被配置为接收存储服务器发送的通知消息;通知消息用于指示订阅服务器从目标订阅服务器中订阅消息;
其中,目标订阅服务器是存储服务器根据每个订阅服务器的订阅时间戳,确定订阅服务器集合中的订阅服务器的排序结果,并根据排序结果,从订阅服务器集合中确定订阅服务器后,为订阅服务器确定的;订阅时间戳用于指示每 个订阅服务器的订阅进度;目标订阅服务器已经订阅并存储有目标消息,目标消息为订阅服务器需要订阅的消息。
该订阅模块702被配置为根据通知消息,从目标订阅服务器中订阅目标消息。
本公开实施例实现了某一订阅服务器从其他订阅服务器中订阅消息队列中的消息,降低了同一时刻访问存储服务器的订阅服务器数量,进一步的降低了同一时刻访问分布式消息队列系统的订阅服务器的数量,有效分散了多个订阅服务器对分布式消息队列系统的订阅压力,大大降低了分布式消息队列系统的网络通信负载,并降低了对机器资源的消耗。
在一些实施例中,该订阅模块702还被配置为:
基于从目标订阅服务器中订阅到目标消息,则根据目标消息确定反馈信息,向存储服务器发送反馈信息;反馈消息中包括订阅服务器的订阅时间戳;
基于未从目标订阅服务器中订阅到目标消息,则向存储服务器发送订阅请求,从存储服务器中订阅目标消息。
在一些实施例中,若目标订阅服务器为多个,则通知消息中包括每个目标订阅服务器的标识信息和优先级;该订阅模块702被配置为:
向第一订阅服务器发送通知消息,通知消息中包括目标订阅服务器的标识信息,标识信息用于指示第一订阅服务器从目标订阅服务器中订阅目标消息。
在一些实施例中,排序结果为二叉树排序结果,目标订阅服务器对应指定节点的祖先节点;或,目标订阅服务器对应指定节点的父节点;指定节点与订阅服务器对应;
在一些实施例中,该订阅模块702被配置为:
从父节点对应的目标订阅服务器中订阅目标消息;
基于从父节点对应的目标订阅服务器中未订阅到目标消息,则从祖先节点对应的目标订阅服务器中订阅目标消息;
基于从祖先节点对应的目标订阅服务器中未订阅到目标消息,则从存储服务器中订阅目标消息。
本公开本公开的实施例示出一种数据分发系统。参照图1,该数据分发系统包括:一个订阅服务器和一个订阅服务器。
存储服务器,被配置为获取订阅服务器集合中每个订阅服务器的订阅时间戳,订阅时间戳用于指示每个订阅服务器的订阅进度;
存储服务器,还被配置为根据每个订阅服务器的订阅时间戳,确定订阅服务器集合中的订阅服务器的排序结果;根据排序结果,在订阅服务器集合中确定第一订阅服务器和目标订阅服务器;其中,目标订阅服务器已经订阅并存储有目标消息,目标消息为第一订阅服务器需要订阅的消息;
存储服务器,还被配置为向第一订阅服务器发送通知消息;
第一订阅服务器,被配置为在接收通知消息后,根据通知消息,从目标订阅服务器中订阅目标消息。
参照图8,图8是根据本公开的实施例示出的另一种电子设备的框图。该电子设备800包括:
处理器801。
用于存储该处理器801可执行指令的存储器802。
其中,该处理器801被配置为执行存储器802存储的可执行指令,以实现如图2或图3所示实施例中的数据分发方法。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器802,上述指令可由电子设备800的处理器801执行以完成图2或图3所示实施例中的方法。在一些实施例中,存储介质是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
参照图9,图9是根据本公开的实施例示出的另一种电子设备的框图。该电子设备900包括:
处理器901。
用于存储该处理器901可执行指令的存储器902。
其中,该处理器901被配置为执行存储器902存储的可执行指令,以实现如图2或图3所示实施例中的数据分发方法。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器902,上述指令可由电子设备900的处理器901执行以完成图2或图3所示实施例中的方法。在一些实施例中,存储介质是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (16)

  1. 一种数据分发方法,其特征在于,应用于数据分发系统,所述数据分发系统包括存储服务器和订阅服务器集合,所述方法执行于存储服务器,包括:
    获取所述订阅服务器集合中每个订阅服务器的订阅时间戳,所述订阅时间戳用于指示每个订阅服务器的订阅进度;
    根据所述每个订阅服务器的订阅时间戳,确定所述订阅服务器集合中的订阅服务器的排序结果;
    根据所述排序结果,在所述订阅服务器集合中确定第一订阅服务器和目标订阅服务器;其中,所述目标订阅服务器已经订阅并存储有目标消息,所述目标消息为所述第一订阅服务器需要订阅的消息;
    向所述第一订阅服务器发送通知消息,所述通知消息用于指示所述第一订阅服务器从所述目标订阅服务器中订阅所述目标消息。
  2. 根据权利要求1所述的方法,其特征在于,所述获取所述订阅服务器集合中每个订阅服务器的订阅时间戳,包括:
    接收所述订阅服务器发送的订阅请求,根据所述订阅请求,确定所述订阅服务器的订阅时间戳;或者,
    接收所述订阅服务器发送的反馈信息,根据所述反馈信息,确定所述订阅服务器的订阅时间戳;
    其中,所述反馈信息是所述订阅服务器从所述目标订阅服务器中订阅消息后,向所述存储服务器发送的,所述反馈信息包括所述订阅时间戳。
  3. 根据权利要求1所述的方法,其特征在于,所述根据所述每个订阅服务器的订阅时间戳,确定所述订阅服务器集合中的订阅服务器的排序结果,包括:
    根据所述每个订阅服务器的订阅时间戳,确定所述订阅服务器的二叉树排序结果;其中,所述目标订阅服务器对应指定节点的祖先节点;或,所述目标订阅服务器对应所述指定节点的父节点;所述指定节点与所述第一订阅服务器对应。
  4. 根据权利要求3所述的方法,其特征在于,所述通知消息用于指示第一订阅服务器从所述父节点对应的目标订阅服务器中订阅所述目标消息;
    基于从所述父节点对应的目标订阅服务器中未订阅到所述目标消息,则从所述祖先节点对应的目标订阅服务器中订阅所述目标消息;
    基于从所述祖先节点对应的目标订阅服务器中未订阅到所述目标消息,则从所述存储服务器中订阅所述目标消息。
  5. 根据权利要求3所述的方法,其特征在于,所述根据所述排序结果,在所述订阅服务器集合中确定第一订阅服务器和目标订阅服务器,包括:
    根据所述二叉树排序结果,确定对应二叉树根节点的第二订阅服务器;
    根据所述第二订阅服务器确定所述第一订阅服务器,所述第一订阅服务器为除了所述第二订阅服务器之外的其他订阅服务器;
    根据所述第一订阅服务器对应的指定节点,确定所述目标订阅服务器,所述目标订阅服务器为所述指定节点的祖先节点或父节点对应的订阅服务器。
  6. 根据权利要求1所述的方法,其特征在于,所述根据所述每个订阅服务器的订阅时间戳,确定所述订阅服务器集合中的订阅服务器的排序结果,包括:
    根据所述每个订阅服务器的订阅时间戳,确定所述订阅服务器的线性排序结果;
    所述根据所述排序结果,在所述订阅服务器集合中确定第一订阅服务器和目标订阅服务器,包括:
    根据所述线性排序结果,确定最大订阅时间戳对应的第三订阅服务器;
    根据所述第三订阅服务器确定所述第一订阅服务器,所述第一订阅服务器为除了所述第三订阅服务器之外的其他订阅服务器;
    根据所述第一订阅服务器,从所述订阅服务器集合中确定所述目标订阅服务器,所述目标订阅服务器为大于所述第一订阅服务器的订阅时间戳的订阅服务器。
  7. 根据权利要求1述的方法,其特征在于,所述确定所述目标订阅服务器包括:
    根据所述排序结果,确定每个目标订阅服务器的优先级;
    其中,所述优先级用于指示所述第一订阅服务器根据每个目标订阅服务器的优先级,从所述目标订阅服务器订阅所述目标消息。
  8. 根据权利要求1中所述的方法,其特征在于,所述向所述第一订阅服务器发送通知消息,包括:
    向所述第一订阅服务器发送所述通知消息,所述通知消息中包括所述目标订阅服务器的标识信息,所述标识信息用于指示所述第一订阅服务器从所述目标订阅服务器中订阅所述目标消息。
  9. 一种数据分发方法,其特征在于,应用于数据分发系统,所述数据分发系统包括存储服务器和订阅服务器集合,所述方法执行于订阅服务器,包括:
    接收所述存储服务器发送的通知消息;所述通知消息用于指示所述订阅服务器从目标订阅服务器中订阅消息;
    其中,所述目标订阅服务器是所述存储服务器根据每个订阅服务器的订阅时间戳,确定所述订阅服务器集合中的订阅服务器的排序结果,并根据所述排序结果,从所述订阅服务器集合中确定所述订阅服务器后,为所述订阅服务器确定的;所述订阅时间戳用于指示每个订阅服务器的订阅进度;所述目标订阅服务器已经订阅并存储有目标消息,所述目标消息为所述订阅服务器需要订阅的消息;
    根据所述通知消息,从所述目标订阅服务器中订阅所述目标消息。
  10. 根据权利要求9所述的方法,其特征在于,所述根据所述通知消息,从所述目标订阅服务器中订阅所述目标消息之后,还包括:
    基于从所述目标订阅服务器中订阅到所述目标消息,则根据所述目标消息确定反馈信息,向所述存储服务器发送所述反馈信息;所述反馈消息中包括所述订阅服务器的订阅时间戳;
    基于未从所述目标订阅服务器中订阅到所述目标消息,则向所述存储服务器发送订阅请求,从所述存储服务器中订阅所述目标消息。
  11. 根据权利要求9所述的方法,其特征在于,基于所述目标订阅服务器为多个,则所述通知消息中包括每个目标订阅服务器的标识信息和优先级;
    所述根据所述通知消息,从所述目标订阅服务器中订阅所述目标消息,包括:
    根据每个目标订阅服务器的标识信息和优先级,从所述目标订阅服务器中订阅所述目标消息。
  12. 根据权利要求10所述的方法,其特征在于,所述排序结果为二叉树排序结果,所述目标订阅服务器对应指定节点的祖先节点;或,所述目标订阅服务器对应所述指定节点的父节点;所述指定节点与所述订阅服务器对应。
  13. 根据权利要求12所述的方法,其特征在于,所述基于未从所述目标订阅服务器中订阅到所述目标消息,则向所述存储服务器发送订阅请求,从所述存储服务器中订阅所述目标消息,包括:
    从所述父节点对应的目标订阅服务器中订阅所述目标消息;
    基于从所述父节点对应的目标订阅服务器中未订阅到所述目标消息,则从所述祖先节点对应的目标订阅服务器中订阅所述目标消息;
    基于从所述祖先节点对应的目标订阅服务器中未订阅到所述目标消息,则从所述存储服务器中订阅所述目标消息。
  14. 一种数据分发系统,其特征在于,包括:存储服务器和订阅服务器;
    所述存储服务器,被配置为获取订阅服务器集合中每个订阅服务器的订阅时间戳,所述订阅时间戳用于指示每个订阅服务器的订阅进度;
    所述存储服务器,还被配置为根据每个订阅服务器的订阅时间戳,确定所述订阅服务器集合中的订阅服务器的排序结果;根据所述排序结果,在所述订阅服务器集合中确定第一订阅服务器和目标订阅服务器;其中,所述目标订阅服务器已经订阅并存储有目标消息,所述目标消息为所述第一订阅服务器需要订阅的消息;
    所述存储服务器,还被配置为向所述第一订阅服务器发送通知消息;
    所述第一订阅服务器,被配置为在接收所述通知消息后,根据所述通知消息,从所述目标订阅服务器中订阅所述目标消息。
  15. 一种电子设备,其特征在于,包括:
    处理器;
    用于存储所述处理器可执行指令的存储器;
    其中,所述处理器被配置为执行所述指令,以实现如下步骤:
    获取所述订阅服务器集合中每个订阅服务器的订阅时间戳,所述订阅时间戳用于指示每个订阅服务器的订阅进度;
    根据所述每个订阅服务器的订阅时间戳,确定所述订阅服务器集合中的订阅服务器的排序结果;
    根据所述排序结果,在所述订阅服务器集合中确定第一订阅服务器和目标订阅服务器;其中,所述目标订阅服务器已经订阅并存储有目标消息,所述目标消息为所述第一订阅服务器需要订阅的消息;
    向所述第一订阅服务器发送通知消息,所述通知消息用于指示所述第一订阅服务器从所述目标订阅服务器中订阅所述目标消息。
  16. 一种存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如下步骤:
    获取所述订阅服务器集合中每个订阅服务器的订阅时间戳,所述订阅时间戳用于指示每个订阅服务器的订阅进度;
    根据所述每个订阅服务器的订阅时间戳,确定所述订阅服务器集合中的订阅服务器的排序结果;
    根据所述排序结果,在所述订阅服务器集合中确定第一订阅服务器和目标订阅服务器;其中,所述目标订阅服务器已经订阅并存储有目标消息,所述目标消息为所述第一订阅服务器需要订阅的消息;
    向所述第一订阅服务器发送通知消息,所述通知消息用于指示所述第一订阅服务器从所述目标订阅服务器中订阅所述目标消息。
PCT/CN2020/118122 2019-10-16 2020-09-27 数据分发方法、电子设备及存储介质 WO2021073405A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP20875899.5A EP3998754B1 (en) 2019-10-16 2020-09-27 Data distribution method, storage server and subscription server
US17/668,730 US20220166842A1 (en) 2019-10-16 2022-02-10 Data distribution method and electronic device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910985286.6 2019-10-16
CN201910985286.6A CN110839061B (zh) 2019-10-16 2019-10-16 数据分发方法、装置及存储介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/668,730 Continuation US20220166842A1 (en) 2019-10-16 2022-02-10 Data distribution method and electronic device

Publications (1)

Publication Number Publication Date
WO2021073405A1 true WO2021073405A1 (zh) 2021-04-22

Family

ID=69575469

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/118122 WO2021073405A1 (zh) 2019-10-16 2020-09-27 数据分发方法、电子设备及存储介质

Country Status (4)

Country Link
US (1) US20220166842A1 (zh)
EP (1) EP3998754B1 (zh)
CN (1) CN110839061B (zh)
WO (1) WO2021073405A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110839061B (zh) * 2019-10-16 2020-11-06 北京达佳互联信息技术有限公司 数据分发方法、装置及存储介质
CN111935242B (zh) * 2020-07-16 2023-06-02 北京达佳互联信息技术有限公司 数据传输方法、装置、服务器以及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140059127A1 (en) * 2012-08-22 2014-02-27 International Business Machines Corporation Broker designation and selection in a publish-subscription environment
CN106790402A (zh) * 2016-11-29 2017-05-31 郑州云海信息技术有限公司 信息化体系结构中间件数据并行分发方法及系统
CN108881963A (zh) * 2018-05-30 2018-11-23 歌尔科技有限公司 数据获取方法、服务端及客户端
CN110839061A (zh) * 2019-10-16 2020-02-25 北京达佳互联信息技术有限公司 数据分发方法、装置及存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011029025A1 (en) * 2009-09-04 2011-03-10 Research In Motion Limited Methods and apparatus to subscribe for change notifications in a document management system
US8442480B2 (en) * 2010-12-01 2013-05-14 T-Mobile Usa, Inc. Priority communications in a shared access telecommunications network
US20120157795A1 (en) * 2010-12-15 2012-06-21 Ross Medical Corporation Patient Emergency Response System
US20140372516A1 (en) * 2011-02-02 2014-12-18 Imvu Inc. System and method for providing a scalable translation between polling-based clients and connection-based message queues
US20140067702A1 (en) * 2011-03-29 2014-03-06 Yogesh Chunilal Rathod Method and System for Dynamically Publishing, Sharing, Communication and Subscribing
US9805078B2 (en) * 2012-12-31 2017-10-31 Ebay, Inc. Next generation near real-time indexing
CN104980880B (zh) * 2014-04-10 2018-08-31 东芝存储器株式会社 通信装置以及通信方法
US10178421B2 (en) * 2015-10-30 2019-01-08 Rovi Guides, Inc. Methods and systems for monitoring content subscription usage
CN106357728B (zh) * 2016-08-25 2019-11-08 广州朗国电子科技有限公司 信息处理方法、系统及终端
JP6584440B2 (ja) * 2017-01-27 2019-10-02 キヤノン株式会社 情報処理システム、情報処理ステムの制御方法およびそのプログラム。
US10764284B2 (en) * 2017-09-07 2020-09-01 Verizon Patent And Licensing Inc. Method and system for dynamic data flow enforcement
CN108427725B (zh) * 2018-02-11 2021-08-03 华为技术有限公司 数据处理方法、装置和系统
US11082505B2 (en) * 2019-07-29 2021-08-03 Cisco Technology, Inc. Dynamic discovery of available storage servers
US11700251B1 (en) * 2020-06-17 2023-07-11 Cyber Sonata, LLC Modification of device behavior for use in secure networking
US11799983B2 (en) * 2021-11-19 2023-10-24 Motorola Solutions, Inc. Ranking internet of things (IoT) data based on IoT analytics services

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140059127A1 (en) * 2012-08-22 2014-02-27 International Business Machines Corporation Broker designation and selection in a publish-subscription environment
CN106790402A (zh) * 2016-11-29 2017-05-31 郑州云海信息技术有限公司 信息化体系结构中间件数据并行分发方法及系统
CN108881963A (zh) * 2018-05-30 2018-11-23 歌尔科技有限公司 数据获取方法、服务端及客户端
CN110839061A (zh) * 2019-10-16 2020-02-25 北京达佳互联信息技术有限公司 数据分发方法、装置及存储介质

Also Published As

Publication number Publication date
CN110839061B (zh) 2020-11-06
EP3998754B1 (en) 2023-11-15
CN110839061A (zh) 2020-02-25
EP3998754A4 (en) 2022-10-05
US20220166842A1 (en) 2022-05-26
EP3998754A1 (en) 2022-05-18

Similar Documents

Publication Publication Date Title
CN109660607B (zh) 一种业务请求分发方法、接收方法、装置及服务器集群
US20140165119A1 (en) Offline download method, multimedia file download method and system thereof
CN101136911B (zh) 一种采用p2p技术下载文件的方法和p2p下载系统
US20150237113A1 (en) Method and system for file transmission
CN115408604A (zh) 用于递送实时消息的消息传递平台
WO2013075578A1 (zh) 网络资源文件的离线下载系统和方法
CN101540775A (zh) 内容分发方法、装置与内容分发网络系统
US8812718B2 (en) System and method of streaming data over a distributed infrastructure
WO2021073405A1 (zh) 数据分发方法、电子设备及存储介质
CN103248645A (zh) Bt离线数据下载系统及方法
CN110071965B (zh) 一种基于云平台的数据中心管理系统
CN111355986B (zh) 一种直播间中的消息处理方法、装置和存储介质
WO2017161757A1 (zh) 一种流媒体文件分发方法及系统
CN104301741A (zh) 一种数据直播系统和方法
CN111698126B (zh) 信息监控方法、系统及计算机可读存储介质
EP1344347B1 (en) Managing network traffic using hashing functions
CN103812881A (zh) 离线下载控制方法及装置
US10268532B2 (en) Application message processing system, method, and application device
CN107645475B (zh) 异质网络中的文件资源分发系统与方法
CN110620811B (zh) 一种vOLT集群架构下ONU管理方法及系统
CN111475315A (zh) 服务器及订阅通知推送控制、执行方法
CN111614726A (zh) 一种数据转发方法、集群系统及存储介质
CN116074201A (zh) 一种矢量地图数据发布为矢量瓦片地图服务的方法和系统
CN112543354B (zh) 业务感知的分布式视频集群高效伸缩方法和系统
KR20170025498A (ko) P2p 네트워크 관리 시스템의 동작 방법 및 p2p 네트워크 관리 시스템

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20875899

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020875899

Country of ref document: EP

Effective date: 20220214

NENP Non-entry into the national phase

Ref country code: DE