CA3131954A1 - Information synchronization method, system, apparatus, computer device and storage medium - Google Patents

Information synchronization method, system, apparatus, computer device and storage medium Download PDF

Info

Publication number
CA3131954A1
CA3131954A1 CA3131954A CA3131954A CA3131954A1 CA 3131954 A1 CA3131954 A1 CA 3131954A1 CA 3131954 A CA3131954 A CA 3131954A CA 3131954 A CA3131954 A CA 3131954A CA 3131954 A1 CA3131954 A1 CA 3131954A1
Authority
CA
Canada
Prior art keywords
message
clients
long connection
messages
topic
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
CA3131954A
Other languages
French (fr)
Other versions
CA3131954C (en
Inventor
Heng Xu
Yang Wang
Gang Wang
Dong TANG
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.)
10353744 Canada Ltd
Original Assignee
10353744 Canada Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 10353744 Canada Ltd filed Critical 10353744 Canada Ltd
Publication of CA3131954A1 publication Critical patent/CA3131954A1/en
Application granted granted Critical
Publication of CA3131954C publication Critical patent/CA3131954C/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

This application relates to an information synchronization method, system, apparatus, computer device and storage medium, the methods include receive the messages and the message topics sent by the clients, publish the messages and the message topics to the message middleware, so that any server subscribe the messages and the message topics from the message middleware; Subscribe the topic messages associated with the message topics in the message middleware, and the message middleware is used to receive the topic messages published by any server; When subscribing the topic message associated with the message topics from the message middleware, push the topic message to the clients synchronously. The above methods adopt the way of publishing the message topics and subscription to achieve the real-time information synchronization, and the message can be synchronously forwarded without in the same server.

Description

INFORMATION SYNCHRONIZATION METHOD, SYSTEM, APPARATUS, COMPUTER DEVICE
AND STORAGE MEDIUM
Field [0001] The present disclosure relates to the field of information processing technology and particularly to an information synchronization method, system, apparatus, computer device and storage medium.
Background
[0002] Currently the information synchronization among a plurality of clients is widely used in various industry related to computer. The traditional approach of a plurality of clients' information synchronization is shown in Figure 1. Figure 1 shows the information synchronization mechanism between two clients, to achieve the information synchronization between the client 1 and the client 2, the connections with back-end server A
are requested respectively, the back-end server A is requested to maintain the message topics from a plurality of clients. The client 1 and client 2 send the messages to the same back-end server. The back-end server A is requested to maintain all the clients' connections associated with the topic.
For example, the client 1 sends the message which needs to be forwarded to client 2, client 2 send the message which needs to be forwarded to client 1. When there are a plurality of clients, single back-end server A will be overwhelmed. If there is another message topic needs to be synchronized, the maintenance of a plurality of clients from back-end server A will become very complicated and difficult.
[0003] Therefore, the traditional way of information synchronization has the following problems: if the server maintains a plurality of message topics, the maintenance of a plurality of clients connect to different servers will be difficult, the planning of the server capacity will be difficult. When a single server synchronously forwards information, it is difficult to ensure the real-time information due to the limitation of server's 10 and CPU's memory.
Invention Content
[0004] Based on this, in response to the above technical problems, providing an information synchronization Date Recue/Date Received 2021-09-27 method, system, apparatus, computer device and storage medium that adopts the message topic publishing and subscription to achieve real-time information synchronization without information synchronization and forwarding in the same server.
[0005] An information synchronization method, wherein the method includes:
receiving the messages and message topics sent by the clients, publishing the messages and the message topics to the message middleware, so that any server subscribes the messages and the message topics from the message middleware; Subscribing the topic messages associated with the message topics in the message middleware, the message middleware is used to receive the topic messages published by any server; In one of the implementations, the method also includes: establishing a long connection with the clients, generating the clients' identities of the clients;
associating the long connection with the clients' identities; receiving the messages and message topics sent by the clients, including: receiving the messages and the message topics sent by the clients through the long connection; pushing the topic messages to the clients synchronously, including: determining the long connection according to the clients' identities, publishing the topic messages to the clients synchronously through the long connection.
[0006] In one of the implements, there are a plurality of clients, wherein the clients include a first client and a second client; establishing a long connection with the clients, generating the clients' identities of the clients;
associating the long connection with the clients' identities, including:
establishing the first long connection with the first client, establishing the second long connection with the second client; generating the first identity of the first client, and generating the second identity of the second client;
and the first long connection is associated with the first identity, the second long connection is associated with the second identity; the messages and the message topics sent by the clients are received through the long connection, including:
receiving the messages and the message topics sent by the first client through the first long connection, and receiving the messages and the message topics sent by the second client through the second long connection;
determining the long connection according to the clients' identities, and pushing the topic messages to the clients synchronously through the long connection, including: determining the first long connection according to the first identity, pushing the topic message synchronously to the first client through the first long connection; determining the second the long connection according to the second identity, pushing the topic message synchronously to the second client through the second long connection.

Date Recue/Date Received 2021-09-27
[0007] In one of the implements, the current method also includes: creating a storage container of the key-value pairs, using the keys of the storage container to record the message topics, and using the values corresponding to the keys to record the first identity of the first client and the second identity of the second client; determining the first long connection according to the first identity, and pushing the topic messages to the first client synchronously through the first long connection, determining the second long connection according to the second identity, and pushing the topic messages synchronously to the second client through the second long connection, including: when subscribing the topic message associated with the message topics from the message middleware, the target keys of the storage container are determined according to the message topics, the corresponding values are determined according to the target key, determining the first identity and second identity according to the corresponding values, determining the first long connection according to the first identity, pushing the topic messages synchronously to the first client through the first long connection, determining the second long connection according to the second identity, pushing the topic message synchronously to the second client through the second long connection.
[0008] An information synchronization system, where in the system includes a message management distribution cluster and a message middleware; the message management distribution cluster includes a plurality of servers, wherein one of any servers is used to receive the messages and the message topics sent by the clients, publish the messages and the message topics to the message middleware, and subscribe the topic messages associated with the message topics in the message middleware, when the topic messages associated with the message topics are subscribed from the message middleware, the topic messages are synchronously pushed to the clients; the message middleware is used to receive the topic messages published by any server in the message management distribution cluster, and accept the subscription of the message topics from the server in the message management distribution cluster.
[0009] In one of the implements, a plurality of servers in the message management distribution cluster are distributed connections, each server is deployed using a spring boot microservice structure, the message middleware is a distributed message cache center.
[0010] In one of the implements, one of any servers is provided with a storage container of the key-value pairs, the keys of the storage container are used to record the message topics received by the server, the corresponding values of the keys of the storage container are used to record the clients' identities which send Date Recue/Date Received 2021-09-27 the message topics by microservice requests to the server, the server identifies the clients' long connection through the clients' identities, and send the topic messages associated with the message topics to the clients through the long connection.
[0011] An information synchronization apparatus, wherein the apparatus includes a receiving module configured to receive the messages and message topics sent by the clients, and publish the messages and the message topics to the message middleware, so that any server subscribes the messages and the message topics from the message middleware, and the message middleware is used to receive the topic messages pushed by any server; a synchronization module configured to subscribe the topic messages associated with the message topics subscribed from message middleware, push the topic message to the clients synchronously.
[0012] A computer device comprises a memory, a processor, and a computer program stored in the memory and executed by the processor, wherein the computer program is executed by the processor to perform any steps of the above-mentioned methods.
[0013] A computer readable storage medium stored with computer program, perform any steps of the methods mentioned above when the processor executes the computer program.
[0014] The above information synchronization method, system, apparatus, computer device and the storage medium, the server receives the messages and the message topics sent by the clients, and publish the messages and the message topics to the message middleware, so that the server can subscribe the messages and the message topics from the message middleware; meanwhile, subscribes the topic messages associated with the message topics in the message middleware, and the message middleware is used to receive the topic messages published by the server. When subscribing the topic message associated with the message topics from the message middleware, pushing the topic message to the clients synchronously.
Which concludes that the server pushes the clients' message topics and subscribes the topic messages related to the message topics through the message middleware, and achieving the information synchronization of the message topics by forwarding the topic messages associated with the same message topics without using a single server, when maintaining a plurality of the message topics, the server capacity can be quicky expanded by controlling a plurality of clients to connect to different servers. Meanwhile, there is no need to achieve the information synchronization and forwarding in the same server, and the real-time information synchronization can be achieved without the Date Recue/Date Received 2021-09-27 limitation of the server's TO and CPU memory during the information synchronization procedures.
Brief Description of the Drawings
[0015] The Figure 1 is the traditional information interaction diagram of a plurality of clients' information synchronization.
[0016] The Figure 2 is an implementation of the schematic structural diagram of the information synchronization system.
[0017] The Figure 3 is an implementation of the process diagram of the information synchronization method.
[0018] The Figure 4 is an implementation of the information interaction diagram between the clients and one server or a plurality of servers.
[0019] The Figure 5 is an implementation of the structural diagram of the map container storage information in the server.
[0020] The Figure 6 is an implementation of the display diagram when plural people edit an online document.
[0021] The Figure 7 is an implementation of the schematic structural diagram of the mapping storage in the server.
[0022] The Figure 8 is an implementation of information interaction diagram of the topic messages associated with the editing message topics in the document subscribed from the distributed memory message center by the server.
[0023] The Figure 9 is an implementation of the schematic diagram of the model for achieving the information synchronization.
[0024] The Figure 10 is another implementation of the display diagram of plural people edit an online Date Recue/Date Received 2021-09-27 document.
[0025] The Figure 11 is an implementation of the structural diagram of the information synchronization apparatus.
[0026] The Figure 12 is an implementation of the internal structure of the computer device.
Detailed Description of an Embodiment
[0027] In order to make the current application's purposes, technical solutions, and advantages clearer, the present disclosure is further explained in detail with a particular embodiment, and with reference to the drawings. It shall be appreciated that these descriptions are only intended to be illustrative, but not to limit the scope of the disclosure thereto.
[0028] An information synchronization system provided by the current application. The information synchronization system is one method of the information synchronization to achieve the current application.
Specifically, as shown in Figure 2, the information synchronization system includes a message management distribution cluster 102 and a message middleware 202. the message management distribution cluster 102 includes a plurality of servers. A plurality of servers are distributed connections, and each server is deployed with spring boot microservice structure. Which means a microservice structure is specifically adopted to deploy a plurality of servers in the message management distribution cluster 102. A plurality of clients respectively publish the messages to the message management distribution cluster 102, and the message management distribution cluster 102 respectively synchronizes messages to a plurality of clients. Specifically, the message management distribution cluster 102 includes a plurality of servers, any server is used to receive the messages and the message topics sent by the clients, publish the messages and the message topics to the message middleware 202, and subscribe the topic messages associated with the message topics from the message middleware 202. When the topic messages associated with the message topics are subscribed from the message middleware 202, the topic messages are synchronously pushed to the corresponding clients. The message middleware 202 is used to receive the topic messages published by any server in the message management distribution cluster 102 and accept subscriptions of the message topics from any server in the message management distribution cluster 102. Among them, the message middleware 202 can include a Date Recue/Date Received 2021-09-27 plurality of databases, wherein the databases constitute a distributed message cache center. Specifically, the message middleware 202 can be a distributed message cache center constituted by a Redis cluster.
[0029] In an implementation, any server in the message management distribution cluster 102 is set with a storage container of key-value pairs, and the keys of the storage container are used to record the message topics received by any server, and the keys of the storage container corresponds to the values are used to record the identities of the clients that send microservice requests for the message topics to any server. Any server recognizes the clients' long connection through the clients' identities and sends the topic messages of the message topics to the clients through the long connection.
[0030] Specifically, a map container is set in any server in the message management distribution cluster 102.
Any server integrated the long connection message publication mechanism, and the specific long connection message publication mechanism includes the WebSocket function. Any server adopts WebSocket to build long connection with the clients, adopts WebSocket to receive messages and the message topics sent by the clients, and synchronizes the topic messages to the clients. Any server adopts the map container to record the identity of one or more clients corresponding to each message topics to identify the correspondingly clients, receives and sends the topic message of the message topics to the clients through the clients' correspondingly long connection.
[0031] Therefore, the adoption of information caching in the message middleware for the information subscription and publishing achieves the real-time information synchronization. Meanwhile, since the clients does not necessarily connect to the same designated back-end server to synchronously publish the topic messages of the message topics through the special algorithm, the back-end server can be continuously expanded to meet the requests of many clients' connections at the same time.
Furthermore, there is no need to continuously maintain a single server, and only need to estimate the number of clients to correspondingly expand the servers in the message management distribution cluster 102, which greatly improves the support capability of information synchronization.
[0032] In one implementation, as shown in Figure 3, the current application provides an information synchronization method, which is applied to the message management distribution cluster 102 in Figure 2, including the following steps:

Date Recue/Date Received 2021-09-27
[0033] S102, receiving the messages and the message topics sent by the clients, and publishing the messages and the message topics to the message middleware, so that any server can subscribe the messages and the message topics from the message middleware.
[0034] In the current implementation, the message management distribution cluster 102 deploys a plurality of service machines by microservice form and implements code to achieve the subscription of the topic messages of message topics in the message middleware and publish the messages and the message topics sent by the clients. The clients build a long connection with the back-end server message management distribution cluster 102 through a long connection and carry the followed message topics.
Specifically, each client can build a long connection with a plurality of servers in the message management distribution cluster 102 though a polling distribution method, as shown in Figure 4. Among them, microservice 1 and microservice 2 are respectively referred to two different servers in the message management distribution cluster 102. Each server maintains the connection relationships with the clients in the manner of one message topic maintained by one connection maintenance. Each server maintains all connections between the current server and the clients, and responsible for receiving all messages from the clients and forwarding and synchronizing the messages from the other clients.
[0035] In the current implementation, any server in the message management distribution cluster 102 receives the messages and the message topics sent by the clients, and synchronously publishes the messages and the message topics to the message middleware. The message middleware is used to receive the message topics published by any server in the message management distribution cluster 102 and the topic messages associated with the message topics published by any server. The message middleware is also used to accept information subscriptions from any server in the message management distribution cluster 102. When any server publishes the message topics to the message middleware, the other servers can synchronously subscribe the topic messages associated with the message topics from the message middleware. Therefore, the information synchronization of the message topics is achieved.
[0036] S104, subscribing the topic messages associated with the message topics in the message middleware, wherein the message middleware is used to receive the topic messages published by any server.

Date Recue/Date Received 2021-09-27
[0037] In the current implementation, any server can not only publish the messages and the message topics to the message middleware, but also can synchronously obtain the topic messages published by the other servers by subscribing the topic messages of the message topics from the message middleware. Among them, the topic messages associated with message topic includes data information obtained by any operations on the message topics from the other servers. The other servers publish the topic messages to the message middleware, and any server reads the topic messages from the message middleware by subscribing the topic messages associated with the message topics in the message middleware.
[0038] For instance, the message topics can be an online document, and the topic messages associated with the message topics can be any operate information on the online document A by any client. Such as the data information filled in the online document A, the data's modified information of the document A. Therefore, the information synchronization of the message topics can be achieved.
[0039] S106, publishing the topic messages to the clients synchronously when subscribing the topic message associated with the message topics from the message middleware,
[0040] In the current implementation, when any server subscribes the topic message associated with the message topics from the message middleware, the topic messages are synchronized to the correspondingly clients. Specifically, any server builds WebSocket connections with the clients, receives the message topics sent by the clients through the WebSocket connections, and synchronously pushes the topic messages to the clients through the WebSocket connections. Therefore, the information synchronization is achieved.
[0041] In the above information synchronization method, any server receives the message topics sent by the clients and publishes the message topics to the message middleware, so that any server subscribes the message topics from the message middleware; meanwhile, subscribing the topic messages associated with the message topics in the message middleware, the message middleware is used to receive the topic messages published by any server. When having subscribed the topic messages associated with the message topics in message middleware, pushing the topic messages to the clients synchronously. Which can be seen that the server uses the message middleware to achieve the publication of the clients' message topics and the topic messages associated with the subscribed message topic, without using a single server to achieve the forwarding of the topic messages of the same message topics, then achieving the information synchronization of the message Date Recue/Date Received 2021-09-27 topics, when maintaining a plurality of message topics, the server can be quickly expanded by the controlling of the connections between a plurality of clients and different servers.
Meanwhile, there is no need to achieve the information forwarding and synchronization in the same server, and the real-time information synchronization can be achieved without the limitation of the server's TO and CPU memory during the information synchronization procedures.
[0042] In an implementation, before S102, also includes building the long connection with the clients, generating the clients' identities of the clients, associating the long connection with the clients' identities.
S102 includes receiving the message and message topics sent by the clients through the long connection. S106 includes determining the long connection according to the clients' identities, and synchronously pushing the topic message to the clients through the long connection.
[0043] In the current implementation, the server builds a communication with the clients through a long connection and associates the long connection with the clients. A long connection maintains a message topic of the clients. When the server subscribes the topic messages of the message topics and determines the clients corresponding to the subscribed message topics, and then determines the corresponding long connection according to the clients' identities and pushes the topic messages to the clients synchronously through the long connection. Therefore, the synchronization of the topic messages with the message topics can be achieved.
Specifically, between the clients and the server, WebSocket is used as the message publication mechanism for the long connection. The clients integrate the WebSocket function, and the server also achieves the WebSocket message receiving function.
[0044] In an implementation, there are a plurality of clients, and a plurality of clients include a first client and a second client. Building a long connection with the clients, generating the clients' identities of the clients, and associating the long connection with the clients' identities, including:
building the first long connection with the first client, and building the second long connection with the second client; generating the first identity of the first client, generating the second identity of the second client;
associating the first identity with the first long connection, and associating the second identity with the second long connection. Receiving the messages and the message topics sent by the clients through the long connection including receiving the messages and the message topics sent by the first client through the first long connection and receiving the messages and the message topics sent by the second client through the second long connection.
Determining the long connection Date Recue/Date Received 2021-09-27 according to the clients' identities and pushing the topic messages to the clients synchronously through the long connection including determining the first long connection according to the first identity, and synchronously pushing the topic messages to the first client through the first long connection; determining the second long connection according to the second identity, and synchronously pushing the topic messages to the second client through the second long connection.
[0045] In the current implementation, the server can receive the messages and the message topics sent by a polarity of clients, and then sends the messages and the message topics to the message middleware, so that the other servers can subscribe the topic messages of the message topics from the message middleware. At this time, the server needs to maintain the topic messages of the message topics sent by a plurality of clients.
Specifically, the server builds a long connection with the first client and the second client respectively, the first long connection is associated with the first client, and the second client is associated with the second long connection. The way of association can be the generation of the identity of each client and establishing the association between the identity and the long connection. When the server receives the messages and the message topics sent by the first client through the first long connection, it records the relationship between the message topics and the first long connection. When the server receives the messages and the message topics sent by the second client through the second long connection, it records the relations of the topic messages and the message topics with the second long connection. When the server subscribes the topic messages associated with the message topics from the message middleware, searches for the clients associated with the message topics and the long connection corresponding to the clients in the local server and sends the topic messages to the corresponding clients through the corresponding long connection. Therefore, the server can connect to a plurality of clients in a balanced way, so that each server can handle a certain number of connections and messages publishing jobs. At this time the server can fully take advantage of the internal resources of TO, CPU, and memory in the local server, and then achieves the efficient information publishing.
[0046] In an implementation, before S106, which further includes creating a storage container for key-value pairs, using the keys of the storage container to record the message topics, and using the values corresponding to the keys to record the first identity of the first client and the second identity of the second client. Determining the first long connection according to the first identity, pushing the topic messages synchronously to the first client through the first long connection, determining the second long connection according to the second identity, pushing the topic messages synchronously to the second client through the second long connection, Date Recue/Date Received 2021-09-27 which includes: when associating the topic message with the message topics from the message middleware, determining the storage container's keys according to the message topics, determining the corresponding values according to the target keys, determining the first identity and the second identity according to the corresponding values, determining the first long connection according to the first identity and pushing the topic messages synchronously to the first client through the first long connection, determining the second long connection according to the second identity and pushing the topic messages synchronously to the second client through the second long connection.
[0047] In the current implementation, the storage container of the key-value pairs can be map container. As shown in Figure 5, the 'key' in the map container represents the keys, 'value' represents the values. Key-value pairs are associated. The keys are used to record the message topics, and the values corresponding to the keys are used to record the clients' identities corresponding to the message topics. When subscribing the topic messages of the message topics, the server can search in the internal map container to determine the clients corresponding to the message topics, then pushing the subscribed topic messages to the clients. Specifically, the server generates the unique client identity for each client, and the server maintains a long connection associated with the clients' identities. And then saves to the local map after mapping the clients' identities and the message topics, the keys are the message topics id that the clients followed, values are the connection list corresponding to the clients. When the clients get the latest messages, that is when subscribing the topic messages of the message topics, searching the map container through the message topics id to get the clients which connects to the message topics, and pushing the topic messages to the clients through each clients' long connection.
[0048] For instance, the internal map container of both the server 1 and server 2 store the identity information of each client who builds the long connection with the container. Assuming that there are two servers that can support 1000 clients' connections, Redis cluster is used as the message middleware, Redis cluster can meet the demand of reading and writing, assuming that QPS is 1 w/s. When the number of clients connections increases to 10,000, the number of servers can increase linearly to 20, and one Redis server as the Redis cluster can also meet the demand. Similarly, when the number of clients connections increases to 1,000,000, the number of servers can increase linearly to 2,000. Assuming that the writing request is 100,000/s and the synchronization information to be pushed is 1,000,000, then the Redis cluster will be expanded to 10 master servers and 100 sub servers. The messages are evenly published to the Redis cluster by hash modulo. Currently, Date Recue/Date Received 2021-09-27 the number of the servers is 2,000, and subscribing the Redis cluster to synchronize the messages can meet the real-time requests. Therefore, there is no need to continuously maintain a single server and only need to estimate the number of the clients to achieve the correspondingly expand of the server and the message middleware, which greatly improves the support capabilities of the information synchronization.
[0049] For the above-mentioned information synchronization method and the information synchronization system that achieves the method, a specific implementation scenario is provided as below:
[0050] Specifically, the editing of online documents by a polarity of people is used as a specific application of the present disclosure, as shown in Figure 6.
[0051] Currently, there are two clients co-editing the file 'New Excel Document'. User A acts as client A
and user B acts as client B. Client A edits the document cell D1 and sends the edited data to the message management distribution cluster, collectively referred to below as DCMMCDistributedConnectionMessageManagerCluster. The message format(mesagel) of data sent by a client is as bellow:
{
"baseRevision": 12, "cli entsId": "cb1f27afef924e78a118ec6abbb3dfa3", "docId ": "16538",
[0052]
"content": "[{"sheetName": "Sheetl", "row": 0, "col": 3, "opType":
"editCell", "value": " edit cell 1", "valueType" : {}, "validator" : {}, "valudeClass": "string", "multi":
falsell", "errorCode": "0", "opType": "editCell", "sheetName": "Sheetl"
[0053] Whenever a new client goes online, the client will build a long WebSocket connection with DCMMC.
DCMMC assigns a client's identity (client id). DCMMC is responsible for managing the long connection of each client, using the mapping of the map to save the client connection which editing the same document. The Date Recue/Date Received 2021-09-27 structure is shown in Figure 7.
[0054] Should be noted that each server in the DCMMC has an independent map container to manage the connection structure.
[0055] Each time when a server is added to the DCMMC, the server will subscribe the information of the message topics from the message middleware. The message middleware can adopt Redis to achieve the distributed memory message center, and the server subscribes the distributed memory message center to edit the topic messages of the message topics in the document. For example, as shown in Figure 8. Assuming the server A receives a message (messagel) sent by client A. Server A publishes messagel to the Redis channel through the subscribed message topic. At this time, each server in DCMMC will receive the messagel published by the server A. According to the connection management mapping map container maintained by this server, the other servers will find the corresponding connection WebSocket of the clients B according to the docId of the message topic and push the messagel to the clients B.
[0056] Among them, DCMMC adopts Redis as an implementation and pushes high-performance messages to one to N clients by the memory, the model is shown in the Figure 9.
Finally, the clients B receives the pushed messagel which displays in the cell, as shown in Figure 10.
[0057] An information synchronization method and an information synchronization system of the present application achieve the high performance and unlimited multi-terminal information synchronization in the clients, distributed memory cache is used to achieve low latency of information, message publishing and subscription are used to achieve unlimited expansion of the clients, the full-duplex communication protocol is used to achieve non-blocking information synchronization between front-end and back-end, each client can participate in the information synchronization of a plurality of message topics at the same time.
[0058] Should understand that although the various steps in the diagram are displayed in sequences as indicated by the arrows, the steps are not necessarily performed in sequence in the order indicated by the arrows. Unless there is a clear description in this article, there is no strict order for the execution of these steps, and these steps can be executed in another order. In addition, at least parts of the steps in the drawings can include a plurality of sub-steps or a plurality of stages. These sub-steps or stages are not necessarily executed Date Recue/Date Received 2021-09-27 at the same time but can be executed at different time. The execution order of these sub-steps or stages is also not necessarily sequential, the execution order can be performed alternately with the other steps or other sub-steps or at least one part of the stages.
[0059] The current application also provides an information synchronization apparatus, as shown in Figure 11, the apparatus includes receiving module 10, subscription module 20 and synchronization module 30. The receiving module 10 is configured to receive messages and the message topics sent by the clients, and publish the messages and the message topics to the message middleware, so that any server message middleware can subscribe the messages and message topics; the subscription 20 is configured to subscribe the topic messages associated with the message topics in the message middleware, the message middleware is used to receive the topic messages published by any server; the synchronization module 30 is configured to push the topic messages synchronously to the clients when subscribing the topic messages associated with the message topics from the message middleware.
[0060] In one of the implementations, the information synchronization apparatus also includes an associated module for building the long connection with the clients and generating the clients' identities of the clients, associating the long connection with the clients' identities. The receive module 10 is specifically used to receive messages and the message topics sent by the clients through the long connection. The synchronization module 30 is specifically used to determine the long connection according to the clients' identities, and synchronously push the topic messages to the clients through the long connection.
[0061] In one of the implementations, there are a plurality of clients, and the a plurality of clients include a first client and a second client; The association module is specifically used to build the first long connection with the first client and build the second long connection with the second client; generate the first identity of the first client, generate the second identity of the second client; associate the first long connection with the first identity, associate the second long connection with the second identity;
The receive module 10 is specifically used to receive the messages and the message topics sent by the first client through the first long connection, and the messages and message topics sent by the second client through the second long connection;
the synchronization module 30 is specifically used to determine the first long connection according to the first identity and push the topic message according to the first long connection;
determine the second long connection according to the second identity and push the topic message to the second client according to the Date Recue/Date Received 2021-09-27 second long connection.
[0062] In one of the implementations, the information synchronization apparatus also includes the creation module for creating the storage container of key-value pairs, using the keys of the storage container to record the message topics, and using the values corresponding to the keys to record the first client's first identity and the second client's second identity; the synchronization module 30 is specifically used to determine the target keys of the storage container according to the message topics when subscribing the topic messages associated with the message topics from the message middleware, and determine the corresponding values according to the target keys, determine the first and second identity according to the corresponding values, determine the first long connection according to the first identity and synchronously push any topic message to the first client through the first long connection, determine the second long connection according to the second identity and synchronously push any topic message to the second client through the second long connection.
[0063] For the specific limitation of the information synchronization apparatus, could refer to the above limitation of the information synchronization methods which will not be repeated here. Each module in the above information synchronization apparatus can be implemented in whole or in part by software, hardware and both software and hardware combinations. The above modules can be embedded in the form of hardware or independently in the processor of the computer device or can be stored in the memory of the computer device in the form of software, so that the processor can call and execute the operations corresponding to the above modules.
[0064] In one implementation, a computer device is provided. The computer device can be a server, and its internal structure diagram is shown in Figure 12. The computer device includes processor, memory, network interface, and database. Among them, this computer device's processor is used to provide calculation and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operate system, a computer program, and a database. The internal memory provides an environment for the operating of the operate system and computer program in the non-volatile storage medium. A network interface of the computer device is used to connect with the external terminal to receive the message topics sent by the clients and the topic messages associated with the message topics. The computer program is executed by the processor to achieve the methods of the information synchronization.

Date Recue/Date Received 2021-09-27
[0065] Those skilled in the art can understand that the structure shown in Figure 12 is only a part of the structure diagram related to the current application's solution and does not constitute a limitation on the computer device to which the solution of the current application is applied.
The specific computer device can include more or fewer components than that shown in the figure, or combine certain components, or have different components arrangements.
[0066] In one implementation, a computer device is provided, including a memory, a processor and a computer program stored on the memory and ran on the processor, and the processor implements the following steps when the computer program is executed: receiving the messages and the message topics sent by the clients, publishing the messages and the message topics to the message middleware, so that any server subscribes the messages and the message topics from the message middleware;
subscribing the topic messages associated with message topics in the message middleware, and the message middleware is used to receive the topic messages published by any server; When the topic messages associated with the message topics are subscribed from the message middleware, the topic message is synchronously pushed to the clients.
[0067] In one of the implementations, when the processor executes the computer program, the following steps are implemented: building the long connection with the clients to generate the clients' identities of the clients; associating the long connection with the clients' identities; when the processor executes the computer program to achieve the above receiving the messages and the message topics sent by the clients, the following steps are specifically implemented: receiving the messages and the message topics sent by the clients through the long connection. When the processor executes the computer program to implement any step of the above-mentioned synchronously pushing the topic messages to the clients, the following steps are specifically implemented: determine a long connection according to the clients' identities, and synchronously pushing any topic message to the clients through the long connection.
[0068] In one of the implementations, there are a plurality of clients, and a plurality of clients include a first client and a second client; when the processor executes the computer program to implement the above-mentioned steps of building long connection with the clients, generating the clients' identities, and associating the long connection with the clients' identities, it specifically implemented following steps: build the first long connection with the first client, build the second long connection with the second client; generating the first Date Recue/Date Received 2021-09-27 client's identity of the first client and generating the second client's identity of the second client; associating the first long connection with first identity and associating the second long connection with the second identity.
When the processor executes the computer program to implement the above-mentioned steps of receiving the messages and the message topics sent by the clients through the long connection, the following steps are specifically implemented: receiving the message and message topics sent by the first client through the first long connection, receiving the messages and the message topics sent by the second client through the second long connection; the processor executes the computer program to implement the above-mentioned steps of determining the long connection according to the clients' identities, and pushing any topic message synchronously to the clients through the long connection, the following steps are specifically implemented:
the first identity determines the first long connection and pushes any topic message to the first client synchronously through the first long connection; determining the second long connection according to the second identity and pushing any topic message to the second client synchronously through the second long connection.
[0069] In one of the implementations, when the processor executes the computer program, the following steps are implemented: creating a storage container of key-value pairs, using the keys of the storage container to record the message topics, and using the values corresponding to the keys to record the first identity of the first client and the second identity of the second client; the processor executes the computer program to achieve the above-mentioned of determining the first long connection according to the first identity and pushing any topic message synchronously to the first client through the first long connection, determining the second long connection according to the second identity and pushing any topic message synchronously to the second client through the second long connection, the following steps are specifically implemented: when subscribing any topic message associated with the message topics from the message middleware, determining the target keys of the storage container according to the message topics, determining the corresponding values according to the target keys and determining the first identity and second identity according to the corresponding values, determining the first long connection according to the first identity, pushing any topic message synchronously to the first client through the first connection, determining the second long connection according to the second identity, pushing any topic message synchronously to the second client through the second connection.
[0070] In one implementation, a computer readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the following steps are Date Recue/Date Received 2021-09-27 implemented: receiving the message topics sent by the clients and publish the message topics to the message middleware, so that any server subscribes the message topics from the message middleware; subscribing the topic messages associated with the message topics in the message middleware, and the message middleware is used to receive the topic messages published by any server; When subscribing any topic message associated with the message topics from the message middleware, pushing any topic message synchronously to the clients.
[0071] In one of the implementations, the following steps are implemented when the processor executes the computer program: building the long connection with the clients' identities and generating the clients' identities of the clients; associating the long connection with the clients' identities; when the processor executes the computer program to achieve the above-mentioned steps of receiving the message topics sent by the clients, the specific steps are implemented as following: receiving the message topics sent by the clients through the long connection. The computer program is executed by the processor to achieve the above-mentioned of pushing any topic message synchronously, the following steps are specifically implemented:
determining the long connection according to the clients' identities and push any topic message synchronously to the clients through the long connection.
[0072] In one of the implementations, there are a plurality of clients, and a plurality of clients include a first client and a second client; when the processor executes the computer program to implement the above-mentioned of building the long connection with the clients, generating the clients' identities of the clients and associating the long connection with clients' identities, the following steps are specifically implemented:
building the first long connection with the first client and building the second long connection with the second client; generating the first identity of the first client and generating the second identity of the second client;
associating the first long connection with the first identity and associating the second long connection with the second identity. When the processor executes the computer program to achieve the above-mentioned steps of receiving the message topics sent by the clients through the long connection, the following steps are specifically implemented: receiving the message topics sent by the first client through the first long connection and receiving the message topics sent by the second client through the second long connection; when the computer program is executed by the processor to implement the above-mentioned steps of determining the long connection according to the clients' identities and pushing any topic message synchronously to the clients through the long connection, the following steps are specifically implemented:
determining the first long connection according to the first identity, pushing any topic message synchronously to the first client through Date Recue/Date Received 2021-09-27 the first long connection; determining the long connection according to the second identity, push any topic message synchronously to the second client through the second long connection.
[0073] In one of the implementations, when the computer program is executed by the processor, the following steps are implemented: creating a storage container of the key-value pairs, using the keys of the storage container to record the message topics and using the values corresponding to the keys to record the first identity of the first client and the second identity of the second client; when the computer program is executed by the processor to achieve the above-mentioned of determining the first connection according to the first identity, pushing any topic message to the first client through the first connection, determining the second connection according to the second identity and pushing any topic message to the second client through the second connection, the following steps are specifically implemented: when any topic message associated with the message topics is subscribed from the message middleware, the target keys of the storage container are determined according to the message topics, and the corresponding values are determined according to the target keys. Determining the first identity and the second identity according to the corresponding values, determining the first long connection according to the first identity, pushing any topic message synchronously to the first client through the first long connection, and determining the second long connection according to the second identity, pushing any topic message synchronously to the second client through the second long connection.
[0074] The ordinary skilled in the art can understand that all or parts of the procedures in the above-mentioned implementation methods, which can be implemented by instructing related hardware through the computer program. The computer program can be stored in the readable storage medium of the non-volatile computer, when the computer program is executed, it can include the procedures of the implementations of the above-mentioned methods. Among them, in the implementations provided in the application, any reference to memory, storage, database or other media can include non-volatile and/or volatile memory. Non-volatile can include read only memory (ROM), programable ROM (PROM), electrically programmable ROM
(EPROM), electrically erasable programmable ROM (EEPROM), or flash memory.
Volatile memory can include random access memory (RAM) or external cache memory. As an instruction but not a limitation, RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM
(SDRAM), double data rate SDRAM (DDRSDRAM), enhanced type SDRAM (ESDRAM), synchronous link (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic Date Recue/Date Received 2021-09-27 RAM (DRDRAM), and the memory bus dynamic RAM (RDRAM), etc.
[0075] The technical features of the above-mentioned implementations can be randomly combined, for concisely statement, not all possible combinations of technical features in the above-mentioned implementations are described. However, if there are no conflicts in the combinations of these technical features, it shall be within the scope of this descriptions.
[0076] The above-mentioned implementations are only several implementations in this disclosure, whose description is more specific and detailed, but cannot be understood as the limitation of the scope of the invention patent. Evidently those ordinary skilled in the art can make various modifications and variations to the disclosure without departing from the spirit and scope of the disclosure.
Therefore, the appended claims are intended to be construed as encompassing the described embodiment and all the modifications and variations coming into the scope of the disclosure.

Date Recue/Date Received 2021-09-27

Claims (10)

1. A method for information synchronization comprises:
receiving messages and message topics sent by clients, and publishing the messages and the message topics to a message middleware, wherein any server subscribes the messages and the message topics from the message middleware;
subscribing topic messages associated with the message topics in the message middleware, the message middleware is used to receive the topic messages published by any server; and when the message middleware subscribes one of any topic messages associated with the message topics, pushing the topic message synchronously to the clients.
2. The method according to claim 1 comprises:
building a long connection with the clients and generating clients' identities of the clients;
associating the long connection with the clients' identities;
the messages and the message topics sent by the clients comprising:
receiving the messages and the message topics sent by the clients through the long connection;
synchronously pushing the topic message to the clients comprising:
determining the long connection according to the clients' identities and pushing the topic message synchronously to the clients through the long connection.
3. The method according to claim 2, there are a plurality of clients, and the clients include a first client and a second client;
wherein building the long connection with the clients, generating the clients' identities of the clients, and associating the long connection with the clients' identities comprising:
building the first long connection with the first client and building the second long connection with the second client;
generating a first identity of the first client and generating a second identity of the second client; and associating the first long connection with the first identity and associating the second long connection with the second identity;
the long connection receives the messages and the message topics sent by the clients comprising:
receiving the messages and the message topics sent by the first client through the first long Date Recue/Date Received 2021-09-27 connection and receiving the messages and the message topics sent by the second client through the second long connection;
determining the long connection according to the clients' identities and pushing the topic message synchronously to the clients through the long connection comprising:
determining the first long connection according to the first identity and pushing the topic message synchronously to the first client through the first long connection; and determining the second long connection according to the second identity and pushing the topic message synchronously to the second client through the second long connection.
4. The method according to claim 3 also comprises:
creating a storage container of key-value pairs, using the keys of the storage container to record the message topics, and using the values corresponding to the keys to record the first identity of the first client and the second identity of the second client;
determining the first long connection according to the first identity, pushing the topic message synchronously to the first client through the first long connection, determining the second long connection according to the second identity, and pushing the topic message synchronously to the second client through the second long connection comprising:
determining the target keys of the storage container according to the message topics when the topic messages associated with the message topics are subscribed from the message middleware, determining the corresponding values according to the target keys, determining the first identity and the second identity according to the corresponding values, determining the first long connection according to the first identity, pushing the topic message synchronously to the first client through the first long connection, determining the second long connection according to the second identity, pushing the topic message synchronously to the second client through the second long connection.
5. An information synchronization system wherein the system comprises a message management distribution cluster and a message middleware;
the message management distribution cluster includes a plurality of servers, wherein one of any servers is used to receive the messages and the message topics sent by the clients, publish the messages and message topics to the message middleware, subscribe the topic messages associated with the message topics in the message middleware, and push the topic messages synchronously to the clients when the topic messages Date Recue/Date Received 2021-09-27 associated with the message topics are subscribed from the message middleware;
and the message middleware is used to receive the topic messages from the server in the message management distribution cluster and accept a subscription to the message topics published by the server in the message management distribution cluster.
6. The system characteristics according to claim 5, wherein a plurality of servers in the message management distribution cluster are distributed connections, each server is deployed with a spring boot microservice structure, and the message middleware is a distributed message cache center.
7. The system characteristics according to claim 5, wherein a storage container of key-value pairs are set in the server, the keys of the storage container is used to record the message topics from the server, the corresponding values of the keys of the storage container is used to record the clients' identities of microservice requests, wherein the microservice requests send the message topics to the server, the server identifies the clients' long connections through the clients' identities, and send the topic messages to the clients with the message topics through the long connection.
8. An information synchronization apparatus wherein the apparatus comprises:
a receiving module is configured to receive the messages and message topics sent by the clients, publish the messages and the message topics to the message middleware, so that the server subscribes the messages and message topics from a message middleware;
a subscription module is configured to subscribe the topic messages associated with the message topics from the message middleware, the message middleware is used to receive the topic messages published from the server; and a synchronization module is configured to synchronously push the topic messages associated with the message topics to the clients when subscribing the topic messages from the message middleware.
9. A computer device comprises a memory, a processor, and a computer program stored in the memory and executed by the processor, wherein the computer program is executed by the processor to perform any steps of the methods in claim 1 to 4.

Date Recue/Date Received 2021-09-27
10. A readable storage medium wherein a computer program is stored, the processor executes the program to perform any steps of the methods in claim 1 to 4.
Date Recue/Date Received 2021-09-27
CA3131954A 2020-09-29 2021-09-27 Information synchronization method, system, apparatus, computer device and storage medium Active CA3131954C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011052983.5A CN112351068A (en) 2020-09-29 2020-09-29 Information synchronization method, system, device, computer equipment and storage medium
CN202011052983.5 2020-09-29

Publications (2)

Publication Number Publication Date
CA3131954A1 true CA3131954A1 (en) 2022-03-29
CA3131954C CA3131954C (en) 2023-11-07

Family

ID=74361334

Family Applications (1)

Application Number Title Priority Date Filing Date
CA3131954A Active CA3131954C (en) 2020-09-29 2021-09-27 Information synchronization method, system, apparatus, computer device and storage medium

Country Status (2)

Country Link
CN (1) CN112351068A (en)
CA (1) CA3131954C (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115002213A (en) * 2022-06-01 2022-09-02 上海嘉车信息科技有限公司 Data transmission method and framework

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113938497A (en) * 2021-12-17 2022-01-14 中证信用增进股份有限公司 Data synchronization method, device and system based on message middleware
CN114422569A (en) * 2021-12-30 2022-04-29 天翼云科技有限公司 Message pushing method and device of cloud desktop
CN114827171B (en) * 2022-03-23 2023-12-15 青岛中科曙光科技服务有限公司 Information synchronization method, apparatus, computer device and storage medium

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104811459A (en) * 2014-01-23 2015-07-29 阿里巴巴集团控股有限公司 Processing method, processing device and system for message services and message service system
CN111131501B (en) * 2019-12-31 2022-03-15 郑州信大捷安信息技术股份有限公司 MQTT protocol-based message pushing system and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115002213A (en) * 2022-06-01 2022-09-02 上海嘉车信息科技有限公司 Data transmission method and framework

Also Published As

Publication number Publication date
CN112351068A (en) 2021-02-09
CA3131954C (en) 2023-11-07

Similar Documents

Publication Publication Date Title
CA3131954C (en) Information synchronization method, system, apparatus, computer device and storage medium
RU2471227C2 (en) Peer-to-peer synchronisation assisted with service unit
WO2020147392A1 (en) Method and system for data synchronization between databases
EP2320616B1 (en) Mobile searching method and system, and method for synchronizing search ability of searching server
KR101150146B1 (en) System and method for managing cached objects using notification bonds
WO2013075578A1 (en) System and method for offline download of network resource file
CN105138571B (en) Distributed file system and method for storing massive small files
KR20140038988A (en) Efficient state reconciliation
CN109344122B (en) Distributed metadata management method and system based on file pre-creation strategy
US6918120B2 (en) Remote file system using network multicast
CN110046062B (en) Distributed data processing method and system
CN109639773B (en) Dynamically constructed distributed data cluster control system and method thereof
WO2016095149A1 (en) Data compression and storage method and device, and distributed file system
CN111641700B (en) Ceph object-based management and retrieval implementation method for storage metadata
CN101442558A (en) Method and system for providing index service for P2SP network
WO2017092384A1 (en) Clustered database distributed storage method and device
CN114827171B (en) Information synchronization method, apparatus, computer device and storage medium
CN111193789A (en) Subscription information pushing method and device, computer equipment and readable storage medium
CN113259476B (en) Message pushing method and system
EP3998754B1 (en) Data distribution method, storage server and subscription server
CN114254150B (en) Distributed video storage system and storage method based on block chain
CN113051091A (en) Process-level cache data synchronization method and device
CN113076298A (en) Distributed small file storage system
CN115297130A (en) Distributed storage network data synchronization method based on block chain
CN112383629B (en) Method for realizing high-efficiency migratable MQTT Broker subscription tree

Legal Events

Date Code Title Description
EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428

EEER Examination request

Effective date: 20220428