CN116112546A - Network bandwidth optimization publishing and subscribing system and method - Google Patents

Network bandwidth optimization publishing and subscribing system and method Download PDF

Info

Publication number
CN116112546A
CN116112546A CN202211587368.3A CN202211587368A CN116112546A CN 116112546 A CN116112546 A CN 116112546A CN 202211587368 A CN202211587368 A CN 202211587368A CN 116112546 A CN116112546 A CN 116112546A
Authority
CN
China
Prior art keywords
client
module
list
signature
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211587368.3A
Other languages
Chinese (zh)
Other versions
CN116112546B (en
Inventor
唐震
吴恒
张舒扬
王伟
魏峻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongke Nanjing Software Technology Research Institute
Original Assignee
Zhongke Nanjing Software Technology Research Institute
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 Zhongke Nanjing Software Technology Research Institute filed Critical Zhongke Nanjing Software Technology Research Institute
Priority to CN202211587368.3A priority Critical patent/CN116112546B/en
Publication of CN116112546A publication Critical patent/CN116112546A/en
Application granted granted Critical
Publication of CN116112546B publication Critical patent/CN116112546B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

The invention discloses a publishing and subscribing system and method for optimizing network bandwidth, which belong to the technical field of network information transmission and comprise a publishing end, a server end and a subscribing client, wherein the subscribing client comprises an assisting pushing client and a passive subscribing client, the publishing end and the subscribing client are respectively in communication connection with the server end and the assisting pushing client is in communication connection with the passive subscribing client, and the publishing and subscribing system further comprises a caching module, a signature generating module, a signature verifying module, a compressing module, a parameter optimizing module, a monitoring module and a data pushing module; the compression module and the data pushing module are arranged on the server side and the subscribing client side, and the cache module, the signature generation module and the parameter optimization module are arranged on the server side; the signature verification module and the monitoring module are arranged on the subscription client; the invention can fully utilize the computing capacity and network bandwidth of the client, and effectively reduce the occupation of the network bandwidth when the subscription relation is frequently changed.

Description

Network bandwidth optimization publishing and subscribing system and method
Technical Field
The invention belongs to the technical field of network information transmission, and particularly relates to a system and a method for publishing and subscribing for optimizing network bandwidth.
Background
Publish-subscribe systems are an important infrastructure in edge computing scenarios, and are now widely used. A publish-subscribe system is typically made up of one or more server nodes that provide services externally. The clients of the publish-subscribe system comprise two main roles of publishers and subscribers, the publishers publish messages to a specified Topic (Topic), and the publish-subscribe system pushes the messages to all subscriber nodes subscribed to the Topic. In an edge computing scenario, a publish-subscribe system is typically used to synchronize application container configuration, application program configuration, critical application data, etc. in each edge node, supporting application deployment and critical functions of edge side sensor data collection, analysis, processing, aggregation, etc.
The publish-subscribe system in the edge computing scene is usually deployed on a small number of high-performance edge computing nodes in the edge cluster, however, the edge cluster has limited computing power, a small number of high-performance edge computing servers need to deal with a large number of computing tasks and interact with tens of thousands of edge sensors, cameras and the like, the available network bandwidth is extremely limited, and certain bandwidth needs to be reserved to ensure the transmission timeliness of key applications and sensor data. The push task of completing messages and data by relying only on edge computing servers can lead to network congestion, affecting the performance of the publish-subscribe system. In order to solve the problem, considering that the coordination part subscribes to the same topic and has spare network bandwidth and computational power, the client node assists in completing message pushing is a feasible scheme, and the load of a server can be effectively balanced and the occupation of the network bandwidth of the server can be reduced.
However, in the edge computing scenario, clients such as edge devices are frequently online and offline, so that subscription relationships are frequently changed, the server itself needs to frequently maintain the subscription relationships, and meanwhile, when the coordination client finishes a pushing task, a client list to be pushed needs to be added. The prior art solution needs to maintain a huge client list and notify the client nodes that need to assist in completing message pushing, and in consideration of the relatively small message size such as common configuration information, adding a longer client list will occupy valuable bandwidth resources.
On the other hand, there are a large number of configuration files in the edge computing scenario that need to be pushed to the entire cluster, and these configuration files contain a large number of configuration items, but only some of the configuration items need to be changed when the entire cluster performs operations such as switching databases, switching service IP addresses, etc. Existing publish-subscribe systems typically push complete profiles to relevant clients in the form of full updates of messages, which wastes valuable network bandwidth resources when there are only a few updates in the profile.
In summary, there is a need to design a publish-subscribe system that is suitable for network bandwidth optimization in an edge computing scenario, by improving the message pushing flow and introducing an optimized message increment update method, to reduce network bandwidth consumption, reduce resource utilization and optimize message pushing performance.
Disclosure of Invention
The invention aims to solve the problems in the background art, and provides a publishing and subscribing system and method for optimizing network bandwidth, which can fully utilize the computing capacity of a client and the network bandwidth and effectively reduce the occupation of the network bandwidth when the subscription relation is frequently changed.
In order to achieve the technical purpose, the invention adopts the following technical scheme:
the publishing and subscribing system for optimizing the network bandwidth comprises a publishing end, a server end and a subscribing client end, wherein the subscribing client end comprises an assisting pushing client end and a passive subscribing client end, the publishing end and the subscribing client end are respectively in communication connection with the server end and the assisting pushing client end and the passive subscribing client end, and the publishing and subscribing system also comprises a caching module, a signature generating module, a signature verifying module, a compressing module, a parameter optimizing module, a monitoring module and a data pushing module; the compression module and the data pushing module are arranged on the server side and the subscribing client side, and the cache module, the signature generation module and the parameter optimization module are arranged on the server side; the signature verification module and the monitoring module are arranged on the subscription client; each module receives other module requests and feeds back information corresponding to the requests;
The cache module is used for storing and updating the mapping relation table, the client state information table and the client list;
the signature generation module is used for generating and updating the signature of the client list and the corresponding relation table of the signature and the client list, and storing the corresponding relation table;
the signature verification module is used for storing a corresponding relation table of the signature and the client list, a specific client list and a client connection information table, and verifying whether the tables are stored or not; the signature verification module periodically cleans up a stored unused client list for a certain time;
the compression module is used for identifying and generating the increment information or the integrated increment information of the pushed message and the corresponding original message;
the parameter optimization module is used for determining a pushing threshold value and a failure threshold value;
the monitoring module is used for periodically monitoring the performance of the client;
the data pushing module is used for pushing messages; the data pushing module arranged at the server side can attach the signature of the client list corresponding to the subscription theme of the message when pushing the message.
Preferably, the mapping relation table records the mapping relation between the subscription client and the subscription theme;
The client state information table records information of a subscribing client, and specifically comprises the following steps:
(1) The client connection information table specifically comprises the following information of each client:
(1.1) client ID: an integer number incremented from 1 for unique determination in the list
A client node;
(1.2) client IP address: for identifying a client node;
(1.3) client port number: for identifying a client node;
(1.4) client connection status: for marking clients online or offline;
(2) Client current load ratio: the method comprises the steps that the ratio of the current CPU time, the memory utilization rate, the disk I/O and the network I/O of the client to the average value of indexes corresponding to the current subscription client cluster is included;
(3) The total number of clients to be assisted pushed which are currently born by the clients;
each subscription theme is provided with an independent client list corresponding to the subscription theme, and the client list records information of the subscription clients; each item in the client list includes the following information:
(4.1) a client ID;
(4.2) a downstream client node ID of the client;
(4.3) the client node ID upstream of the client; when the upstream of the client is a server, the ID of the upstream client node is set to be "-1";
The client IDs contained in each item in the client list are not repeated, and the total number of items is the number of clients in the client list.
Preferably, the cache module continuously monitors the subscribing client and updates the client state information table; the cache module periodically eliminates the subscribing client with the offline time exceeding the set duration and updates the client state information table;
the cache module is interacted with the monitoring module regularly and is used for updating the client state information table;
the caching module is interacted with the parameter optimization module regularly, and when the number of downstream client nodes of any auxiliary pushing client exceeds a pushing threshold, all client lists are updated; when the number of the offline clients of a certain client list exceeds an invalidation threshold, if the offline clients are only passive subscription clients, all the offline clients in the client list are removed, and if the offline clients comprise auxiliary pushing clients, all the client lists are updated;
the process of updating all client lists by the cache module is as follows:
s01, setting upstream client node IDs of all clients in the list to be "-1";
s02, sorting the clients from small to large according to the current load ratio;
S03, taking the client with the minimum client load ratio as an assisted push client A i Then traversing the client lists corresponding to all subscription topics, sorting according to the load ratio, and sequentially selecting n clients A from the highest load ratio i1 ,A i2 ,A i3 ,…,A in As a passive subscription client; changing upstream client node ID of passive subscription client into client A i Is the ID of client A i The ID of the downstream client node of the server is changed into the ID of the passive subscription client, wherein n does not exceed a push threshold returned by the parameter optimization module, and i is the number of times of the step;
s04, repeating the step S03 in the rest clients until i meets the following conditions:
Figure BDA0003989596850000041
the result of the formula is rounded up, where K is the number of all clients subscribing to the client and T is the push threshold.
Preferably, the signature generating module generates the signature by the following steps:
s11, independently summing information contained in each item in the client list and taking a model of INT_MAX to obtain an independent integer value;
s12, splicing all integer values obtained in the step S11 to obtain an integer array;
s13, adding a random UUID in front of the integer array obtained in the step S12;
s14, calculating the MD5 value of the whole result obtained in the step S13 as a signature value;
The signature generation module establishes a corresponding relation table between the generated signature and a corresponding client list, and stores the corresponding relation table;
and the signature generation module is continuously interacted with the cache module, updates the signature corresponding to the client list when the change of the client list is monitored, marks the original signature as invalid and updates the corresponding relation table.
Preferably, the working steps of the signature verification module after receiving the signature are as follows:
s21, searching whether the signature verification module stores a client connection information table and a corresponding relation table of the signature and the client list, if so, entering a step S23, otherwise, entering a step S22;
s22, if the client connection information table is not stored, requesting the client connection information table from a cache module on a connected server; if the corresponding relation table is not stored, requesting the corresponding relation table from the signature generation module, storing a feedback result, and then entering step S23;
s23, searching whether the corresponding relation table has a signature added to the incoming message, if so, entering a step S25, otherwise, entering a step S24;
s24, requesting the corresponding relation between the signature and the client list from a connected signature generation module, storing a feedback result, and then entering step S25;
S25, searching whether the signature verification module stores a client list corresponding to the signature according to the signature attached to the input information, if so, entering step S27, and if not, entering step S26;
s26, requesting a client list corresponding to the signature from a cache module on a connected server side, storing a feedback result, and then entering step S27;
s27, confirming whether the connection information of each client in the client list exists or not, if so, entering a step S29, and if not, entering a step S28;
s28, requesting connection information of a cache module on a connected server according to the client ID, updating a feedback result to a client connection information table, and then entering step S29;
s29, feeding back a client list and a client connection information table;
the signature verification module periodically clears the stored but unused list of clients for a certain period of time.
Preferably, the compression module arranged at the server side receives the request of the data pushing module, calculates the increment information according to the following types of the message and returns the result:
type 1, for the data of the array type, sequentially searching each element in the new array in the old array to determine an increase and decrease item; storing the increase and decrease items into an independent array, adding a modification type, and returning the list as incremental information;
Type 2, for the configuration recorded in JSON or 'key=value', comparing the Value corresponding to each Key to determine the increase, decrease and modify items, storing the increase, decrease and modify items in an independent list, adding a modification type, and returning the list as incremental information;
type 3, for text messages, after separating according to a line-feed character, searching for the longest matching character string in sequence, calculating a modification position and modification content by taking characters as granularity, storing the modification position and the modification content into an independent list, adding a modification type, and returning the list as incremental information;
type 4, for the messages of the types other than the above, the original message is directly returned without processing;
the compression modules of the server side and the subscription client side are arranged to combine the received incremental information content with the original message corresponding to the incremental information according to the modification type recorded by the incremental information.
Preferably, the step of determining the push threshold by the parameter optimization module is as follows:
s31, periodically interacting with a monitoring module by a parameter optimization module to obtain the average load of the current subscription client cluster;
s32, multiplying a given average client push threshold by the ratio of the average load monitored last time in the step S31 to the current average load to obtain the push threshold; if the average load ratio is larger than the given scaling multiple, modifying the average load ratio to the given scaling multiple;
The parameter optimization module determines the failure threshold as follows:
s41, periodically interacting the parameter optimization module with the cache module to obtain the client off-line proportion Q t Wherein t represents time;
s42, calculating a failure threshold according to the following formula:
Figure BDA0003989596850000061
Figure BDA0003989596850000062
/>
F=F 0 *W′
wherein Q is t-1 、Q t-2 And Q t-3 Respectively Q t The client off-line proportion of the previous three moments when Q t-1 、Q t-2 Or Q t-3 When any value is 0, the client off-line proportional value with the value of 0 is corrected to be 1; w is the fluctuation range, W' is the fluctuation range after correction, F 0 For a given average failure threshold, F is the failure threshold.
Preferably, the client performance periodically monitored by the monitoring module includes the following information:
(5.1) CPU time: CPU time including kernel mode and user mode;
(5.2) memory use: the method comprises the steps of including used memory and total memory;
(5.3) disk I/O: the random read-write speed of each magnetic disk at present and the throughput rate are included;
(5.4) network I/O: including the current upload and download rates of each network interface.
Preferably, the issuing end adds an increment to send a demand signal when sending a message;
the working steps of the data pushing module arranged at the server end are as follows:
s51, storing an original message sent by a release end to a local storage of a server end;
S52, analyzing an additional increment transmission demand signal in the original message transmitted by the issuing end, determining whether increment pushing is needed, if so, firstly, executing step S52, otherwise, directly entering step S53;
s53, calling a compression module to calculate and feed back incremental information, and then entering step S53;
s54, attaching the original message or the increment information with the signature of the client list corresponding to the subscription subject of the message, and pushing the signature to a client with an upstream client node ID of "-1" in the client list;
the working steps of the data pushing module arranged at the assisted pushing client are as follows:
s61, storing the received message to a local storage of an assisted push client; the received message is the original message and is directly stored; when the received message is the increment information, calling a compression module to combine the increment information with the corresponding original message and then storing the combined increment information;
s62, calling a signature verification module, and feeding back a client list and a client connection information table corresponding to the signature attached to the received message;
and S63, pushing the received message to all downstream clients of the client according to the client connection information table and the client list obtained in the step S62.
A method for publishing and subscribing by utilizing the network bandwidth optimization of any one of the systems comprises the following steps:
s101, adding an increment transmission demand signal in a released new message;
s102, the server side analyzes the increment transmission demand signal in the received new message, judges whether to indicate that only increment information needs to be transmitted, and firstly enters a step S103 if yes, or directly enters a step S104 if no;
s103, calculating increment information in the new message, and then entering step S104;
s104, pushing the new message or the increment information to the auxiliary pushing client, and pushing the signature of the client list corresponding to the subscription subject of the new message; the client list is updated regularly, and the corresponding signature is updated accordingly;
s105, assisting the pushing client to verify whether a corresponding client list and a client connection information list are locally stored according to the signature; if yes, directly entering step S106, otherwise, firstly requesting the client list and the client connection information table from the connected server side, storing the client list and the client connection information table to the local, and then entering step S106;
s106, assisting the pushing client in pushing new information or incremental information to a downstream client according to the client list and the client connection information list corresponding to the signature;
S107, assisting the pushing client to directly store the new message, merging the increment information with the corresponding original information, and then storing the merged increment information; and assisting the downstream client of the push client to perform the same processing on the received message.
The beneficial effects of the invention are as follows:
1. by assisting the client to push the message, the server can assist the client to push the message, the computing capacity and network bandwidth of the client can be fully utilized, the computing pressure of the server is reduced, and meanwhile the pushing efficiency is improved.
2. The data pushing module arranged at the server end analyzes the information sent by the issuing end and confirms whether the incremental information is pushed or not, so that the information which is only changed in a small range is prevented from being pushed backwards completely, a large amount of network bandwidth is occupied ineffectively, and the utilization rate of the network bandwidth is improved.
3. By means of signature verification, the problem that a lengthy client list is required to be added when a message is sent every time is avoided, only a signature occupying a small network bandwidth is required to be added, and network bandwidth occupation is effectively reduced when subscription relations are changed frequently.
Drawings
FIG. 1 is a schematic diagram of a system module connection of the present invention;
fig. 2 is a system deployment diagram.
Detailed Description
Embodiments of the present invention are described in further detail below with reference to the accompanying drawings.
It should be noted that the terms like "upper", "lower", "left", "right", "front", "rear", and the like are also used for descriptive purposes only and are not intended to limit the scope of the invention in which the invention may be practiced, but rather the relative relationship of the terms may be altered or modified without materially altering the teachings of the invention.
As shown in fig. 1, a publishing and subscribing system with optimized network bandwidth includes a publishing end, a server end (the server end can be divided into a first server end and a subsequent server end, wherein the first server end is in communication connection with the publishing end, the subsequent server end is in communication connection with the first server end, and only the first server end processes and judges whether to push incremental information only or not to publish a new message, the subsequent server end plays a role of assisting pushing, and the service end is divided into two parts to improve the computing and processing efficiency), and a subscribing client end, wherein the subscribing client end comprises an assisting pushing client end and a passive subscribing client end, and the publishing end and the subscribing client end are respectively in communication connection with the server end to assist the pushing client end to be in communication connection with the passive subscribing client end; note that the assistance push client and the passive subscription client are not fixed, but change with each other according to the update of the client list;
The system also comprises a caching module, a signature generation module, a signature verification module, a compression module, a parameter optimization module, a monitoring module and a data pushing module; the compression module and the data pushing module are arranged on the server side and the subscribing client side, and the cache module, the signature generation module and the parameter optimization module are arranged on the server side; the signature verification module and the monitoring module are arranged on the subscription client; each module receives other module requests and feeds back information corresponding to the requests;
the cache module is used for storing and updating the mapping relation table, the client state information table and the client list;
the signature generation module is used for generating and updating the signature of the client list and the corresponding relation table of the signature and the client list, and storing the corresponding relation table;
the signature verification module is used for storing a corresponding relation table of the signature and the client list, a specific client list (namely, the client list corresponding to the signature added by the pushed message, which is continuously updated according to the pushed message), and a client connection information table, and is used for verifying whether the table is stored or not; the signature verification module periodically cleans up a stored unused client list for a certain time;
The compression module is used for identifying and generating the increment information or the integrated increment information of the pushed message and the corresponding original message;
the parameter optimization module is used for determining a pushing threshold value and a failure threshold value;
the monitoring module is used for periodically monitoring the performance of the client;
the data pushing module is used for pushing messages; the data pushing module arranged at the server side can attach the signature of the client list corresponding to the subscription theme of the message when pushing the message.
The information stored by the cache module and the working process thereof are as follows:
stored information:
a mapping relation table records the mapping relation between a subscribing client and a subscribing theme; the mapping relation table can be used for searching a client list corresponding to the subscription theme subsequently;
and (II) a client state information table, which records corresponding information of the subscribing client, wherein the corresponding information is as follows:
(1) The client connection information table specifically comprises the following information of each client:
(1.1) client ID: an integer number incremented from 1 for unique determination in the list
A client node;
(1.2) client IP address: for identifying a client node;
(1.3) client port number: for identifying a client node;
(1.4) client connection status: for marking clients online or offline;
(2) Client current load ratio: the method comprises the steps that the ratio of the current CPU time, the memory utilization rate, the disk I/O and the network I/O of the client to the average value of indexes corresponding to the current subscription client cluster is included;
(3) The total number of clients to be assisted pushed which are currently born by the clients;
(III), a client list; each subscription theme is provided with an independent client list corresponding to the subscription theme, and the client list records information corresponding to the subscription clients; each item in the client list is corresponding information of each client in the list, and specifically includes the following information:
(4.1) a client ID;
(4.2) a downstream client node ID of the client;
(4.3) the client node ID upstream of the client; when the upstream of the client is a server, the ID of the upstream client node is set to be "-1";
the client IDs included in each item in the client list are not repeated, and the total number of items is the number of clients in the client list (i.e. the information corresponding to each client in the client list is ensured).
The working process comprises the following steps:
the cache module continuously monitors the subscribing clients and updates the client state information table, and periodically eliminates the subscribing clients with offline time exceeding the set time length from the client state information table according to the monitoring result so as to save the memory space;
The buffer memory module is interacted with the monitoring module periodically and is used for updating a client state information table (updating the current load ratio of a client in the client state information table);
the caching module is interacted with the parameter optimization module regularly, and when the number of downstream client nodes of any auxiliary pushing client exceeds a pushing threshold, all client lists are updated; when the number of the offline clients of a certain client list exceeds an invalidation threshold, if the offline clients are only passive subscription clients, all the offline clients in the client list are removed, and if the offline clients comprise auxiliary pushing clients, all the client lists are updated;
the process of updating all client lists by the cache module is as follows:
s01, setting upstream client node IDs of all clients in the list to be "-1";
s02, sorting the clients from small to large according to the current load ratio;
s03, taking the client with the minimum client load ratio as an assisted push client A i Then traversing the client lists corresponding to all subscription topics, sorting according to the load ratio, and sequentially selecting n clients A from the highest load ratio i1 ,A i2 ,A i3 ,…,A in As a passive subscription client; changing upstream client node ID of passive subscription client into client A i Is the ID of client A i The ID of the downstream client node of the server is changed into the ID of the passive subscription client, wherein n does not exceed a push threshold returned by the parameter optimization module, and i is the number of times of the step;
s04, repeating the step S03 in the rest of the clients (each time the rest of the clients are selected again after the last time in the step S03) until the i meets the following conditions:
Figure BDA0003989596850000111
the result of the formula is rounded upwards, wherein K is the number of all clients of the subscribing clients, and T is the push threshold; for example, the total number of subscription clients k=100 and the push threshold t=10, so that the number of downstream client nodes of each assistance push client is at most 10, and 100/(10+1) ≡9.09 assistance push clients need to be selected from 100 subscription clients, and the method is round up, that is, 10 assistance push clients need to be selected, that is, step S03 needs to be performed 10 times, and updating of the list of all clients is completed.
The signature generation module generates a signature by the following working steps:
s11, independently summing information (namely a client ID, an upstream client node ID and a downstream client node ID) contained in each item in the client list and modulo INT_MAX to obtain an independent integral value (the number of the integral values is the total item number contained in the client list);
S12, splicing all integer values obtained in the step S11 to obtain an integer array;
s13, adding a random UUID in front of the integer array obtained in the step S12;
s14, calculating the MD5 value of the whole result obtained in the step S13 as a signature value;
the signature generation module establishes a corresponding relation table with the generated signature and a corresponding client list, and stores the corresponding relation table (the signature generation module is provided with a local cache);
and the signature generation module is continuously interacted with the cache module, updates the signature corresponding to the client list when the change of the client list is monitored, marks the original signature as invalid and updates the corresponding relation table.
The working steps of the signature verification module after receiving the signature are as follows:
s21, searching whether the signature verification module stores a client connection information table and a corresponding relation table of the signature and the client list, if so, entering a step S23, otherwise, entering a step S22;
s22, if the client connection information table is not stored, requesting the client connection information table from a cache module on a connected server; if the corresponding relation table is not stored, requesting the corresponding relation table from the signature generation module, storing a feedback result, and then entering step S23;
S23, searching whether the corresponding relation table has a signature added to the incoming message, if so, entering a step S25, otherwise, entering a step S24;
s24, requesting the corresponding relation between the signature and the client list from a connected signature generation module, storing a feedback result, and then entering step S25;
s25, searching whether the signature verification module stores a client list corresponding to the signature according to the signature attached to the input information, if so, entering step S27, and if not, entering step S26;
s26, requesting a client list corresponding to the signature from a cache module on a connected server side, storing a feedback result, and then entering step S27;
s27, confirming whether the connection information of each client in the client list exists or not, if so, entering a step S29, and if not, entering a step S28;
s28, requesting connection information of a cache module on a connected server according to the client ID, updating a feedback result to a client connection information table, and then entering step S29;
s29, feeding back a client list and a client connection information table;
the signature verification module is also provided with a local cache and periodically clears the stored but unused list of clients for a certain period of time.
The compression module arranged at the server side receives the request of the data pushing module, calculates incremental information according to the following types of the information and returns a result:
type 1, for the data of the array type, sequentially searching each element in the new array in the old array to determine an increase and decrease item; storing the increase and decrease items into an independent array, adding a modification type, and returning the list as incremental information;
type 2, for the configuration recorded in the form of JSON or 'key=value' which can be reversely sequenced, comparing the Value corresponding to each Key to determine the increase, decrease and modify items, storing the increase, decrease and modify items in an independent list, adding a modification type, and returning the list as incremental information;
type 3, for text messages, after separating according to a line-feed character, searching for the longest matching character string in sequence, calculating a modification position and modification content by taking characters as granularity, storing the modification position and the modification content into an independent list, adding a modification type, and returning the list as incremental information;
type 4, for the messages of the types other than the above, the original message is directly returned without processing; because the invention mainly carries out incremental pushing aiming at three types of messages 1-3, if the messages of other types are used, the calculated amount of the incremental information is overlarge, and the incremental pushing is unnecessary;
The compression modules of the server side and the subscription client side are arranged to combine the received incremental information content with the original message corresponding to the incremental information according to the modification type recorded by the incremental information.
The step of determining the push threshold by the parameter optimization module is as follows:
s31, periodically interacting with a monitoring module by a parameter optimization module to obtain the average load of the current subscription client cluster;
s32, multiplying a given average client push threshold by the ratio of the average load monitored last time in the step S31 to the current average load to obtain the push threshold; if the average load ratio is larger than the given scaling multiple, modifying the average load ratio to the given scaling multiple; the scaling factor corresponds to a given push threshold magnification upper limit.
The parameter optimization module determines the failure threshold as follows:
s41, periodically interacting the parameter optimization module with the cache module to obtain the client off-line proportion Q t Wherein t represents time;
s42, calculating a failure threshold according to the following formula:
Figure BDA0003989596850000131
/>
Figure BDA0003989596850000132
F=F 0 *W′
wherein Q is t-1 、Q t-2 And Q t-3 Respectively Q t The client off-line proportion of the previous three moments when Q t-1 、Q t-2 Or Q t-3 When any value is 0, the value is 0The offline proportion value of the client is corrected to be 1; w is the fluctuation range, W' is the fluctuation range after correction, F 0 For a given average failure threshold, F is the failure threshold.
The client performance periodically monitored by the monitoring module comprises the following information:
(5.1) CPU time: CPU time including kernel mode and user mode;
(5.2) memory use: the method comprises the steps of including used memory and total memory;
(5.3) disk I/O: the random read-write speed of each magnetic disk at present and the throughput rate are included;
(5.4) network I/O: including the current upload and download rates of each network interface.
The issuing end adds an increment to send a demand signal when sending a message;
the working steps of the data pushing module arranged at the server end are as follows:
s51, storing an original message sent by a release end to a local storage of a server end;
s52, analyzing an additional increment transmission demand signal in the original message transmitted by the issuing end, determining whether increment pushing is needed, if so, firstly, executing step S52, otherwise, directly entering step S53;
s53, calling a compression module to calculate and feed back incremental information, and then entering step S53;
s54, the original message or the increment information is added with the signature of the client list corresponding to the subscription theme of the message, and the signature is pushed to the client with the upstream client node ID of "-1" in the client list.
The working steps of the data pushing module arranged at the assisted pushing client are as follows:
s61, storing the received message to a local storage of an assisted push client; the received message is the original message and is directly stored; when the received message is the increment information, calling a compression module to combine the increment information with the corresponding original message and then storing the combined increment information;
s62, calling a signature verification module, and feeding back a client list and a client connection information table corresponding to the signature attached to the received message; when the client connection information table indicates that the client is offline, the assistance pushing client can not push a message to the client;
and S63, pushing the received message to all downstream clients of the client according to the client connection information table and the client list obtained in the step S62.
A method for publishing and subscribing by utilizing the network bandwidth optimization of any one of the systems comprises the following steps:
s101, adding an increment transmission demand signal in a released new message;
s102, the server side analyzes the increment transmission demand signal in the received new message, judges whether to indicate that only increment information needs to be transmitted, and firstly enters a step S103 if yes, or directly enters a step S104 if no;
S103, calculating increment information in the new message, and then entering step S104;
s104, pushing the new message or the increment information to the auxiliary pushing client, and pushing the signature of the client list corresponding to the subscription subject of the new message; the client list is updated regularly, and the corresponding signature is updated accordingly;
s105, assisting the pushing client to verify whether a corresponding client list and a client connection information list are locally stored according to the signature; if yes, directly entering step S106, otherwise, firstly requesting the client list and the client connection information table from the connected server side, storing the client list and the client connection information table to the local, and then entering step S106;
s106, assisting the pushing client in pushing new information or incremental information to a downstream client according to the client list and the client connection information list corresponding to the signature;
s107, assisting the pushing client to directly store the new message, merging the increment information with the corresponding original information, and then storing the merged increment information; and assisting the downstream client of the push client to perform the same processing on the received message.
As shown in fig. 2, the following describes the specific steps by way of example:
1. without loss of generality, it is assumed that the cluster consists of 2 servers and 4 clients, client 1 and client 2 being connected to server 1, client 3 and client 4 being connected to server 2; the client 1 is used as an assisting pushing client, the client 2 is used as a passive subscription client, and the client 3 is used as a publishing end; the server 1 is used as a server end for assisting pushing, the server 2 is used as a server end for receiving and processing the release message, and in practical situations, the server 1 and the server 2 can be combined, namely the functions of the two servers are completed on the same server, but the calculation efficiency is low;
2. Client 1 subscribes to the topic "test" from server 1.
3. The server 1 adds the client 1 to the client list 9 of the topic "test" (stored by the caching module) and generates a signature by the signature generation module, and a correspondence table of the signature and the client list, while setting the upstream client node ID of the client 1 to "-1".
4. The client 2 subscribes to the topic "test" from the server 1.
5. The server 1 adds the client 2 into a client list of a theme 'test', and updates the signature and the corresponding relation table; the upstream client node ID of client 2 is then set to "1", and the downstream client node ID of client 1 is set to "2" (the passive subscription client of this embodiment only gives client 2, if there are other passive subscription clients, such as clients 3,4, the downstream client node ID of client 1 is set to 2,3,4, so that messages are pushed by client 1 to clients 2,3 and 4), i.e. messages are subsequently pushed by client 1 to client 2 instead of directly by server 2.
6. The client 3 issues a latest message "testkey=testvalue" of the topic "test" to the server 2, and additionally transmits a demand signal in increments (signal content "no").
7. The server 2 receives the message sent by the client 3, determines that incremental information pushing is not needed by analyzing the incremental sending demand signal, persists the message to a local storage, and pushes the message directly to the server 1.
8. The server 1 pushes the message to the client 1 and attaches a signature of the client list corresponding to the subscription topic "test" to which the message belongs.
9. When the client 1 is the first time as an assisting push client, all clients (clients 1 and 2) connected to the server 1 are requested to the server 1 for the connection information table, the correspondence table (correspondence table of signature and client list), and the client list to which the signature corresponds; if the client 1 is not the first client for assisting pushing, firstly confirming whether a corresponding relation table of the subscription subject exists in local storage (namely local cache in a signature verification module) according to the signature attached to the message sent by the server 1, and if the corresponding relation table does not request to be sent to the server 1 and stored; if so, searching whether a client list corresponding to the signature exists in the local storage according to the corresponding relation table, then going to whether the client connection information table is complete or not through the client list, and if not, requesting updating to the server 1.
10. The client 1 confirms its downstream client (client 2) and the corresponding communication address (acquired by the client connection information table) based on the client list and the client connection information table finally obtained in the previous step, pushes the message to the client 2, and stores the message locally.
11. The client 2 updates the local store after receiving the message.
It should be noted that, if the message issued by the client 3 is a message that does not need incremental pushing, only the message "testkey=testvalue" sent this time is partially changed, and the content of the incremental sending demand signal may be set to "yes", then the server 2 will parse the message content to obtain the incremental information of the message, and then only the incremental information is pushed backward (to the server 1, the client 1 and the client 2) until the message arrives at the subsequent server or the subscribing client, and the local processing is performed to combine the incremental information with the corresponding original message sent before to obtain the complete new message, so as to greatly save network bandwidth resources and improve the pushing efficiency.
By introducing the method and the device, the computing capacity and the network bandwidth of the client can be fully utilized, and a complete client list does not need to be additionally pushed each time when the subscription relation is frequently changed, so that the occupation of the network bandwidth is effectively reduced.
The above is only a preferred embodiment of the present invention, and the protection scope of the present invention is not limited to the above examples, and all technical solutions belonging to the concept of the present invention belong to the protection scope of the present invention. It should be noted that modifications and adaptations to the invention without departing from the principles thereof are intended to be within the scope of the invention as set forth in the following claims.

Claims (10)

1. The utility model provides a network bandwidth optimization's publish-subscribe system, includes publishing end, server side and subscription customer end, the subscription customer end is including helping push customer end and passive subscription customer end, publishing end and subscription customer end respectively with server side communication connection, helping push customer end and passive subscription customer end communication connection, its characterized in that: the system also comprises a caching module, a signature generation module, a signature verification module, a compression module, a parameter optimization module, a monitoring module and a data pushing module; the compression module and the data pushing module are arranged on the server side and the subscribing client side, and the cache module, the signature generation module and the parameter optimization module are arranged on the server side; the signature verification module and the monitoring module are arranged on the subscription client; each module receives other module requests and feeds back information corresponding to the requests;
The cache module is used for storing and updating the mapping relation table, the client state information table and the client list;
the signature generation module is used for generating and updating the signature of the client list and the corresponding relation table of the signature and the client list, and storing the corresponding relation table;
the signature verification module is used for storing a corresponding relation table of the signature and the client list, a specific client list and a client connection information table, and verifying whether the tables are stored or not; the signature verification module periodically cleans up a stored unused client list for a certain time;
the compression module is used for identifying and generating the increment information or the integrated increment information of the pushed message and the corresponding original message;
the parameter optimization module is used for determining a pushing threshold value and a failure threshold value;
the monitoring module is used for periodically monitoring the performance of the client;
the data pushing module is used for pushing messages; the data pushing module arranged at the server side can attach the signature of the client list corresponding to the subscription theme of the message when pushing the message.
2. The network bandwidth optimized publish-subscribe system of claim 1, wherein:
The mapping relation table records the mapping relation between the subscribing client and the subscribing subject;
the client state information table records information of a subscribing client, and specifically comprises the following steps:
(1) The client connection information table specifically comprises the following information of each client:
(1.1) a client ID, an integer number incremented from 1, for uniquely identifying the client node in the list;
(1.2) client IP address: for identifying a client node;
(1.3) client port number: for identifying a client node;
(1.4) client connection status: for marking clients online or offline;
(2) Client current load ratio: the method comprises the steps that the ratio of the current CPU time, the memory utilization rate, the disk I/O and the network I/O of the client to the average value of indexes corresponding to the current subscription client cluster is included;
(3) The total number of clients to be assisted pushed which are currently born by the clients;
each subscription theme is provided with an independent client list corresponding to the subscription theme, and the client list records information of the subscription clients; each item in the client list includes the following information:
(4.1) a client ID;
(4.2) a downstream client node ID of the client;
(4.3) the client node ID upstream of the client; when the upstream of the client is a server, the ID of the upstream client node is set to be "-1";
The client IDs contained in each item in the client list are not repeated, and the total number of items is the number of clients in the client list.
3. The network bandwidth optimized publish-subscribe system of claim 2, wherein:
the cache module continuously monitors the subscribing client and updates a client state information table; the cache module periodically eliminates the state information of the subscribing client terminal with the offline time exceeding the set duration;
the cache module is interacted with the monitoring module regularly and is used for updating the client state information table;
the caching module is interacted with the parameter optimization module regularly, and when the number of downstream client nodes of any auxiliary pushing client exceeds a pushing threshold, all client lists are updated; when the number of the offline clients of a certain client list exceeds an invalidation threshold, if the offline clients are only passive subscription clients, all the offline clients in the client list are removed, and if the offline clients comprise auxiliary pushing clients, all the client lists are updated;
the process of updating all client lists by the cache module is as follows:
s01, setting upstream client node IDs of all clients in the list to be "-1";
S02, sorting the clients from small to large according to the current load ratio;
s03, taking the client with the minimum client load ratio as an assisted push client A i Then traversing the client lists corresponding to all subscription topics, sorting according to the load ratio, and sequentially selecting n clients A from the highest load ratio i1 ,A i2 ,A i3 ,…,A in As a passive subscription client; will be subscribed to passivelyUpstream client node ID of client is changed into client A i Is the ID of client A i The ID of the downstream client node of the server is changed into the ID of the passive subscription client, wherein n does not exceed a push threshold returned by the parameter optimization module, and i is the number of times of the step;
s04, repeating the step S03 in the rest clients until i meets the following conditions:
Figure FDA0003989596840000021
the result of the formula is rounded up, where K is the number of all clients subscribing to the client and T is the push threshold.
4. The network bandwidth optimized publish-subscribe system of claim 3, wherein: the signature generation module generates a signature by the following working steps:
s11, independently summing information contained in each item in the client list and taking a model of INT_MAX to obtain an independent integer value;
s12, splicing all integer values obtained in the step S11 to obtain an integer array;
S13, adding a random UUID in front of the integer array obtained in the step S12;
s14, calculating the MD5 value of the whole result obtained in the step S13 as a signature value;
the signature generation module establishes a corresponding relation table between the generated signature and a corresponding client list, and stores the corresponding relation table;
and the signature generation module is continuously interacted with the cache module, updates the signature corresponding to the client list when the change of the client list is monitored, marks the original signature as invalid and updates the corresponding relation table.
5. The network bandwidth optimized publish/subscribe system of claim 4, wherein: the working steps of the signature verification module after receiving the signature are as follows:
s21, searching whether the signature verification module stores a client connection information table and a corresponding relation table of the signature and the client list, if so, entering a step S23, otherwise, entering a step S22;
s22, if the client connection information table is not stored, requesting the client connection information table from a cache module on a connected server; if the corresponding relation table is not stored, requesting the corresponding relation table from the signature generation module, storing a feedback result, and then entering step S23;
S23, searching whether the corresponding relation table has a signature added to the incoming message, if so, entering a step S25, otherwise, entering a step S24;
s24, requesting the corresponding relation between the signature and the client list from a connected signature generation module, storing a feedback result, and then entering step S25;
s25, searching whether the signature verification module stores a client list corresponding to the signature according to the signature attached to the input information, if so, entering step S27, and if not, entering step S26;
s26, requesting a client list corresponding to the signature from a cache module on a connected server side, storing a feedback result, and then entering step S27;
s27, confirming whether the connection information of each client in the client list exists or not, if so, entering a step S29, and if not, entering a step S28;
s28, requesting connection information of a cache module on a connected server according to the client ID, updating a feedback result to a client connection information table, and then entering step S29;
s29, feeding back a client list and a client connection information table;
the signature verification module periodically clears the stored but unused list of clients for a certain period of time.
6. The network bandwidth optimized publish and subscribe system of claim 5, wherein:
the compression module arranged at the server side receives the request of the data pushing module, calculates incremental information according to the following types of the information and returns a result:
type 1, for the data of the array type, sequentially searching each element in the new array in the old array to determine an increase and decrease item; storing the increase and decrease items into an independent array, adding a modification type, and returning the list as incremental information;
type 2, for the configuration recorded in JSON or 'key=value', comparing the Value corresponding to each Key to determine the increase, decrease and modify items, storing the increase, decrease and modify items in an independent list, adding a modification type, and returning the list as incremental information;
type 3, for text messages, after separating according to a line-feed character, searching for the longest matching character string in sequence, calculating a modification position and modification content by taking characters as granularity, storing the modification position and the modification content into an independent list, adding a modification type, and returning the list as incremental information;
type 4, for the messages of the types other than the above, the original message is directly returned without processing;
The compression modules of the server side and the subscription client side are arranged to combine the received incremental information content with the original message corresponding to the incremental information according to the modification type recorded by the incremental information.
7. The network bandwidth optimized publish and subscribe system of claim 6, wherein:
the step of determining the push threshold by the parameter optimization module is as follows:
s31, periodically interacting with a monitoring module by a parameter optimization module to obtain the average load of the current subscription client cluster;
s32, multiplying a given average client push threshold by the ratio of the average load monitored last time in the step S31 to the current average load to obtain the push threshold; if the average load ratio is larger than the given scaling multiple, modifying the average load ratio to the given scaling multiple;
the parameter optimization module determines the failure threshold as follows:
s41, periodically interacting the parameter optimization module with the cache module to obtain the client off-line proportion Q t Wherein t represents time;
s42, calculating a failure threshold according to the following formula:
Figure FDA0003989596840000041
/>
Figure FDA0003989596840000042
F=F 0 *W′
wherein Q is t-1 、Q t-2 And Q t-3 Respectively Q t The client off-line proportion of the previous three moments when Q t-1 、Q t-2 Or Q t-3 When any value is 0, the client off-line proportional value with the value of 0 is corrected to be 1; w is the fluctuation range, W' is the fluctuation range after correction, F 0 For a given average failure threshold, F is the failure threshold.
8. The network bandwidth optimized publish and subscribe system of claim 7, wherein: the client performance periodically monitored by the monitoring module comprises the following information:
(5.1) CPU time: CPU time including kernel mode and user mode;
(5.2) memory use: the method comprises the steps of including used memory and total memory;
(5.3) disk I/O: the random read-write speed of each magnetic disk at present and the throughput rate are included;
(5.4) network I/O: including the current upload and download rates of each network interface.
9. The network bandwidth optimized publish and subscribe system of claim 8, wherein: the issuing end adds an increment to send a demand signal when sending a message;
the working steps of the data pushing module arranged at the server end are as follows:
s51, storing an original message sent by a release end to a local storage of a server end;
s52, analyzing an additional increment transmission demand signal in the original message transmitted by the issuing end, determining whether increment pushing is needed, if so, firstly, executing step S52, otherwise, directly entering step S53;
s53, calling a compression module to calculate and feed back incremental information, and then entering step S53;
S54, attaching the original message or the increment information with the signature of the client list corresponding to the subscription subject of the message, and pushing the signature to a client with an upstream client node ID of "-1" in the client list;
the working steps of the data pushing module arranged at the assisted pushing client are as follows:
s61, storing the received message to a local storage of an assisted push client; the received message is the original message and is directly stored; when the received message is the increment information, calling a compression module to combine the increment information with the corresponding original message and then storing the combined increment information;
s62, calling a signature verification module, and feeding back a client list and a client connection information table corresponding to the signature attached to the received message;
and S63, pushing the received message to all downstream clients of the client according to the client connection information table and the client list obtained in the step S62.
10. A method of publish-subscribe utilizing network bandwidth optimization of the system of claim 9, comprising the steps of:
s101, adding an increment transmission demand signal in a released new message;
s102, the server side analyzes the increment transmission demand signal in the received new message, judges whether to indicate that only increment information needs to be transmitted, and firstly enters a step S103 if yes, or directly enters a step S104 if no;
S103, calculating increment information in the new message, and then entering step S104;
s104, pushing the new message or the increment information to the auxiliary pushing client, and pushing the signature of the client list corresponding to the subscription subject of the new message; the client list is updated regularly, and the corresponding signature is updated accordingly;
s105, assisting the pushing client to verify whether a corresponding client list and a client connection information list are locally stored according to the signature; if yes, directly entering step S106, otherwise, firstly requesting the client list and the client connection information table from the connected server side, storing the client list and the client connection information table to the local, and then entering step S106;
s106, assisting the pushing client in pushing new information or incremental information to a downstream client according to the client list and the client connection information list corresponding to the signature;
s107, assisting the pushing client to directly store the new message, merging the increment information with the corresponding original information, and then storing the merged increment information;
and assisting the downstream client of the push client to perform the same processing on the received message.
CN202211587368.3A 2022-12-09 2022-12-09 Network bandwidth optimization publishing and subscribing system and method Active CN116112546B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211587368.3A CN116112546B (en) 2022-12-09 2022-12-09 Network bandwidth optimization publishing and subscribing system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211587368.3A CN116112546B (en) 2022-12-09 2022-12-09 Network bandwidth optimization publishing and subscribing system and method

Publications (2)

Publication Number Publication Date
CN116112546A true CN116112546A (en) 2023-05-12
CN116112546B CN116112546B (en) 2024-04-19

Family

ID=86253509

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211587368.3A Active CN116112546B (en) 2022-12-09 2022-12-09 Network bandwidth optimization publishing and subscribing system and method

Country Status (1)

Country Link
CN (1) CN116112546B (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020056004A1 (en) * 2000-08-04 2002-05-09 Smith Andrew J.R. Method and system for processing financial data objects carried on broadcast data streams and delivering information to subscribing clients
US20020138744A1 (en) * 2001-03-21 2002-09-26 Schleicher Jorg Gregor Method and system for providing a secure peer-to peer file delivery network
CN104506578A (en) * 2014-12-03 2015-04-08 郑州正信科技发展股份有限公司 Publishing/subscription network subscription information maintenance method and device
CN107809489A (en) * 2017-11-17 2018-03-16 南京感度信息技术有限责任公司 A kind of message push system based on MQTT agreements
US20180191663A1 (en) * 2017-01-02 2018-07-05 International Business Machines Corporation Cluster assisted MQTT client coverage for fat-pipe cloud applications
CN112751916A (en) * 2020-12-28 2021-05-04 中国科学院软件研究所 Data publishing-subscribing method and system for micro-service governance
US11522976B1 (en) * 2021-10-06 2022-12-06 Bgc Partners, L.P. Method, apparatus and system for subscription management

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020056004A1 (en) * 2000-08-04 2002-05-09 Smith Andrew J.R. Method and system for processing financial data objects carried on broadcast data streams and delivering information to subscribing clients
US20020138744A1 (en) * 2001-03-21 2002-09-26 Schleicher Jorg Gregor Method and system for providing a secure peer-to peer file delivery network
CN104506578A (en) * 2014-12-03 2015-04-08 郑州正信科技发展股份有限公司 Publishing/subscription network subscription information maintenance method and device
US20180191663A1 (en) * 2017-01-02 2018-07-05 International Business Machines Corporation Cluster assisted MQTT client coverage for fat-pipe cloud applications
CN107809489A (en) * 2017-11-17 2018-03-16 南京感度信息技术有限责任公司 A kind of message push system based on MQTT agreements
CN112751916A (en) * 2020-12-28 2021-05-04 中国科学院软件研究所 Data publishing-subscribing method and system for micro-service governance
US11522976B1 (en) * 2021-10-06 2022-12-06 Bgc Partners, L.P. Method, apparatus and system for subscription management

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JAY PATIL ET AL.: "Framework for cloud based messaging system using MQTT", ACCTHPA, 6 October 2020 (2020-10-06) *
方霞;: "基于MQTT协议的农业物联网消息推送系统", 计算机技术与发展, no. 09, 16 May 2018 (2018-05-16) *
王圣根;胡恩华;刘学纵;谢志林;陈景柱;: "发布与订阅机制在铁路信号集中监测系统中的应用", 中国铁路, no. 12, 15 December 2013 (2013-12-15) *

Also Published As

Publication number Publication date
CN116112546B (en) 2024-04-19

Similar Documents

Publication Publication Date Title
CN108768826B (en) Message routing method based on MQTT and Kafka high concurrency scene
US8065365B2 (en) Grouping event notifications in a database system
CN101188566B (en) A method and system for data buffering and synchronization under cluster environment
CN105740337B (en) A kind of event fast matching method in distribution subscription system based on content
CN103108008B (en) A kind of method and file download system for downloading file
CN110971686B (en) Electronic mall customer service system supporting high concurrency and high availability
US20090158298A1 (en) Database system and eventing infrastructure
CN101237429A (en) Stream media living broadcasting system, method and device based on content distribution network
EP1867137A1 (en) Method and apparatus for efficiently expanding a p2p network
CN103581332A (en) HDFS framework and pressure decomposition method for NameNodes in HDFS framework
WO2014000771A1 (en) Dynamic input streams handling in dsms
CN114063936B (en) Method, system, equipment and storage medium for optimizing timing task
CN116112546B (en) Network bandwidth optimization publishing and subscribing system and method
Koldehofe Buffer management in probabilistic peer-to-peer communication protocols
CN111897659B (en) Method, system and device for controlling service processing frequency and electronic equipment
CN104052723A (en) Information processing method and server
CN116108036A (en) Method and device for off-line exporting back-end system data
CN112256454B (en) Message delay processing method and system
CN112235184A (en) Event-driven information pushing method and device and electronic equipment
WO2023098702A1 (en) Traffic balancing method, electronic device and computer readable storage medium
CN116074392B (en) Intelligent matching method and device for data stream transmission modes
KR101227935B1 (en) Reverse Proxying Method and Server Client System using the same
CN114745281B (en) Data processing method and device
CN115022392B (en) IOT-oriented distributed publishing and subscribing service method and system
Tarkoma et al. Client mobility in rendezvous-notify

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant