Domain name access request forwarding method and apparatus, and content distribution network

By aggregating domain access requests with low query rates to a second node in the CDN system and using its long-lived connection with the origin server to forward requests, the problem of long-lived connection drops is solved, improving user response speed and system stability.

CN122293632APending Publication Date: 2026-06-26HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
HUAWEI TECH CO LTD
Filing Date
2024-12-24
Publication Date
2026-06-26

AI Technical Summary

Technical Problem

Long-established connections pre-built by CDN nodes will be closed by the origin server if they are not used for a period of time, which will require re-establishing connections when responding to user requests, increasing response time.

Method used

The first node aggregates domain access requests with low query rates to the second node. The second node forwards domain access requests through a long-lived connection with the origin server, reducing the probability of long-lived connection drops and improving the reuse rate of long-lived connections.

Benefits of technology

It improves user experience, reduces response time to user requests, and enhances the stability and efficiency of the CDN system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122293632A_ABST
    Figure CN122293632A_ABST
Patent Text Reader

Abstract

This invention provides a method, apparatus, and content delivery network for forwarding domain name access requests. The method is applied to a first node deployed in a content delivery network. The content delivery network also deploys a control center and a second node. The second node has a long-lived connection with the origin server of the domain name. The method includes: obtaining a target domain name sent by the control center, where the global query rate of the target domain name is less than or equal to a query rate threshold, and the global query rate is the query rate of the content delivery network for the target domain name; obtaining a domain name access request, which includes the domain name; and, if the domain name is the same as the target domain name, sending the domain name access request to the second node, which is the aggregation point for domain names in the content delivery network. The second node is used to send the domain name access request to the origin server via the long-lived connection. This method can aggregate domain name access requests from domains with low query rates, increasing the probability of reusing the long-lived connection already established with the origin server.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of communication technology, and in particular to a domain name access request forwarding method, apparatus and content distribution network. Background Technology

[0002] CDN (Content Distribution Network) is an advanced traffic distribution network built on the existing Internet.

[0003] For dynamic content, CDN nodes do not store the content; it is necessary to retrieve it from the origin server.

[0004] Currently, CDN nodes can proactively establish long-lived connections with the origin server in advance. When a user request arrives, the established long-lived connection is reused.

[0005] However, if a CDN node's pre-established long-lived connection is not used for a period of time, the origin server will close the corresponding long-lived connection. After that, when the CDN node responds to a request, it needs to re-establish a connection with the origin server, which increases the time required to respond to user requests. Summary of the Invention

[0006] This invention provides a domain name access request forwarding method, apparatus, and content delivery network. A first node can aggregate domain name access requests for domains with low query rates to a second node. The second node forwards the domain name access requests to the origin server through a long connection with the origin server, thereby reducing the probability of the long connection established between the second node and the origin server being broken and increasing the probability of reusing the long connection established between the second node and the origin server, thereby improving the user experience.

[0007] In a first aspect, embodiments of the present invention provide a domain name access request forwarding method, applied to a first node, the first node being deployed in a content delivery network, the content delivery network also deploying a control center and a second node, the second node having a long-lived connection with the origin server of the domain name, the method comprising:

[0008] First, the target domain name sent by the control center is obtained. The global query rate of the target domain name is less than or equal to the query rate threshold. The global query rate is the query rate of the content delivery network for the target domain name. After obtaining the target domain name with a low global query rate, domain name access requests are continuously obtained. If the domain name included in the domain name access request is the same as the target domain name with a low global query rate, the domain name access request is sent to the second node. The second node is the aggregation point of the domain name in the content delivery network. The second node is used to send a large number of aggregated domain name access requests to the origin server through a long connection, thereby reducing the probability of long connection disconnection.

[0009] In this solution, the first node can aggregate domain name access requests for the same domain name to the node. The node forwards the domain name access requests to the origin server through a long connection with the origin server, thereby reducing the probability of the long connection established between the second node and the origin server being broken and increasing the probability of reusing the long connection established between the second node and the origin server, thus improving the user experience.

[0010] In one possible implementation, to enable the control center to perceive the global query rate of a domain name, before obtaining the target domain name sent by the control center, the method includes:

[0011] The node query rate of a domain name is determined, which is the query rate of the first node for the domain name. The node query rate of the domain name is sent to the control center. After receiving the node query rates in the content delivery network, the control center summarizes them and can calculate the global query rate of the domain name.

[0012] In this solution, the query rate of each node is statistically analyzed, and then the query rates of the nodes are aggregated to obtain a global query rate with high reference value.

[0013] In one possible implementation, the method further includes: obtaining node information sent by the control center, the node information being used to indicate multiple relay nodes for the source station to the first node; after obtaining multiple relay nodes routed to the source station, determining the second node from the multiple relay nodes based on the domain name, and subsequently sending the domain name access request to the second node to achieve aggregation.

[0014] In this implementation example, determining the second node from candidate second nodes based on the domain name includes:

[0015] First, based on the consistent hashing algorithm, determine the first hash value corresponding to each of the multiple relay nodes. Then, based on the same consistent hashing algorithm, determine the second hash value corresponding to the domain name. At this time, the second hash value is the same as a certain first hash value. Subsequently, the relay node corresponding to the first hash value that is the same as the second hash value can be used as the second node.

[0016] This solution uses a consistent hashing algorithm to converge domain name access requests from different first nodes to the same second node. The second node forwards the domain name access requests to the origin server through a long-lived connection, reducing the probability of the long-lived connection between the second node and the origin server being broken and increasing the probability of reusing the long-lived connection between the second node and the origin server, thereby improving the user experience.

[0017] In one possible implementation, multiple domain name access requests are received, including domain names that are the same as the target domain name; subsequently, the multiple domain name access requests are sent to a second node for aggregation.

[0018] Secondly, embodiments of the present invention provide a domain name determination method applied to a control center deployed in a content delivery network. The content delivery network also deploys multiple nodes, including a first node and a second node. The second node has a long-lived connection with the origin server of the domain name. The method includes:

[0019] First, the node query rate of the domain is obtained. The node query rate is the query rate of at least some nodes among multiple nodes for the domain. Then, based on the node query rate of the domain, the global query rate of the domain can be determined. The global query rate is the query rate of the content delivery network for the domain. Next, domains with a global query rate less than or equal to the query rate threshold can be selected as target domains and sent to the first node. Subsequently, the first node obtains domain access requests. If the domains included in the domain access requests are the same as the target domains, the domain access requests are sent to the second node. The second node is the aggregation point of the domains in the content delivery network. The second node is used to send a large number of aggregated domain access requests to the origin server through a long connection, thereby reducing the probability of long connection disconnection.

[0020] In this solution, each node calculates its own query rate, and then the query rates of all nodes are aggregated to obtain a global query rate with high reference value. The target domains with low query rates are identified based on the global query rate and sent to the first node. Subsequently, the first node can aggregate domain access requests for domains with low query rates to the second node. The second node forwards the domain access requests to the origin server through a long-lived connection with the origin server, thereby reducing the probability of the long-lived connection established between the second node and the origin server being broken and increasing the probability of reusing the long-lived connection established between the second node and the origin server, thus improving the user experience.

[0021] In one possible implementation, the method also includes:

[0022] First, the first request sent by the first node is received. The first request is used to obtain the aggregation point among the multiple relay nodes of the origin station. Then, in response to the first request, the first response result is determined. The first response result is used to instruct the second node. The first response result is sent back to the first node.

[0023] In this solution, the aggregation point is determined uniformly by the control center, thereby reducing the computing power overhead of the first node.

[0024] In one example of a possible implementation, in response to a target request, determining a first response result includes:

[0025] First, in response to the target request, the first node is determined to be one of the multiple relay nodes for the origin server. Then, based on the same consistent hashing algorithm, the first hash value corresponding to each of the multiple relay nodes is determined. Subsequently, based on the consistent hashing algorithm, the second hash value corresponding to the domain name is determined. At this time, the second hash value is the same as a certain first hash value, and the relay node corresponding to the first hash value that is the same as the second hash value is taken as the second node.

[0026] In one possible implementation, the method also includes:

[0027] The system receives a second request from the first node, which is used to obtain multiple relay nodes for the origin server. Then, it responds to the second request and determines a second response result, which is used to describe the multiple relay nodes for the origin server. The system sends the second response result back to the first node, and subsequently, the first node can determine the second node from the multiple relay nodes.

[0028] Thirdly, embodiments of the present invention provide a domain name access request forwarding method applied to a content delivery network (CDN). The CDN is deployed with a control center and multiple nodes, including a first node and a second node. The second node has a long-lived connection with the origin server of the domain name. The method includes:

[0029] First, the control center obtains the target domain name. The global query rate of the target domain name is less than or equal to the query rate threshold. The global query rate is the query rate of the content delivery network for the target domain name. Then, the control center sends the target domain name to the first node. After obtaining the target domain name with a low global query rate, the first node continuously obtains domain name access requests. If the domain name included in the domain name access request is the same as the target domain name with a low global query rate, the domain name access request is sent to the second node, which is the aggregation point of the domain name in the content delivery network. Subsequently, the second node sends a large number of aggregated domain name access requests to the origin server through a long connection, thereby reducing the probability of long connection disconnection.

[0030] In this solution, each node calculates its own query rate, and then the query rates of all nodes are aggregated to obtain a global query rate with high reference value. The target domains with low query rates are identified based on the global query rate and sent to the first node. Subsequently, the first node can aggregate domain access requests for domains with low query rates to the second node. The second node forwards the domain access requests to the origin server through a long-lived connection with the origin server, thereby reducing the probability of the long-lived connection established between the second node and the origin server being broken and increasing the probability of reusing the long-lived connection established between the second node and the origin server, thus improving the user experience.

[0031] In one possible implementation, the method also includes:

[0032] The control center sends node information to the first node, which is used to instruct the first node on multiple relay nodes for the source station. After the first node obtains the multiple relay nodes that are routed to the source station, the first node determines the second node from the multiple relay nodes based on the domain name.

[0033] In this implementation example, the first node determines the second node from multiple relay nodes based on the domain name, including:

[0034] The first node first uses a consistent hashing algorithm to determine the first hash value corresponding to each of the multiple relay nodes. Then, the first node uses the same consistent hashing algorithm to determine the second hash value corresponding to the domain name. At this time, the second hash value is the same as a certain first hash value. Subsequently, the first node will use the relay node corresponding to the first hash value that is the same as the second hash value as the second node.

[0035] In one possible implementation, the method also includes:

[0036] The first node sends a target request to the control center. The target request is used to obtain the aggregation point among the multiple relay nodes of the source station. Then, the control center responds to the target request, determines the response result, and uses the response result to instruct the second node. Subsequently, the control center sends the response result back to the first node, thereby enabling the first node to obtain the aggregation point.

[0037] In this solution, the aggregation point is determined uniformly by the control center, thereby reducing the computing power overhead of the first node.

[0038] In this implementation example, the control center responds to the target request and determines the response result, including:

[0039] In response to the target request, the control center identifies multiple relay nodes for the origin server as the first node; then, based on the consistent hashing algorithm, it determines the first hash value corresponding to each of the multiple relay nodes; based on the consistent hashing algorithm, it determines the second hash value corresponding to the domain name; at this time, the second hash value is the same as a certain first hash value, and the relay node corresponding to the first hash value that is the same as the second hash value is taken as the second node.

[0040] In one possible implementation, the method also includes:

[0041] The control center obtains the node query rate of the domain name, which is the query rate of at least some nodes among multiple nodes for the domain name; then, based on the node query rate of the domain name, the control center determines the global query rate of the domain name, which is the query rate of the content delivery network for the domain name; subsequently, if the global query rate of the domain name is less than or equal to the query rate threshold, the control center determines the domain name as the target domain name, thus obtaining the domain name with the smaller global query rate.

[0042] Fourthly, embodiments of the present invention provide a domain name access request forwarding device, which includes several modules. Each module is used to execute the various steps of the domain name access request forwarding method provided in the first aspect of the present invention. The division of modules is not limited here. For the specific functions performed by each module of this domain name access request forwarding device and the beneficial effects achieved, please refer to the functions of each step of the domain name access request forwarding method provided in the first aspect of the present invention; further details will not be repeated here.

[0043] For example, this embodiment of the invention provides a domain name access request forwarding device. The domain name access request forwarding device is applied to a first node, which is deployed in a content delivery network. The content delivery network also deploys a control center and a second node. The second node has a long-lived connection with the origin server of the domain name. The device includes:

[0044] The domain name acquisition module is used to acquire the target domain name sent by the control center. The global query rate of the target domain name is less than or equal to the query rate threshold. The global query rate is the query rate of the content delivery network for the target domain name.

[0045] The request retrieval module is used to retrieve domain name access requests, which include the domain name.

[0046] The forwarding module is used to send the domain access request to the second node when the domain name is the same as the target domain name. The second node is the aggregation point of the domain name in the content delivery network. The second node is used to send the domain access request to the origin server through a long connection.

[0047] In one possible implementation, the domain name acquisition module is also used to determine the node query rate of the domain name, which is the query rate of the first node for the domain name; and to send the node query rate of the domain name to the management and control center, which is used to calculate the global query rate of the domain name.

[0048] In one possible implementation, a forwarding module is used to obtain node information sent by the control center, which is used to indicate multiple relay nodes for the source station to the first node; and to determine the second node from the multiple relay nodes based on the domain name.

[0049] In this implementation example, the forwarding module is used to determine the first hash value corresponding to each of the multiple relay nodes based on the consistent hashing algorithm; determine the second hash value corresponding to the domain name based on the consistent hashing algorithm; and take the relay node corresponding to the first hash value that is the same as the second hash value as the second node.

[0050] Fifthly, embodiments of the present invention provide a domain name determination device, which includes several modules. Each module is used to execute various steps in the domain name determination method provided in the first aspect of the present invention. The division of modules is not limited here. For the specific functions performed by each module of this domain name determination device and the beneficial effects achieved, please refer to the functions of each step in the domain name determination method provided in the first aspect of the present invention; further details will not be repeated here.

[0051] For example, this embodiment of the invention provides a domain name determination device. The domain name determination device is applied to a control center, which is deployed in a content delivery network. The content delivery network also deploys multiple nodes, including a first node and a second node. The second node has a long-lived connection with the origin server of the domain name. The device includes:

[0052] The acquisition module is used to obtain the node query rate of a domain name. The node query rate is the query rate of at least some nodes among multiple nodes for the domain name.

[0053] The statistics module is used to determine the global query rate of a domain name based on the node query rate. The global query rate is the query rate of a domain name within the content delivery network.

[0054] The domain name determination module is used to determine the target domain name, which is a domain name whose global query rate is less than or equal to the query rate threshold;

[0055] The sending module is used to send the target domain name to the first node so that the first node can obtain the domain name access request. If the domain name included in the domain name access request is the same as the target domain name, the domain name access request is sent to the second node. The second node is the aggregation point of the domain name in the content delivery network. The second node is used to send a large number of aggregated domain name access requests to the origin server through a long connection.

[0056] In one possible implementation, the device further includes:

[0057] The first query module is used to receive a first request sent by the first node, which is used to obtain the aggregation point among multiple relay nodes of the origin station; then respond to the first request, determine the first response result, which is used to instruct the second node; and send the first response result to the first node.

[0058] In this implementation example, the query module, in response to the target request, determines the first node for multiple relay nodes of the origin server; determines the first hash value corresponding to each of the multiple relay nodes based on the consistent hashing algorithm; determines the second hash value corresponding to the domain name based on the consistent hashing algorithm; and uses the relay node corresponding to the first hash value that is the same as the second hash value as the second node.

[0059] In one possible implementation, the device further includes:

[0060] The second query module is used to receive a second request sent by the first node, the second request being used to obtain multiple relay nodes of the first node for the origin station; in response to the second request, determine a second response result, the second response result being used to describe the multiple relay nodes of the first node for the origin station; and send the second response result to the first node.

[0061] Sixthly, embodiments of the present invention provide a content delivery network (CDN) for executing the various steps of the domain name access request forwarding method provided in the third aspect of the present invention. The specific functions performed by this CDN and the beneficial effects achieved are described in detail below, referring to the functions of the various steps of the domain name access request forwarding method provided in the third aspect of the present invention.

[0062] For example, this embodiment of the invention provides a content delivery network, which is deployed with a control center and multiple nodes, including a first node and a second node, wherein the second node has a long connection with the origin server of the domain name;

[0063] The control center is used to obtain the target domain name. The global query rate of the target domain name is less than or equal to the query rate threshold. The global query rate is the query rate of the content delivery network for the target domain name.

[0064] The control center is used to send the target domain name to the first node;

[0065] The first node is used to obtain domain name access requests, which include the domain name. If the domain name is the same as the target domain name, the domain name access request is sent to the second node, which is the aggregation point of the domain name in the content delivery network.

[0066] The second node is used to send domain name access requests to the origin server via a long connection.

[0067] In one possible implementation, a control center is used to send node information to the first node, which instructs the first node on multiple relay nodes for the source station.

[0068] The first node is used to determine the second node from multiple relay nodes based on the domain name.

[0069] In this implementation example, the first node is used to determine the first hash value corresponding to each of the multiple relay nodes based on the consistent hashing algorithm; to determine the second hash value corresponding to the domain name based on the consistent hashing algorithm; and to use the relay node corresponding to the first hash value that is the same as the second hash value as the second node.

[0070] In one possible implementation, the first node is used to send a target request to the control center. The target request is used to obtain the convergence point among multiple relay nodes of the source station for the first node.

[0071] The control center is used to respond to target requests, determine the response results, and use the response results to instruct the second node;

[0072] The control center is used to send response results to the first node.

[0073] In this implementation example, the control center is used to obtain the node query rate of the domain name, where the node query rate is the query rate of at least some nodes among multiple nodes for the domain name;

[0074] The control center is used to determine the global query rate of a domain name based on the node query rate of the domain name. The global query rate is the query rate of the content delivery network for the domain name.

[0075] The control center is used to identify a domain as a target domain when the global query rate of the domain is less than or equal to the query rate threshold.

[0076] In a seventh aspect, embodiments of the present invention provide a domain name access request forwarding apparatus, comprising: at least one memory for storing a program; and at least one processor for executing the program stored in the memory. When the program stored in the memory is executed, the processor is configured to execute the first aspect or execute the method provided in the third aspect.

[0077] In an eighth aspect, embodiments of the present invention provide a domain name access request forwarding apparatus. The apparatus executes computer program instructions to perform the method provided in the first aspect, or to perform the method provided in the third aspect. Exemplarily, the apparatus may be a chip or a processor.

[0078] In one example, the device may include a processor that may be coupled to memory, read instructions from the memory and execute the methods provided in the first aspect, or execute the methods provided in the third aspect, according to those instructions. The memory may be integrated into the chip or processor, or it may be independent of the chip or processor.

[0079] In a ninth aspect, embodiments of the present invention provide a domain name determination apparatus, comprising: at least one memory for storing a program; and at least one processor for executing the program stored in the memory, wherein when the program stored in the memory is executed, the processor is configured to execute the method provided in the second aspect.

[0080] In a tenth aspect, embodiments of the present invention provide a domain name determination apparatus that executes computer program instructions to perform the method provided in the second aspect. Exemplarily, the apparatus may be a chip or a processor.

[0081] In one example, the device may include a processor that can be coupled to memory, read instructions from the memory, and execute the methods provided in the second aspect according to those instructions. The memory may be integrated into the chip or processor, or it may be independent of the chip or processor.

[0082] Eleventhly, embodiments of the present invention provide a computing device cluster, including at least one computing device, each computing device including a processor and a memory;

[0083] A processor of at least one computing device is configured to execute instructions stored in the memory of at least one computing device to cause a cluster of computing devices to perform the method provided in the first aspect, or the method provided in the second aspect, or the method provided in the third aspect.

[0084] In a twelfth aspect, embodiments of the present invention provide a computer storage medium storing instructions that, when executed on a computer, cause the computer to perform the method provided in the first aspect, or the method provided in the second aspect, or the method provided in the third aspect.

[0085] In a thirteenth aspect, embodiments of the present invention provide a computer program product containing instructions that, when executed on a computer, cause the computer to perform the method provided in the first aspect, or the method provided in the second aspect, or the method provided in the third aspect. Attached Figure Description

[0086] Figure 1a This is a system architecture diagram of the content distribution system provided in an embodiment of the present invention;

[0087] Figure 1b This is a schematic diagram of the deployment method of the content delivery network 120 provided in an embodiment of the present invention;

[0088] Figure 2a This is a schematic diagram of the content distribution system provided in an embodiment of the present invention;

[0089] Figure 2b This is a schematic diagram of the client and first-level node distribution provided in an embodiment of the present invention;

[0090] Figure 2c This is a schematic diagram of dynamic content back-to-source provided in an embodiment of the present invention;

[0091] Figure 2d yes Figure 2a Diagram 1 of the provided content distribution system;

[0092] Figure 2e yes Figure 2a Diagram 2 of the provided content distribution system;

[0093] Figure 3 This is a schematic diagram of the dynamic content back-to-source process provided by related technologies;

[0094] Figure 4 This is a schematic diagram of domain name access request aggregation provided in an embodiment of the present invention;

[0095] Figure 5a This is a schematic diagram of the domain name determination method provided in an embodiment of the present invention;

[0096] Figure 5b yes Figure 5a A flowchart illustrating the provided domain name determination method;

[0097] Figure 5c This is a schematic diagram of a domain name determination scenario provided in an embodiment of the present invention;

[0098] Figure 6a This is a schematic diagram of the domain name access request forwarding method provided in an embodiment of the present invention;

[0099] Figure 6b yes Figure 6a A flowchart illustrating the provided domain access request forwarding method;

[0100] Figure 7a yes Figure 6b Flowchart 1 for step 605;

[0101] Figure 7b yes Figure 7a A schematic diagram illustrating the specific application of step 605 is provided;

[0102] Figure 8a yes Figure 6b Flowchart 2 for step 605;

[0103] Figure 8b yes Figure 8a A schematic diagram illustrating the specific application of step 605 is provided;

[0104] Figure 9 This is a schematic diagram of the domain name access request forwarding method provided in an embodiment of the present invention;

[0105] Figure 10 This is a schematic diagram of a domain name access request aggregation scenario provided in an embodiment of the present invention;

[0106] Figure 11 This is a schematic diagram of a domain name determination scenario provided in an embodiment of the present invention;

[0107] Figure 12a This is a schematic diagram of a scenario for distributing target domain names provided in an embodiment of the present invention;

[0108] Figure 12b This is a schematic diagram of the target domain name distribution scenario provided in an embodiment of the present invention;

[0109] Figure 13a This is a schematic diagram of a domain name service request forwarding scenario for an N-level architecture CND provided in this embodiment of the invention;

[0110] Figure 13b This is a schematic diagram of a domain name service request forwarding scenario for an N-level architecture CND provided in this embodiment of the invention;

[0111] Figure 14a This is a schematic diagram of a domain name service request forwarding scenario for a three-tier architecture CND provided in this embodiment of the invention;

[0112] Figure 14b This is a schematic diagram of a domain name service request forwarding scenario for a three-tier architecture CND provided in this embodiment of the invention;

[0113] Figure 15a This is a schematic diagram of the domain name access request forwarding device provided in an embodiment of the present invention;

[0114] Figure 15b This is a schematic diagram of the domain name determination device provided in an embodiment of the present invention;

[0115] Figure 15c This is a schematic diagram of the content forwarding network provided in an embodiment of the present invention;

[0116] Figure 16a This is a schematic diagram of the structure of the computing device provided in an embodiment of the present invention;

[0117] Figure 16b This is a second schematic diagram of the structure of the computing device provided in an embodiment of the present invention;

[0118] Figure 17a This is a schematic diagram of the structure of a computing device cluster provided in an embodiment of the present invention;

[0119] Figure 17b This is a schematic diagram of the structure of a computing device cluster provided in an embodiment of the present invention;

[0120] Figure 17c This is a schematic diagram of the computing device cluster provided in an embodiment of the present invention. Figure 3 ;

[0121] Figure 18a This is a schematic diagram of computing devices in a computer cluster connected via a network, provided in an embodiment of the present invention.

[0122] Figure 18bThis is a second schematic diagram illustrating the network connection of computing devices in a computer cluster provided in this embodiment of the invention.

[0123] Figure 18c This is a schematic diagram of computing devices in a computer cluster connected via a network, as provided in an embodiment of the present invention. Figure 3 . Detailed Implementation

[0124] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions of the embodiments of the present invention will be described below with reference to the accompanying drawings.

[0125] In the description of the embodiments of the present invention, the words "exemplary," "for example," or "for instance" are used to indicate that they are examples, illustrations, or descriptions. Any embodiment or design that is described as "exemplary," "for example," or "for instance" in the embodiments of the present invention should not be construed as being more preferred or advantageous than other embodiments or designs. Rather, the use of the words "exemplary," "for example," or "for instance" is intended to present the relevant concepts in a specific manner.

[0126] In the description of the embodiments of this invention, the term "and / or" is merely a description of the association relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, B existing alone, and A and B existing simultaneously. Furthermore, unless otherwise stated, the term "multiple" means two or more. For example, multiple systems refer to two or more systems, and multiple terminals refer to two or more terminals.

[0127] Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the indicated technical features. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. The terms "comprising," "including," "having," and their variations all mean "including but not limited to," unless otherwise specifically emphasized.

[0128] The following explanations cover some of the terms used in this embodiment. It should be noted that these explanations are for the convenience of those skilled in the art and are not intended to limit the scope of protection claimed by this invention.

[0129] Content Delivery Network (CDN): Its purpose is to add a new layer of network architecture to the existing network, delivering website content to the network "edge" closest to the user. This allows users to access the content they need from the nearest location, improving website response speed. Dynamic content acceleration is achieved by CDNs directly sending dynamic (pseudo-static) requests back to the origin server. Through intelligent routing, multi-line origin server requests, and protocol optimization, CDNs accelerate the process. This effectively improves the loading speed of dynamic pages, avoids network congestion, increases access success rates, and achieves overall website acceleration and real-time optimization. For dynamic content that cannot be cached, such as real-time e-commerce recommendations and login password verification, CDN technology can be used to optimize routing for acceleration.

[0130] Requesting origin: This refers to the process where, when a browser sends a request message, the server on the origin website responds to the request message, rather than the cache servers on each node. It means that when a CDN node cannot directly retrieve the requested resource from its cache, it forwards the request to the original server (also known as the origin server or backend server) to obtain the resource.

[0131] Queries per second (QPS): This is a measure of the amount of traffic a specific query server processes within a given time period. On the Internet, the performance of machines acting as Domain Name System (DNS) servers is often measured using QPS. QPS = Concurrency / Average Response Time. Concurrency = QPS * Average Response Time.

[0132] A domain name is the name of a computer or group of computers on the Internet, used to identify the computer's electronic location (and sometimes its geographical location) during data transmission. A domain name consists of a string of names separated by dots, usually including the organization name, and always includes a two- or three-letter suffix to indicate the type of organization or the country or region where the domain is located.

[0133] Domain Name Server (DNS): A server that translates domain names into their corresponding IP addresses. DNS maintains a table of domain names and their corresponding IP addresses to resolve the domain names of messages.

[0134] Long-lived connection: refers to a connection that can continuously send multiple data packets. During the connection period, if no data packets are sent, both parties need to send link detection packets.

[0135] Transmission Control Protocol (TCP) is a connection-oriented, reliable, byte-stream-based transport layer communication protocol. TCP is designed to adapt to layered protocol hierarchies that support multiple network applications. In interconnected computer networks, pairs of application processes can rely on TCP to provide reliable communication services for transmitting byte streams. TCP supports bidirectional data streaming, but applications can also send data in only one direction. Between hosts, TCP uses port numbers to identify application services and can multiplex data streams.

[0136] Secure Socket Layer (SSL): This is a network security protocol first adopted by Netscape. It is a security protocol implemented on top of the TCP / IP transport communication protocol and uses public key technology.

[0137] The cloud is a software platform that uses application virtualization technology, integrating multiple functions such as software search, download, use, management, and backup.

[0138] First, the content distribution system to which the method provided in the embodiments of the present invention may be applied will be described. Figure 1a This is a schematic diagram of the architecture of a content distribution system provided in an embodiment of the present invention. Figure 1aAs shown, the system includes a client 110, a CDN 120, an origin node 130, and a DNS server 140. The client 110 and CDN 120, and the CDN 120 and origin node 130, can be connected via a network. This network can be a wired network or a wireless network. For example, a wired network can be a cable network, a fiber optic network, a Digital Data Network (DDN), etc., while a wireless network can be a telecommunications network, an intranet, the Internet, a Local Area Network (LAN), a Wide Area Network (WAN), a Wireless Local Area Network (WLAN), a Metropolitan Area Network (MAN), a ZigBee network, a Global System for Mobile Communications (GSM), a CDMA (Code Division Multiple Access) network, a CPRS (General Packet Radio Service) network, or any combination thereof. Understandably, the network can use any known network communication protocol to enable communication between different client layers and gateways. The aforementioned network communication protocol can be various wired or wireless communication protocols, such as Ethernet, Universal Serial Bus (USB), or any combination thereof.

[0139] In this embodiment, client 110 requests resources from origin node 130 from CDN 120. Specifically, client 110 sends a domain name access request to CDN 120, which includes the domain name. Client 110 can run on a terminal, which can be, but is not limited to, various personal computers, laptops, smartphones, tablets, and portable wearable devices. Exemplary embodiments of terminal 110 involved in this solution include, but are not limited to, electronic devices running iOS, Android, Windows, Harmony OS, or other operating systems. This embodiment of the invention does not specifically limit the type of terminal.

[0140] CDN120 provides dynamic content services, which are content that is not cached. Correspondingly, CDN120 communicates with origin node 130 to obtain the dynamic content required by the user. For example... Figure 1bAs shown, the CDN1120 can be deployed in cloud data centers. In practical use, the cloud also includes a cloud management platform, which provides CDN services, allowing users to utilize the CDN120. The cloud management platform can be deployed independently on servers or virtual machines in the data center, or distributed across multiple servers or virtual machines within the data center. It can also be partially deployed independently or distributedly in devices in the edge environment (also called edge devices), while another part can be deployed independently or distributedly within the data center. The edge environment is geographically close to the user's terminal computing device and includes edge devices such as edge servers and edge stations with computing capabilities.

[0141] In embodiments of the present invention, such as Figure 2a As shown, CDN120 includes at least two levels, such as N levels, of nodes and a control center 121. The N levels are denoted as Level 1, Level 2, ..., Level N. For ease of description and distinction, the nodes in the N levels are denoted as Level 1 nodes, Level 2 nodes, ..., Level N nodes. Level 1 nodes connect to clients 110, and Level N nodes connect to the origin server nodes 130. Each level in the N levels has multiple nodes; for example, CDN120 includes multiple Level 1 nodes, multiple Level 2 nodes, ..., and multiple Level N nodes. It should be noted that the nodes in CDN120 can be computing instances. Computing instances can be understood as servers, server clusters, containers, container clusters, etc., that provide computing resources. Servers can be physical servers or virtual servers embedded in a virtualization environment, such as virtual machines. The above examples of computing instances are merely illustrative and do not constitute specific limitations; the specific computing resources should be determined based on actual needs.

[0142] Origin node 130 provides services such as web pages and video playback. In a cloud-based scenario, tenants can configure origin node 130 through a cloud management platform, and origin node 130 will provide services such as web pages and video playback. Then, tenants can purchase CDN services through the cloud management platform and configure edge nodes (e.g., ...) in different regions. Figure 2a The first-level node shown above registers the domain name of origin node 130 on the public DNS server and sets up edge nodes in different regions (e.g., Figure 2aThe diagram shows the correspondence between the public IP addresses of the first-level nodes. It should be noted that origin node 130 can be a computing instance. A computing instance can be understood as a server, server cluster, container, container cluster, or other computing resource that can provide services. A server can be a physical server or a virtual server embedded in a virtualization environment, such as a virtual machine. The above computing instance is merely an example and does not constitute a specific limitation; the specific computing resources should be determined based on actual needs. It is worth noting that origin node 130 is the origin server for a domain name. In practical applications, the origin server can be deployed across multiple origin nodes 130, such as deploying origin nodes 130 in different regions globally. Figure 2a As shown, for any origin node 130, multiple Nth-level nodes in the CND network 120 can establish a long connection with one origin node 130; in practical applications, any domain name access request will be sent to the nearest origin node 130 for processing.

[0143] DNS server 140 records domain names and the public IP addresses of different first-level nodes. In practical applications, when client 110 sends a domain name access request (including a domain name for origin node 130), the request reaches DNS server 140. DNS server 140 obtains the public IP addresses of multiple first-level nodes in different regions corresponding to the domain name in the request. Based on the principle of proximity, it returns the Internet Protocol (IP) address of the first-level node to client 110. Client 110 then sends a domain name access request to the first-level node based on the IP address. In practical applications, first-level nodes can be distributed in different regions, for example, such as... Figure 2b As shown, Level 1 node 1 is located in Region 1, Level 1 node 2 in Region 2, Level 1 node 3 in Region 3, Level 1 node 4 in Region 4, and Level 1 node 5 in Region 5. For example, client 1 in Region 1 sends a domain name access request for the domain name of origin node 130. This request reaches DNS server 140, which obtains the public IP addresses of Level 1 nodes 1-5 corresponding to the domain name in multiple regions. DNS server 140 compares client 1's public IP address (carried in the source IP address of the domain name access request) with the public IP addresses of the multiple Level 1 nodes 1-4, confirming that the public IP address of Level 1 node 1 belongs to the same region as client 1's public IP address. It then returns the public IP address of Level 1 node 1 to client 101. Client 101 accesses the nearest Level 1 node based on the public IP address of Level 1 node 1 and requests the content to be accessed.

[0144] CDN120 provides dynamic content services, which are content that is not cached. For example... Figure 2c As shown, for dynamic content, the first-level node sends the domain name access request to the second-level node, the second-level node sends the domain name access request to the third-level node, and so on, until the domain name access request is sent to the Nth-level node. The Nth-level node sends the domain name access request to the origin node 130, which then responds to the domain name access request, receives the response result, and sends the response result to the Nth-level node. The Nth-level node sends the response result to the (N-1)th-level node, and so on, until the response result is sent to the first-level node. The first-level node then sends the response result to the client 110, thus achieving the origin-fetching of dynamic content. Therefore, for repeated dynamic content, the Nth-level node will continuously fetch the dynamic content from the origin node 130.

[0145] In some possible scenarios, such as Figure 2d As shown, CDN120 can adopt a two-tier deployment architecture, including edge nodes 122 and relay nodes 123. Edge nodes 122 are the first-tier nodes, and relay nodes 123 are the second-tier nodes. Edge nodes 122 can be deployed in provincial and municipal locations within various operator networks to provide content resources to users nearby, while relay nodes 123 can be deployed in central locations within various operator networks to handle the origin server requests from edge nodes 122. In this two-tier deployment architecture, for dynamic content, each edge node 122 sends a domain name access request to relay node 123, which then sends the domain name access request to the origin server node 130, thereby enabling the origin server node 130 to respond to the domain name access request and achieve the origin server request for dynamic content.

[0146] In some possible scenarios, such as Figure 2e As shown, CDN120 can adopt a three-tier deployment architecture, comprising edge node 122, relay node 123, and relay node 124. Edge node 122 is a level 1 node, relay node 123 is a level 2 node, and relay node 124 is a level 3 node. For dynamic content, compared to a two-tier deployment architecture, relay node 123 can act as a regional relay node in the three-tier deployment architecture. This allows edge nodes 122 in each region to first send domain name access requests to their respective regional relay nodes 123, which then forward the requests to relay node 124. Relay node 124 then sends the domain name access requests to the origin node 130.

[0147] In related technologies, the CDN120 using a two-tier architecture is used as an example for description, such as... Figure 3As shown, relay node 123 and origin node 130 establish a pre-connection, which includes a TCP connection and an SSL handshake, enabling relay node 123 and origin node 130 to communicate via a long connection. Then, client 110 establishes a TCP connection with edge node 122 and performs an SSL handshake, enabling client 110 and edge node 122 to communicate via a long connection. Next, client 110 sends a domain name access request to edge node 122, edge node 122 sends a domain name access request to relay node 123, relay node 123 sends a domain name access request to origin node 130 via a long connection, origin node 130 responds to the domain name access request, receives the response result, sends the response result to relay node 123, relay node 123 sends the response result to edge node 122, and edge node 122 sends the response result to client 110.

[0148] For the long connection between relay node 123 and origin node 130, if relay node 123 does not send a domain name access request for a period of time, origin node 130 will close the corresponding long connection. Subsequently, if relay node 123 resends the domain name access request, it needs to re-establish the long connection with origin node 130, which increases the time for responding to the domain name access request.

[0149] For frequently accessed domains, such as those with high QPS, the number of requests load-sharing to relay node 123 is relatively large. Relay node 123 can promptly send domain access requests to origin node 130 and maintain the long-lived connection already established with origin node 130. Therefore, subsequent domain access requests can directly reuse the long-lived connection already established with origin node 130.

[0150] For domains with low access rates, such as those with low QPS, the number of requests load-sharing to relay node 123 is relatively small. Relay node 123 may not be able to send domain access requests to origin node 130 in a timely manner, and may disconnect the long-term connection already established with origin node 130. This reduces the likelihood that subsequent domain access requests will reuse the long-term connection already established with origin node 130, and requires re-establishing a long-term connection with origin node 130, resulting in an increase in the response time for domain access requests.

[0151] To address the issue of low long-lived connection reuse for domains with low QPS, this invention proposes a domain access request forwarding method.

[0152] like Figure 4As shown, multiple level 1 nodes, such as edge nodes 122, aggregate domain access requests for the target domain (a domain with low QPS) to level N nodes, such as relay nodes 123. This reduces the probability of the long-lived connection established between level N nodes (such as relay nodes 123) and origin nodes 130 being broken, and increases the probability of reusing the long-lived connection established between level N nodes (such as relay nodes 123) and origin nodes 130, thereby improving the user experience. This is only a brief description of the method; for details, please refer to the description below.

[0153] To facilitate understanding of the technical solutions provided in the embodiments of the present invention, the embodiments of the present invention adopt... Figure 2d The solution is illustrated using CDN120 as an example, which demonstrates a two-level deployment architecture.

[0154] Before edge node 122 forwards the domain name access request for the target domain name (a low-QPS domain name), it needs to issue the target domain name (a low-QPS domain name) to edge node 122; therefore, this embodiment of the invention provides a domain name determination method, such as... Figure 5a As shown, the method includes: each edge node 122 in CDN 120 determines the domain name and its node QPS, and sends the domain name and its node QPS to the control center 121. The control center 121 aggregates the node QPS of the same domain name to obtain the global QPS of the domain name, and determines the domain names with a global QPS less than or equal to the QPS threshold as target domain names, thus obtaining several target domain names. This is only a brief description of the method; for details, please refer to the description below.

[0155] Next, for Figure 5a This invention provides a detailed description of a domain name determination method. Using a first-level node as edge node 122 and a low-QPS domain name as the target domain name as an example, this invention will illustrate its solution.

[0156] Figure 5b yes Figure 5a A flowchart illustrating the provided domain name determination method. This embodiment can be applied to a content distribution system, specifically to edge node 122 and control node 121. Figure 5b As shown, the domain name determination method provided in this embodiment of the invention includes at least the following steps:

[0157] Step 501: Each edge node 122 in CDN 120 determines the domain name and the corresponding node QPS.

[0158] In some possible implementations of this embodiment, when edge node 122 receives a user's domain name access request (the domain name access request includes the domain name), it will subsequently count the QPS of the domain name (for ease of description and distinction, it can be called node QPS), and periodically, for example, report the node QPS corresponding to the domain name to the control center every second. In specific implementations, edge node 122 will determine the number of times the domain name appears in the received domain name access request to obtain the node QPS corresponding to the domain name.

[0159] The format of the QPS corresponding to the reported domain name can be shown in Table 1 below:

[0160] Fields meaning timestamp Statistical timestamps domains Domain List domain domain name qps QPS (also known as node QPS)

[0161] Table 1

[0162] The statistical timestamp is used to describe the statistical time. In the format of Table 1, an example of the code for reporting the QPS corresponding to the domain name can be shown below:

[0163]

[0164]

[0165] Step 502: Each edge node 122 in CDN 120 sends the domain name and the node QPS corresponding to the domain name to the control center 121.

[0166] Step 503: The control center 121 determines several target domain names based on the domain names sent by each edge node 122 in CDN 120 and the node QPS corresponding to the domain names. The global QPS of each target domain name is less than or equal to a preset threshold, and the global QPS is determined based on the node QPS.

[0167] In some possible implementations of this embodiment, the control center 121 summarizes the domain names and corresponding QPS reported by all edge nodes 122 in CDN 120 according to timestamps and domain names to obtain the global QPS of the domain names. It then compares the global QPS with the QPS threshold to determine the global QPS that is less than or equal to the QPS threshold. The domain names corresponding to the global QPS that are less than or equal to the QPS threshold are taken as low domain names (which can be called target domain names for ease of description and distinction), and all target domain names are sent to each edge node 122 in CDN 120.

[0168] It should be noted that the global QPS of a domain name is the sum of the QPS of all nodes for that domain name within a preset time period. For example, the preset time period can be determined by combining the communication differences between edge nodes 122 and the management platform 121 in the content delivery network 120, such as 1 millisecond. In practical scenarios, the global QPS of a domain name can be calculated by summing the QPS of nodes corresponding to the same domain name based on the most recently reported domain name and the corresponding node QPS of all edge nodes 122 in the CDN 120.

[0169] Optionally, operations personnel can set QPS thresholds based on business needs. For example, the QPS threshold can be 100. A QPS below 100 is considered a requirement for origin server aggregation, and domains with QPS below 100 are identified as target domains. It should be noted that in some cases, the QPS threshold can be global, in which case any domain with a QPS less than or equal to the threshold is considered a target domain. In other cases, the QPS threshold can be domain-level. In this case, the QPS threshold can be understood as the QPS threshold for a specific domain; only when the QPS of a specific domain is less than or equal to the corresponding QPS threshold can that specific domain be considered a target domain.

[0170] There can be one or more target domains, which are usually distributed in the form of a list. For example, the distribution format can be shown in Table 2 below:

[0171] Fields meaning timestamp Statistical timestamps domains List of low QPS domains domain Low QPS domain (target domain)

[0172] Table 2

[0173] Step 504: The control center 121 sends several target domain names to each edge node 122 in CDN 120.

[0174] For example, such as Figure 5c As shown, multiple clients 110 send domain name access requests for domain name A to multiple edge nodes 122. Each edge node 122 determines the node QPS of domain name A and sends the node QPS of domain name A to the control center 121. The control center 121 summarizes the node QPS of domain name A to obtain the global QPS of domain name A. If the global QPS is less than or equal to the QPS threshold, then domain name A is taken as the target domain name.

[0175] In this solution, by considering the number of times each edge node in the CDN queries a domain name, the domain names with low QPS can be analyzed more accurately.

[0176] After each edge node 122 in CDN120 receives several target domain names sent by the control center 121, it can forward the domain name access requests for the target domain names. In some possible embodiments, this invention provides a domain name access request forwarding method, such as... Figure 6a As shown, the method includes: multiple clients 110 sending domain name access requests for domain name A to multiple edge nodes 122; each edge node 122, upon determining that domain name A is the target domain name, sends the domain name access request for domain name A to a designated single target relay node 123A (the aggregation point of domain name A in the CDN network 120); the target relay node 123A sends the domain name access request to the origin node 130 via a long connection; the origin node 130 responds to the domain name access request, receives a response result, and sends the response result to the target relay node 123A; the target relay node 123A sends the response result to the edge node 122; and the edge node 122 sends the response result to the client 110A. This is only a brief description of the method; for detailed information, please refer to the description below.

[0177] Figure 6b yes Figure 6a This is a flowchart illustrating the domain name access request forwarding method. This embodiment can be applied to edge node 122A in client 110A and CDN 120, where edge node 122A is any edge node 122 in CDN 120. Figure 6b As shown, the message forwarding method provided in this embodiment of the invention includes at least the following steps:

[0178] Step 601: Edge node 122A receives several target domain names sent by control center 121.

[0179] Step 602: Client 110A sends a domain name access request to edge node 122A in CDN 120. The domain name access request includes domain name A.

[0180] Step 603: Edge node 122A receives a domain name access request from client 110.

[0181] Step 604: Edge node 122A determines whether there is a target domain name that is the same as domain name A. If so, proceed to step 605.

[0182] Step 605: Edge node 122A determines the target relay node 123A corresponding to domain name A. The target relay node 123A is the aggregation point of domain name A in CDN 120. The target relay node 123A and the origin node 130A corresponding to domain name A have a long connection.

[0183] In this embodiment, when edge node 122 determines that there is a target domain name with the same name as domain name A, it determines that domain name A needs to be aggregated back to the origin. At this time, it is necessary to determine the target relay node 123A corresponding to domain name A. This embodiment of the invention provides the following two implementation methods:

[0184] Implementation Method 1: Edge node 122A can obtain node information from the control center 121. This node information is used to indicate multiple relay nodes 123 from edge node 122A to the origin node 130 of the domain name. Subsequently, the target relay node 123A is determined from the multiple relay nodes 123. It should be noted that obtaining node information from the control center 121 is only an example. In actual applications, the source of node information can be flexibly designed according to actual needs, such as a database. It should also be noted that domain name A can be deployed on multiple origin nodes 130. Edge node 122A can choose any origin node 130. This origin node 130 communicates with multiple relay nodes 123 in CDN 120. In existing technologies, load balancing, such as round-robin, is typically used to distribute domain name access requests to multiple relay nodes 123. In this embodiment of the invention, domain name access requests are aggregated to any one of the multiple relay nodes 123, thereby increasing the probability of reusing the long connections between relay node 123 and origin node 130.

[0185] Optionally, Figure 7a A flowchart illustrating step 605 is shown. Figure 7a As shown, step 605 includes at least the following steps:

[0186] Step 701: Edge node 122 sends a node request to the control center 121. The node request is used to obtain the relay node 123 required by edge node 122 to reach the origin node 130 of the domain name.

[0187] The node request may include domain name A, the IP address of edge node 122, and the IP address of origin node 130. It should be noted that edge node 122 can determine the IP address of the origin node 130 of the domain name; for example, edge node 122 can determine the IP address of the origin node 130 of the nearest domain name.

[0188] Step 702: The control center 121 responds to the node request, determines the response result, and uses the response result to instruct multiple relay nodes 123.

[0189] In some possible implementations of this embodiment, the control center 121 can determine the multiple relay nodes 123 closest to the source node 130.

[0190] Step 703: Control center 121 sends the response result to edge node 122.

[0191] Step 704: Edge node 122A determines the target relay node 123A from multiple relay nodes 123 based on domain name A.

[0192] Optionally, edge node 122A can achieve consistent selection based on a consistent hashing algorithm to determine the target relay node 123A from multiple relay nodes 123.

[0193] The consistent hashing algorithm for consistent selection may include: edge node 122 determining the first hash value corresponding to each transit node 123 based on the consistent hashing algorithm; determining the second hash value corresponding to domain name A based on the consistent hashing algorithm; and selecting the transit node 123 corresponding to the first hash value that is the same as the second hash value as the target transit node 123A.

[0194] based on Figure 7a The provided flowchart provides a more detailed explanation of the specific scenario for step 605. For example... Figure 7b As shown, client 110A sends a domain name access request for domain name A to edge node 122; edge node 122, after determining that domain name A is the target domain name, can determine the IP address of the origin node 130 of the domain name, for example, edge node 122 can determine the IP address of the origin node 130 of the nearest domain name; then, edge node 122 determines the node request, which may include domain name A, the IP address of edge node 122 and the IP address of origin node 130, and sends the node request to control center 121; control center 121 sends a response result back to edge node 122, and the response result indicates multiple relay nodes 123; based on domain name A, edge node 122 uses a consistent hashing algorithm to determine the target relay node 123A from the multiple relay nodes 123 indicated by the response result.

[0195] It should be noted that the above Figure 7a The implementation shown is merely an example and does not constitute a specific limitation. In specific applications, multiple relay nodes 123 can be determined according to actual needs. Optionally, the control center 121 can send routing information to the edge node 122 in advance. The routing information is used to indicate the relay node 123 from the edge node 122 to each source node 130. Subsequently, the edge node 122 can view the routing information and determine the multiple relay nodes 123 from the edge node 122 to the source node 130 of the domain name.

[0196] Implementation Method 2: Edge node 122A can obtain aggregation point information from the control center 121. This aggregation point information indicates the aggregation point among the multiple transit nodes 123 from edge node 122A to the origin node 130 of the domain name. It should be noted that obtaining aggregation point information from the control center 121 is merely an example. In practical applications, the source of the aggregation point information can be flexibly designed according to actual needs, such as a database.

[0197] Optionally, Figure 8a A flowchart illustrating step 605 is shown. Figure 8a As shown, step 605 includes at least the following steps:

[0198] Step 801: Edge node 122 sends a convergence point request to the control center 121. The convergence point request is used to obtain the convergence point among multiple transit nodes 123 from edge node 122 to the origin node 123 of domain name A.

[0199] The aggregation point request may include the domain name, the IP address of the edge node 122, and the IP address of the origin node 130. It should be noted that the edge node 122 can determine the IP address of the origin node 130 of the domain name. For example, the edge node 122 can determine the IP address of the origin node 130 of the nearest domain name.

[0200] Step 802: Control center 121 responds to the aggregation point request, determines the response result, and uses the response result to instruct target transit node 123A.

[0201] In this embodiment, in response to a convergence point request, the control center 121 determines multiple relay nodes 123 from the edge node 122 to the origin node 123 of domain name A; and determines the target relay node 123A from the multiple relay nodes 123 based on domain name A. Optionally, in some implementations, the control center 121 may use a consistent hashing algorithm to achieve consistent selection and determine the target relay node 123A from the multiple relay nodes 123.

[0202] The consistency hashing algorithm for achieving consistency selection may include: the control center 121 determining the first hash value corresponding to each relay node 123 based on the consistency hashing algorithm; determining the second hash value corresponding to domain name A based on the consistency hashing algorithm; and selecting the relay node 123 corresponding to the first hash value that is the same as the second hash value as the target relay node 123A.

[0203] Step 803: Control center 121 sends the response result to edge node 122.

[0204] based on Figure 8a The provided flowchart provides a more detailed explanation of the specific scenario for step 605. For example... Figure 8bAs shown, client 110A sends a domain name access request for domain name A to edge node 122. Edge node 122, upon determining that domain name A is the target domain name, can determine the IP address of the origin node 130 of the domain name; for example, edge node 122 can determine the IP address of the origin node 130 of the nearest domain name. Then, edge node 122 determines a convergence point request, which is used to request the target relay node 123A and may include domain name A, the IP address of edge node 122, and the IP address of origin node 130. The convergence point request is sent to control center 121. Control center 121 responds to the convergence point request, determines multiple relay nodes 123, and, based on domain name A, uses a consistent hashing algorithm to determine the target relay node 123A from among the multiple relay nodes 123, obtaining a response result. Control center 121 then sends the response result back to edge node 122, indicating the target relay node 123A. Edge node 122 determines the target relay node 123A indicated by the response result.

[0205] It should be noted that the above Figure 8a The implementation shown is merely an example and does not constitute a specific limitation. In specific applications, the target relay node 123A can be determined based on actual needs. Optionally, the control center 121 can send the aggregation point information to the edge node 122 in advance. The aggregation point information is used to indicate the aggregation point from the edge node 122 to each source node 130. Subsequently, the edge node 122 can view the aggregation point information to determine the target relay node 123A from the edge node 122 to the source node 130 of the domain name.

[0206] It should be noted that the above-mentioned node information, node request, rendezvous point information, and rendezvous point request are merely possible naming methods. For example, node request and rendezvous point request can also be called first request and second request, and rendezvous point request can also be called target request.

[0207] Step 606: Edge node 122A sends a domain name access request to target relay node 123A.

[0208] Step 607: The target relay node 123A sends a domain name access request to the origin node 130A via a long connection.

[0209] Step 608: Origin node 130A responds to the domain name access request and determines the response result.

[0210] Step 609: Source node 130A sends a response result to target relay node 123A.

[0211] Step 610: The target relay node 123A sends a response result to the edge node 122A.

[0212] Step 611: Edge node 122A sends a response result to client 110A.

[0213] In this solution, for low QPS domains, domain access requests from low QPS domains connected to different edge nodes are aggregated to the upper-level node for origin server access. This reduces the probability of breaking the long-term connection already established with origin server node 130, increases the probability of reusing the long-term connection already established with origin server node 130, and thus improves the user experience.

[0214] Based on the domain name determination method and domain name access request forwarding method provided above, the specific application scenarios of the domain name access request forwarding method are explained. Figure 9 This is a flowchart illustrating a specific application of a domain name access request forwarding method provided for the implementation of this invention. For example... Figure 9 As shown, the specific content includes:

[0215] S1. System maintenance personnel configure QPS thresholds in the control center 121.

[0216] In S2 and CDN120, each edge node 122 reports the domain name and the node QPS of the domain name.

[0217] S3 and the control center 121 summarize the node QPS of the domain name to obtain the global QPS of the domain name.

[0218] S4, Control Center 121 determines that domains with a global QPS less than or equal to the QPS threshold are low-Q domains.

[0219] S5, the control center 121 sends low domain names to each edge node 122 in CDN 120.

[0220] In S6, each edge node 122 in CDN120 stores the QPS.

[0221] S7. Multiple clients 110 send domain name access requests to each edge node 122 in CDN 120. The domain name access requests include domain name A.

[0222] It should be noted that the content requested by the domain name access requests received by each edge node 122 in CDN 120 can be the same or different. In practical applications, each of the multiple clients 110 will send a domain name access request to the edge node 122 closest to it.

[0223] In S8 and CDN120, each edge node 122 sends a node request to the control center 121. The node request includes domain name A, the IP address of edge node 122, and the IP address of origin node 130.

[0224] S9, Control Center 121 determines the IP addresses of multiple relay nodes 123.

[0225] S10, the control center 121 distributes the IP addresses of multiple relay nodes 123 to each edge node 122 in CDN 120.

[0226] In S11 and CDN120, each edge node 122 determines whether domain A has a low QPS. If not, execute S12; if yes, execute S15.

[0227] S12, each edge node 122 in CDN120 determines the target center node 123A from multiple relay nodes 123 in a round-robin manner.

[0228] S13, each edge node 122 in CDN120 sends a domain name access request to the target central node 123A.

[0229] S14. The target central node 123A performs a back-to-origin query to the source node 130A.

[0230] The origin lookup can be performed as follows: the target relay node 123A sends a domain name access request to the origin node 130A, the origin node 130A responds to the domain name access request, obtains the response result, and sends the response result to the target relay node 123A, the target relay node 123A sends the response result to the edge node 122, and the edge node 122 sends the response result to the client 110.

[0231] In S15 and CDN120, each edge node 122 determines the target central node 123A from multiple relay nodes 123 based on domain name A and a consistent hashing algorithm.

[0232] S16, each edge node 122 in CDN120 sends a domain name access request to the target central node 123A.

[0233] S17. The target central node 123A performs a back-to-origin query to the source node 130A.

[0234] The above describes the technical solution for CDN120 with a two-level deployment architecture. Next, we will explain the technical solution for CDN120 with an N (greater than or equal to 2) level deployment architecture.

[0235] A long connection is established between the Nth-level node and the origin node 130. By aggregating multiple domain access requests for domain A to the Nth-level node, the probability of the long connection already established between the Nth-level node, such as relay node 123, and the origin node 130 being broken is reduced, and the probability of reusing the long connection already established between the Nth-level node, such as relay node 123, and the origin node 130 is increased, thereby improving the user experience.

[0236] Based on this, embodiments of the present invention provide a domain name access request forwarding method, such as... Figure 10 As shown, the method includes: the control center 121 sends the target domain name to each of the (N-1)th level nodes in the (N-1)th level; subsequently, when each of the (N-1)th level nodes in the (N-1)th level receives a domain name access request for the target domain name, it can send the domain name access request to the aggregation point in the Nth level: the target Nth level node (any Nth level node in the Nth level), a long connection is established between the target Nth level node and the source node 130, and the domain name access request is sent to the source node 130 through the long connection. Considering that aggregation can increase the probability of the aggregation point (target Nth level node) sending the domain name access request to the source node 130, thereby increasing the possibility of reusing the long connection between the aggregation point (target Nth level node) and the source node 130.

[0237] In this embodiment, the domain name determination method provided by the present invention is as follows: Figure 11 As shown, the i-th level node (i = 1 to N, representing any level node) in the N-level nodes can report the domain name and the corresponding node QPS to the control center 121. The control center 121 summarizes the node QPS of the same domain name to obtain the global QPS of the domain name, and determines the domain name with a global QPS less than or equal to the QPS threshold as the target domain name, thus obtaining several target domain names.

[0238] Considering that only the (N-1)th level node needs to aggregate multiple domain name access requests for the target domain name to the Nth level node, and no requirements are placed on any level node between the 1st and (N-1)th levels, the control node 121 can send each target domain name to at least each (N-1)th level node in the (N-1)th level, for example, as... Figure 12a As shown, the control center 121 only sends the target domain name to the (N-1)th level node. For example, ... Figure 12b As shown, the control center 121 sends the target domain name to nodes from level 1 to level N-1. It should be noted that, in this embodiment of the invention, for each level i node that receives the target domain name, when it receives a domain name access request for the target domain name, it can send the domain name access request to the aggregation point in level i+1: the target level i+1 node (any level i+1 node in level i+1).

[0239] For example, the control center 121 sends the target domain name only to each of the N-1 level nodes, so that when each of the N-1 level nodes receives a domain name access request for the target domain name, it can send the domain name access request to the aggregation point in the N level: the target N level node (any N level node in the N level).

[0240] For example, the control center 121 sends the target domain name to each node from level 1 to level N-1, so that any node in level 1 to level N-1 can aggregate multiple domain name access requests for domain name A to any node in the next level.

[0241] In some possible scenarios, such as Figure 13a As shown, the control center 121 only sends the target domain name to each of the N-1 level nodes in the N-1 level. Subsequently, after each level 1 node receives the domain name access request of the target domain name, it can send the domain name access request of the target domain name to any level 2 node. The level 2 nodes are similar, and the process is repeated until the domain name access request of the target domain name is sent to the N-1 level node. When each level N-1 node receives the domain name access request of the target domain name, it can send the domain name access request to the aggregation point in the N level: the target level N node (any level N node in the N level). A long connection is established between the target level N node and the origin node 130, and the domain name access request is sent to the origin node 130 through the long connection.

[0242] In some possible scenarios, such as Figure 13b As shown, the control center 121 sends the target domain name to each node from level 1 to level N-1. Subsequently, after each level 1 node receives the domain name access request for the target domain name, it can send the domain name access request to the aggregation point in level 2: target level 2 node (any level 2 node in level 2), and so on, until the domain name access request for the target domain name is sent to the target level N-1 node. The target level N-1 node can then send the domain name access request to the aggregation point in level N: target level N node (any level N node in level N). A long connection is established between the target level N node and the origin node 130, and the domain name access request is sent to the origin node 130 through the long connection.

[0243] The following adopts Figure 2e The following is a detailed explanation of the solution using the three-tier deployment architecture of CDN120 and the target domain name A as an example.

[0244] like Figure 14aAs shown, the control center 121 sends the target domain name to each relay node 123; multiple clients 110 send domain name access requests for domain name A to multiple edge nodes 122; each edge node 122, upon determining that domain name A is the target domain name, sends the domain name access request for domain name A to any relay node 123; each relay node 123, upon determining that domain name A is the target domain name, sends the domain name access request for domain name A to a designated single target relay node 124A (the aggregation point of domain name A in the CDN network); the target relay node 124A sends the domain name access request to the origin node 130 via a long connection; the origin node 130 responds to the domain name access request, obtains the response result, and sends the response result to the target relay node 124A; the target relay node 124A sends the response result to the relay node 123; the relay node 123 sends the response result to the edge node 122; and the edge node 122 sends the response result to the client 110A.

[0245] like Figure 14b As shown, the control center 121 sends the target domain name to each relay node 123 and each relay node 124; multiple clients 110 send domain name access requests for domain name A to multiple edge nodes 122; each edge node 122, upon determining that domain name A is the target domain name, sends the domain name access request for domain name A to a designated single target relay node 123A (the aggregation point of domain name A in the CDN network); the target relay node 123A, upon determining that domain name A is the target domain name, sends the domain name access request for domain name A to a designated single target relay node 123A. The request is sent to a specified single target relay node 124A (the aggregation point of domain name A in the CDN network). Target relay node 124A sends the domain name access request to origin node 130 through a long connection. Origin node 130 responds to the domain name access request, receives the response result, and sends the response result to target relay node 124A. Target relay node 124A sends the response result to target relay node 123A. Target relay node 123A sends the response result to edge node 122. Edge node 122 sends the response result to client 110A.

[0246] Continuing with the example of domain A as the target domain, the naming of edge node 122, relay node 123, relay node 124, level 1 node, level 2 node, ..., level N-1 node, and level N node in this embodiment of the invention is merely illustrative. In some other possible implementations, the level N-1 node can be called the first node, and the level N node can be called the second node; in CDN120... Figure 2d In the illustrated two-tier deployment architecture, the first node can be edge node 122, and the second node can be relay node 123; when CDN120 adopts... Figure 2eIn the illustrated three-tier deployment architecture, the first node can be relay node 123, and the second node can be relay node 124. The first node can receive domain name access requests for domain name A from edge node 122 and aggregate these requests to the target relay node 124A (the aggregation point for domain name A). It is worth noting that the second node can be understood as a relay node between the first node and the origin node 130.

[0247] For CDN120, different nodes in level i can aggregate multiple domain name access requests for domain A to any node in level i+1. Similarly, any node in level i can aggregate multiple domain name access requests for domain A to any node in level i+1.

[0248] In CDN120 Figure 2d In the illustrated two-level deployment architecture, any edge node 122 can aggregate multiple domain name access requests received from domain name A to any node in the next level, such as the target relay node 123A. Different edge nodes 122 can aggregate multiple domain name access requests received from domain name A to the target relay node 123A. The target relay node 123A has a long connection with the origin node 130A of domain name A. The target relay node 123A sends domain name access requests to the origin node 130A through the long connection to realize the back-to-origin request.

[0249] In CDN120 Figure 2e In the three-tier deployment architecture shown, any relay node 123 can aggregate multiple domain name access requests received from domain name A to any node in the next level, such as the target relay node 124A. Different relay nodes 123 can aggregate multiple domain name access requests received from domain name A to any node in the next level, such as the target relay node 124A. The target relay node 124A has a long connection with the origin node 130A of domain name A, and the target relay node 124A sends domain name access requests to the origin node 130A through the long connection to realize the back-to-origin request.

[0250] This invention also provides a domain name access request forwarding device applied to a first node, which is deployed in a content delivery network. The content delivery network also deploys a control center and a second node. The second node has a long-lived connection with the origin server of the domain name, such as... Figure 15a As shown, it includes:

[0251] The domain name acquisition module is used to acquire the target domain name sent by the control center. The global query rate of the target domain name is less than or equal to the query rate threshold. The global query rate is the query rate of the content delivery network for the target domain name.

[0252] The request retrieval module is used to retrieve domain name access requests, which include the domain name.

[0253] The forwarding module is used to send the domain access request to the second node when the domain name is the same as the target domain name. The second node is the aggregation point of the domain name in the content delivery network. The second node is used to send the domain access request to the origin server through a long connection.

[0254] It should be noted that the origin server can be deployed on multiple origin server nodes 130. For any one origin server node 130, multiple relay nodes 123 in CDN 120 communicate with that origin server node 130. The first node can choose any one of the origin server nodes 130, such as the nearest one, and aggregate domain name access requests to any one of the multiple relay nodes 123 communicating with that origin server node 130, thereby increasing the probability of reusing the long-lived connections between the relay node 123 and the origin server node 130. In some possible scenarios, for a certain region, multiple first nodes are deployed in that region, and multiple first nodes select the same origin server node 130. Subsequently, the multiple first nodes will aggregate the domain name access requests received by the selected origin server node 130 to any one of the relay nodes 123 connected to the selected origin server node 130.

[0255] It should be noted that the first node can be the (N-1)th level node in the CDN120, and the second node can be the Nth level node in the CDN120; in the CDN120 using Figure 2d In the illustrated two-tier deployment architecture, the first node can be edge node 122, and the second node can be relay node 123; when CDN120 adopts... Figure 2e In the three-tier deployment architecture shown, the first node can be relay node 123, and the second node can be relay node 124.

[0256] The domain name acquisition module, request acquisition module, and forwarding module can all be implemented in software or hardware. For example, the implementation of the domain name acquisition module will be described below. Similarly, the implementation methods for the request acquisition module and the forwarding module can refer to the implementation method of the domain name acquisition module.

[0257] As an example of a software functional unit, a domain name acquisition module may include code running on a compute instance. A compute instance may include at least one of a physical host (computing device), a virtual machine, or a container. Furthermore, the aforementioned compute instance may be one or more. For example, the domain name acquisition module may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code may be distributed within the same region or in different regions. Further, the multiple hosts / virtual machines / containers used to run the code may be distributed within the same availability zone (AZ) or in different AZs, each AZ comprising one or more geographically proximate data centers. Typically, a region may include multiple AZs.

[0258] Similarly, multiple hosts / virtual machines / containers used to run this code can be distributed within the same Virtual Private Cloud (VPC) or across multiple VPCs. Typically, a VPC is set up within a region. Communication between two VPCs within the same region, as well as between VPCs in different regions, requires a communication gateway to be set up within each VPC to enable interconnection between VPCs.

[0259] As an example of a hardware functional unit, a domain name acquisition module may include at least one computing device, such as a server. Alternatively, the domain name acquisition module may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The aforementioned PLD may be implemented using a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), generic array logic (GAL), or any combination thereof.

[0260] The domain name acquisition module includes multiple computing devices that can be distributed within the same region or in different regions. Similarly, these computing devices can be distributed within the same Availability Zone (AZ) or in different AZs. Likewise, they can be distributed within the same Virtual Private Cloud (VPC) or multiple VPCs. These computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.

[0261] It should be noted that, in other embodiments, the domain name acquisition module can be used to execute any step in the domain name access request forwarding method, such as... Figure 6b , Figure 7a , Figure 8a , Figure 9 The request acquisition module can be used to execute any step in the domain name access request forwarding method, such as... Figure 6b , Figure 7a , Figure 8a , Figure 9 The forwarding module can be used to execute any step in the domain name access request forwarding method shown, such as... Figure 6b , Figure 7a , Figure 8a , Figure 9 In the method shown, the steps implemented by the domain name acquisition module, the request acquisition module, and the forwarding module can be specified as needed. The domain name acquisition module, the request acquisition module, and the forwarding module respectively implement different steps in the domain name access request forwarding method to realize all the functions of the domain name access request forwarding device.

[0262] This invention also provides a domain name determination device. The device is applied to a control center deployed in a content delivery network (CDN). The CDN also deploys multiple nodes, including a first node and a second node. The second node has a long-lived connection with the origin server of the domain name. Figure 15b As shown, the device includes:

[0263] The acquisition module is used to obtain the node query rate of a domain name. The node query rate is the query rate of at least some nodes among multiple nodes for the domain name.

[0264] The statistics module is used to determine the global query rate of a domain name based on the node query rate. The global query rate is the query rate of a domain name within the content delivery network.

[0265] The domain name determination module is used to determine the target domain name, which is a domain name whose global query rate is less than or equal to the query rate threshold;

[0266] The sending module is used to send the target domain name to the first node.

[0267] The acquisition module, statistics module, domain name determination module, and sending module can all be implemented in software or hardware. Similarly, the implementation methods for these modules can be found by referring to [reference needed]. Figure 15a The implementation of the domain name retrieval module will not be elaborated further.

[0268] It should be noted that the content delivery network can be CDN120, and multiple nodes can be N-level nodes in CDN120. The control center can obtain the node query rate of the domain name for each node in any level of N-level and obtain the global query rate of the domain name.

[0269] It is worth noting that, in other embodiments, the acquisition module can be used to perform any step in the domain name determination method, such as Figure 5b The statistics module can be used to execute any step in the domain name access request forwarding method, such as... Figure 5b The domain name determination module can be used to execute any step in the domain name access request forwarding method, such as any step in the method shown. Figure 5b The sending module can be used to execute any step in the domain name access request forwarding method, such as any step in the method shown. Figure 5b Any step in the method shown, the steps implemented by the acquisition module, statistics module, domain name determination module, and sending module can be specified as needed. By implementing different steps in the domain name access request forwarding method through the acquisition module, statistics module, domain name determination module, and sending module, the full functionality of the domain name access request forwarding device can be achieved.

[0270] This invention also provides a content delivery network, such as CDN120, etc. Figure 15c As shown, the content delivery network is deployed with a control center and multiple nodes, including a first node and a second node. The second node has a long connection with the origin server of the domain name.

[0271] The control center is used to obtain the target domain name. The global query rate of the target domain name is less than or equal to the query rate threshold. The global query rate is the query rate of the content delivery network for the target domain name.

[0272] The control center is used to send the target domain name to the first node;

[0273] The first node is used to obtain domain name access requests, which include the domain name. If the domain name is the same as the target domain name, the domain name access request is sent to the second node, which is the aggregation point of the domain name in the content delivery network.

[0274] The second node is used to send domain name access requests to the origin server via a long connection.

[0275] The control center, first node, and second node can all be implemented using software or hardware. Similarly, the implementation methods for the control center, first node, and second node can be found by referring to [the relevant documentation / reference]. Figure 15a The implementation of the domain name retrieval module will not be elaborated further.

[0276] It should be noted that the content delivery network can be CDN120, and multiple nodes can be N-level nodes within CDN120. The control center can obtain the node query rate of the domain name for each node at any level within the N-level network to obtain the global query rate of the domain name. The first node can be a node at level N-1 of CDN120, and the second node can be a node at level N of CDN120; when CDN120 uses... Figure 2d In the illustrated two-tier deployment architecture, the first node can be edge node 122, and the second node can be relay node 123; when CDN120 adopts... Figure 2e In the illustrated three-tier deployment architecture, the first node can be relay node 123, and the second node can be relay node 124. The first node being the (N-1)th level node in CDN 120 is merely an example. In other possible scenarios, the first node can be any level node in CDN network 120, including level 1, level 2, ..., level N-2. Correspondingly, domain name access requests received by the first node need to be aggregated to the second node. For example, according to... Figure 13a and Figure 13b The method shown aggregates domain name access requests received by any of the first-level nodes, second-level nodes, ..., N-2-level nodes in the CDN network 120 to the target Nth-level node.

[0277] The present invention also provides a computing device 1600. For example... Figure 16a As shown, the computing device 1600 includes a bus 1602, a processor 1604, a memory 1606, and a communication interface 1608. The processor 1604, the memory 1606, and the communication interface 1608 communicate with each other via the bus 1602. The computing device 1600 can be a server or a terminal device. It should be understood that the present invention does not limit the number of processors and memories in the computing device 1600.

[0278] The 1602 bus can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of representation, Figure 16a The bus 1602 may be represented by a single line, but this does not mean that there is only one bus or one type of bus. The bus 1602 may include a path for transmitting information between various components of the computing device 1600 (e.g., memory 1606, processor 1604, communication interface 1608).

[0279] Processor 1604 may include any one or more processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).

[0280] The memory 1606 may include volatile memory, such as random access memory (RAM). The processor 1604 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid state drive (SSD).

[0281] The memory 1606 stores executable program code, which the processor 1604 executes to implement the functions of the aforementioned domain name acquisition module, request acquisition module, and forwarding module, thereby realizing the domain name access request forwarding method. In other words, the memory 1606 stores instructions for executing the domain name access request forwarding method.

[0282] Or, such as Figure 16b As shown, the memory 1606 stores executable code, and the processor 1604 executes this executable code to implement the functions of the aforementioned acquisition module, statistics module, domain name determination module, and sending module, thereby realizing the domain name determination method. That is, the memory 1606 stores instructions for executing the domain name determination method.

[0283] The communication interface 1608 uses transceiver modules, such as, but not limited to, network interface cards and transceivers, to enable communication between the computing device 1600 and other devices or communication networks.

[0284] This invention also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smartphone.

[0285] like Figure 17a As shown, the computing device cluster includes at least one computing device 1600. The memory 1606 of one or more computing devices 1600 in the computing device cluster may store the same instructions for executing the domain name access request forwarding method.

[0286] In some possible implementations, the memory 1606 of one or more computing devices 1600 in the computing device cluster may also store partial instructions for executing the domain name access request forwarding method, for example, Figure 4 , Figures 6a to 10 , Figures 13a to 14b The illustrated method includes some instructions. In other words, a combination of one or more computing devices 1600 can jointly execute instructions for performing the domain name access request forwarding method, for example, Figure 4 , Figures 6a to 10 , Figures 13a to 14b The method shown contains some of the instructions.

[0287] It should be noted that the memory 1606 in different computing devices 1600 within the computing device cluster can store different instructions, which are used to execute parts of the functions of the domain name access request forwarding device or the domain name determination device, respectively. That is, the instructions stored in the memory 1606 of different computing devices 1600 can implement... Figure 15a The functions of one or more of the following modules are shown: domain name acquisition module, request acquisition module, and forwarding module.

[0288] In some possible implementations, one or more computing devices in a computing device cluster can be connected via a network. This network can be a wide area network (WAN) or a local area network (LAN), etc. Figure 18a One possible implementation is shown. For example... Figure 18aAs shown, two computing devices 1600A and 1600B are connected via a network. Specifically, they are connected to the network through communication interfaces in each computing device. In this possible implementation, the memory 1606 in computing device 1600A stores instructions for executing the domain name acquisition module. Simultaneously, the memory 1606 in computing device 1600B stores instructions for executing the request acquisition module and the forwarding module.

[0289] Figure 18a The connection method between the computing device clusters shown can be based on the fact that the domain name access request forwarding method provided by the present invention needs to store domain names and forward domain name access requests. In order to improve the efficiency of forwarding domain name access requests, the functions implemented by the request acquisition module and the forwarding module are delegated to the computing device 1600B.

[0290] It should be understood that Figure 18a The functions of computing device 1600A shown can also be performed by multiple computing devices 1600. Similarly, the functions of computing device 1600B can also be performed by multiple computing devices 1600.

[0291] This invention also provides another type of computing device cluster. For example... Figure 17b As shown, the computing device cluster includes at least one computing device 1600. The memory 1606 of one or more computing devices 1600 in the computing device cluster may store the same instructions for executing the domain name determination method.

[0292] In some possible implementations, the memory 1606 of one or more computing devices 1600 in the computing device cluster may also store partial instructions for executing the domain name determination method, such as... Figures 5a to 5c , Figures 11 to 12b The illustrated method includes some instructions. In other words, a combination of one or more computing devices 1600 can jointly execute instructions for performing the domain name determination method, such as... Figures 5a to 5c , Figures 11 to 12b The instructions for the method shown are partial.

[0293] It should be noted that the memory 1606 in different computing devices 1600 within the computing device cluster can store different instructions, each used to execute a portion of the functions of the domain name determination device. That is, the instructions stored in the memory 1606 of different computing devices 1600 can implement... Figure 15b The functions of one or more of the following modules are shown: acquisition module, statistics module, domain name determination module, and sending module.

[0294] In some possible implementations, one or more computing devices in a computing device cluster can be connected via a network. This network can be a wide area network (WAN) or a local area network (LAN), etc. Figure 18b One possible implementation is shown. For example... Figure 18b As shown, two computing devices 1600A and 1600B are connected via a network. Specifically, they are connected to the network through communication interfaces in each computing device. In this possible implementation, the memory 1606 in computing device 1600A stores instructions for executing the functions of the acquisition module. Simultaneously, the memory 1606 in computing device 1600B stores instructions for executing the functions of the statistics module, the domain name determination module, and the sending module.

[0295] Figure 18b The connection method between the computing device clusters shown can be based on the fact that the determination access method provided by the present invention requires a large number of receiving node QPS and storage. Therefore, it is considered that the functions implemented by the statistics module, domain name determination module and sending module are performed by the computing device 1600B.

[0296] It should be understood that Figure 18b The functions of the computing device 1600A shown can also be performed by multiple computing devices 1600. Similarly, the functions of the computing device 1600B can also be performed by multiple computing devices 1600.

[0297] This invention also provides another type of computing device cluster. The connection relationships between the computing devices in this computing device cluster can be similarly referred to... Figure 17a , Figure 17b , Figure 18a and Figure 18b The connection method of the computing device cluster. The difference is, as... Figure 17c As shown, the memory 1606 in different computing devices 1600 within the computing device cluster can store different instructions for executing some functions of the content delivery network. The instructions stored in the memory 1606 of the different computing devices 1600 can implement... Figure 15c The functions of any one of the control center, first node, and second node shown are as follows: Figure 18c As shown, the memory 1606 in computing device 1600A stores instructions for the function of the control center, the memory 1606 in computing device 1600B stores instructions for the function of the first node, and the memory 1606 in computing device 1600C stores instructions for the function of the second node.

[0298] This invention also provides a computer program product containing instructions. The computer program product may be a software or program product containing instructions, capable of running on a computing device or stored on any usable medium. When the computer program product runs on at least one computing device, it causes the at least one computing device to execute a domain name access request forwarding method, such as... Figure 4 , Figures 6a to 10 , Figures 13a to 14b The methods shown, or methods for determining domain names, such as... Figures 5a to 5c , Figures 11 to 12b The method shown.

[0299] This invention also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that a computing device can store, or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive). The computer-readable storage medium includes instructions that instruct the computing device to execute a domain name access request forwarding method, such as... Figure 4 , Figures 6a to 10 , Figures 13a to 14b The methods shown, or methods for determining domain names, such as... Figures 5a to 5c , Figures 11 to 12b The method shown.

[0300] In the above embodiments, the descriptions of each embodiment have different focuses. For parts that are not described in detail or recorded in a certain embodiment, please refer to the relevant descriptions of other embodiments.

[0301] It should be understood that the sequence number of each step in the above embodiments does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present invention.

[0302] The basic principles of the present invention have been described above with reference to specific embodiments. However, it should be noted that the advantages, benefits, and effects mentioned in the present invention are merely examples and not limitations, and should not be considered as essential features of the various embodiments of the present disclosure. Furthermore, the specific details disclosed above are for illustrative and facilitative purposes only, and are not limitations. These details do not limit the scope of the present disclosure to the necessity of employing the specific details described above.

[0303] The block diagrams of devices, apparatuses, devices, and systems disclosed herein are merely illustrative examples and are not intended to require or imply that they must be connected, arranged, or configured in the manner shown in the block diagrams. As those skilled in the art will recognize, these devices, apparatuses, devices, and systems can be connected, arranged, and configured in any manner. Words such as “comprising,” “including,” “having,” etc., are open-ended terms meaning “including but not limited to,” and are used interchangeably with them. The terms “or” and “and” as used herein refer to the terms “and / or,” and are used interchangeably with them unless the context clearly indicates otherwise. The term “such as” as used herein refers to the phrase “such as but not limited to,” and is used interchangeably with it.

[0304] It should also be noted that in the apparatus, devices, and methods of this disclosure, the components or steps can be disassembled and / or recombined. These disassemblies and / or recombinations should be considered as equivalent solutions to this disclosure.

[0305] The above description has been given for purposes of illustration and description. Furthermore, this description is not intended to limit the embodiments of this disclosure to the forms disclosed herein. Although numerous exemplary aspects and embodiments have been discussed above, those skilled in the art will recognize certain variations, modifications, alterations, additions, and sub-combinations therein.

[0306] It is understood that the various numerical designations used in the embodiments of the present invention are merely for descriptive convenience and are not intended to limit the scope of the embodiments of the present invention.

Claims

1. A method for forwarding domain name access requests, characterized in that, The method is applied to a first node deployed in a content delivery network (CDN), which also deploys a control center and a second node. The second node has a persistent connection with the origin server of the domain name. Obtain the target domain name sent by the control center, wherein the global query rate of the target domain name is less than or equal to the query rate threshold, and the global query rate is the query rate of the content delivery network for the target domain name; Obtain a domain name access request, wherein the domain name access request includes the domain name; If the domain name is the same as the target domain name, the domain name access request is sent to the second node, which is the aggregation point of the domain name in the content delivery network. The second node is used to send the domain name access request to the origin server through the long connection.

2. The method according to claim 1, characterized in that, Before obtaining the target domain name sent by the control center, the method includes: Determine the node query rate of the domain name, wherein the node query rate is the query rate of the first node for the domain name; The node query rate of the domain name is sent to the control center. The node query rate is used to calculate the global query rate of the domain name.

3. The method according to claim 1 or 2, characterized in that, The method further includes: Obtain node information sent by the control center, wherein the node information is used to instruct the first node on multiple relay nodes of the source station; Before sending the domain name access request to the second node, the method further includes: Based on the domain name, the second node is determined from the plurality of relay nodes.

4. The method according to any one of claims 3, characterized in that, The step of determining the second node from the plurality of relay nodes based on the domain name includes: Based on the consistent hashing algorithm, the first hash value corresponding to each of the plurality of relay nodes is determined; Based on the consistent hashing algorithm, the second hash value corresponding to the domain name is determined; The relay node corresponding to the first hash value that is the same as the second hash value is used as the second node.

5. A method for forwarding domain name access requests, characterized in that, Applied to a content delivery network, the content delivery network is deployed with a control center and multiple nodes, the multiple nodes including a first node and a second node, the second node having a long-lived connection with the origin server of the domain name, the method includes: The control center obtains the target domain name, and the global query rate of the target domain name is less than or equal to the query rate threshold. The global query rate is the query rate of the content delivery network for the target domain name. The control center sends the target domain name to the first node; The first node obtains a domain name access request, which includes the domain name; if the domain name is the same as the target domain name, the first node sends the domain name access request to the second node, which is the aggregation point of the domain name in the content delivery network. The second node sends the domain name access request to the origin server through the long connection.

6. The method according to claim 5, characterized in that, The method further includes: The control center sends node information to the first node, the node information being used to instruct the first node on multiple relay nodes for the source station; The first node determines the second node from the plurality of relay nodes based on the domain name.

7. The method according to claim 6, characterized in that, The first node determines the second node from the plurality of relay nodes based on the domain name, including: The first node determines the first hash value corresponding to each of the plurality of relay nodes based on the consistent hashing algorithm; The first node determines the second hash value corresponding to the domain name based on the consistent hashing algorithm; The first node will use the relay node corresponding to the first hash value that is the same as the second hash value as the second node.

8. The method according to claim 5, characterized in that, The method further includes: The first node sends a target request to the control center, the target request being used to obtain the convergence point among the multiple relay nodes of the source station for the first node; The control center responds to the target request and determines the response result, which is used to instruct the second node. The control center sends the response result to the first node.

9. The method according to any one of claims 5 to 8, characterized in that, The method further includes: The control center obtains the node query rate of the domain name, where the node query rate is the query rate of at least some of the nodes among the plurality of nodes for the domain name; The control center determines the global query rate of the domain name based on the node query rate of the domain name, and the global query rate is the query rate of the content delivery network for the domain name; If the global query rate of the domain name is less than or equal to the query rate threshold, the control center determines the domain name as the target domain name.

10. A domain name access request forwarding device, characterized in that, The device is applied to a first node deployed in a content delivery network (CDN), which also deploys a control center and a second node. The second node has a long-lived connection with the origin server of the domain name. The device includes: The domain name acquisition module is used to acquire the target domain name sent by the control center, wherein the global query rate of the target domain name is less than or equal to the query rate threshold, and the global query rate is the query rate of the content delivery network for the target domain name; A request acquisition module is used to acquire domain name access requests, wherein the domain name access requests include the domain name; The forwarding module is used to send the domain name access request to the second node when the domain name is the same as the target domain name. The second node is the aggregation point of the domain name in the content delivery network. The second node is used to send the domain name access request to the origin server through the long connection.

11. The apparatus according to claim 10, characterized in that, The domain name acquisition module is further configured to determine the node query rate of the domain name, wherein the node query rate is the query rate of the first node for the domain name; and to send the node query rate of the domain name to the control center, wherein the node query rate is used to calculate the global query rate of the domain name.

12. The apparatus according to claim 11 or 12, characterized in that, The forwarding module is used to obtain node information sent by the control center, and the node information is used to instruct the first node on multiple relay nodes for the source station; Based on the domain name, the second node is determined from the plurality of relay nodes.

13. The apparatus according to claim 12, characterized in that, The forwarding module is used to determine a first hash value corresponding to each of the plurality of relay nodes based on a consistent hashing algorithm; and to determine a second hash value corresponding to the domain name based on the consistent hashing algorithm. The relay node corresponding to the first hash value that is the same as the second hash value is used as the second node.

14. A content delivery network, characterized in that, The content delivery network is deployed with a control center and multiple nodes, including a first node and a second node. The second node has a long-lived connection with the origin server of the domain name. The device includes: The control center is used to obtain the target domain name, wherein the global query rate of the target domain name is less than or equal to the query rate threshold, and the global query rate is the query rate of the content delivery network for the target domain name; The control center is used to send the target domain name to the first node; The first node is used to obtain a domain name access request, the domain name access request including the domain name; if the domain name is the same as the target domain name, the domain name access request is sent to the second node, the second node being the aggregation point of the domain name in the content delivery network; The second node is used to send the domain name access request to the origin server through the long connection.

15. The content delivery network according to claim 14, characterized in that, The control center is used to send node information to the first node, and the node information is used to instruct the first node on multiple relay nodes of the source station; The first node is used to determine the second node from the plurality of relay nodes based on the domain name.

16. The content delivery network according to claim 15, characterized in that, The first node is used to determine a first hash value corresponding to each of the plurality of relay nodes based on a consistent hashing algorithm; and to determine a second hash value corresponding to the domain name based on the consistent hashing algorithm. The relay node corresponding to the first hash value that is the same as the second hash value is used as the second node.

17. The content delivery network according to claim 14, characterized in that, The first node is used to send a target request to the control center, the target request being used to obtain the convergence point among multiple relay nodes of the source station for the first node; The control center is used to respond to the target request, determine the response result, and the response result is used to instruct the second node; The control center is used to send the response result to the first node.

18. The content delivery network according to any one of claims 14 to 17, characterized in that, The control center is used to obtain the node query rate of the domain name, wherein the node query rate is the query rate of at least some of the nodes among the plurality of nodes for the domain name; The control center is used to determine the global query rate of the domain name based on the node query rate of the domain name, wherein the global query rate is the query rate of the content delivery network for the domain name; The control center is used to determine the domain name as the target domain name when the global query rate of the domain name is less than or equal to the query rate threshold.

19. A computing device cluster, characterized in that, It includes at least one computing device, each computing device including a processor and memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device to cause the cluster of computing devices to perform the method as described in any one of claims 1 to 9.

20. A computer program product containing instructions, characterized in that, When the instruction is executed by the computing device cluster, the computing device cluster causes the computing device cluster to perform the method as described in any one of claims 1 to 9.

21. A computer-readable storage medium, characterized in that, Includes computer program instructions, which, when executed by a cluster of computing devices, perform the method as described in any one of claims 1 to 9.