A method of streaming data transmission and related devices
By introducing bus nodes into a serverless system for streaming data transmission, the decoupling of data flow and control flow is achieved, solving the problem of low resource utilization in streaming data transmission, reducing costs and improving efficiency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
- Filing Date
- 2024-12-06
- Publication Date
- 2026-06-09
Smart Images

Figure CN122179428A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of cloud computing technology, and in particular to a streaming data transmission method, a data transmission system, a bus node, a computing device cluster, a computer-readable storage medium, and a computer program product. Background Technology
[0002] Streaming technology is a data transmission method that allows audio, video, or other types of data to be continuously transmitted and processed in real time over a network without being fully downloaded to the user's device. Due to its advantages such as real-time performance, continuity, low latency, and adaptability, streaming is widely used in scenarios such as streaming media transmission, generative artificial intelligence (AI), real-time push notifications, real-time document collaboration, and live streaming.
[0003] In a serverless system, when a user requests streaming data, the client first establishes a connection with the Application Programming Interface (API) gateway and initiates a function call request through the Representational State Transfer (REST) API. Upon receiving the function call request, the API gateway sends it to the event routing and scheduling component. The event routing and scheduling component forwards the function call request to a specific function cluster's function scheduling component based on the request information. The function scheduling component then deploys a function container group (Pod) based on the request information and sends the function call request to the Pod. The Pod receives the function call request and can continuously generate streaming data, which can be returned along the path taken by the function call request. Specifically, the function scheduling component returns the streaming data to the event routing and scheduling component, which then returns the streaming data to the API gateway, and the API gateway then returns the streaming data to the client.
[0004] Streaming data transmission typically lasts for extended periods and involves large amounts of data. However, individual nodes in serverless systems (such as event routing and scheduling components or API gateways) have limitations on the number of connections and bandwidth. If a large number of function call requests simultaneously enter the serverless system, it is necessary to expand the number of nodes to meet user demand. In the architecture described above, all nodes on the link are responsible for data processing and forwarding; therefore, expansion requires scaling up all components. If expansion is only due to insufficient connections or bandwidth, computing resources are often underutilized, leading to reduced resource utilization and increased overall platform costs. Summary of the Invention
[0005] This application provides a streaming data transmission method, which proposes a streaming data transmission bus architecture under a serverless architecture. This architecture introduces bus nodes for streaming data transmission, thereby supporting the decoupling of user streaming data transmission from control logic in a serverless system. The bus architecture supports independent scaling strategies. When the number of connections or bandwidth is insufficient, only the bus nodes need to be scaled up, avoiding the reduction in resource utilization caused by scaling up the index components, thus reducing the overall platform cost. This application also provides a data transmission system, computing device cluster, computer-readable storage medium, and computer program product corresponding to the above method.
[0006] Firstly, this application provides a streaming data transmission method. This method is applied to a data transmission system. The data transmission system is used to transmit streaming data. The data transmission system can be a software system. This software system can be standalone software or integrated into other software as a plugin, component, functional module, app, etc. The software system can be provided to the customer as a software package for self-deployment. Alternatively, the software system can be provided to the user as a cloud service. In some examples, the data transmission system can also be a hardware system, which can be a cluster of computing devices deploying the aforementioned software system. When the computing device cluster runs, it executes the streaming data transmission method of this application.
[0007] Specifically, the data transmission system includes a routing and scheduling component and at least one bus node. The bus node may be a node that includes a stream data bus component. The bus node can be a physical node or a logical node. The stream data bus component is used for processing and forwarding streaming data; streaming data transmission no longer passes through the routing and scheduling component (such as an event routing and scheduling component) or the function scheduling component. At least one bus node includes a first bus node.
[0008] The first bus node receives a data transmission request from the client, which requests streaming data. The first bus node then forwards the data transmission request to the routing and scheduling component. Next, the routing and scheduling component, based on the service information carried in the data transmission request, schedules the request to the corresponding service cluster. This service information may include, but is not limited to, function names and function identifiers. Service clusters may include function clusters. The first bus node receives the streaming data returned by the service cluster. The streaming data is generated by the service cluster executing the data transmission request. The first bus node can also return streaming data to the client.
[0009] This method introduces bus nodes for streaming data transmission, decoupling data flow (such as streaming data) from control flow (such as data transmission requests). When request traffic increases, for example, when a large number of streaming data transmission requests are waiting to be processed, only the bus node or the streaming data bus component within the bus node needs to be expanded. The event routing component and function scheduling component do not need to be expanded, thus increasing resource utilization and reducing costs.
[0010] In some possible implementations, the first bus node includes a streaming request application programming interface (API) and a streaming data API. Data transmission requests are generated by the client calling the streaming request API, and streaming data is returned to the first bus node by the business cluster calling the streaming data API.
[0011] This method provides streaming request APIs and streaming data APIs, which can realize streaming data transmission by calling the corresponding APIs. It does not require adaptation for different clients or different business clusters, has high compatibility with different clients or different business clusters, and improves overall availability.
[0012] In some possible implementations, the first bus node creates temporary storage corresponding to the data transmission request. This temporary storage stores the streaming data requested by the data transmission request. Accordingly, the first bus node can listen to the temporary storage and return the streaming data in the temporary storage to the client. For example, the first bus node can listen to the streaming data in the temporary storage through a streaming request API, and when it detects streaming data, it returns the streaming data to the client.
[0013] In this method, the streaming data generated by the business cluster is returned to the temporary storage of the first bus node, and then returned to the client from the temporary storage. The transmission of streaming data does not pass through the routing scheduling component or the function scheduling component, so there is no need to expand the routing scheduling component or the function scheduling component. This avoids the waste of computing resources caused by expanding components other than the bus node, such as the routing scheduling component and the function scheduling component, thereby improving resource utilization and reducing overall costs.
[0014] In some possible implementations, the first bus node includes a request cache. This request cache can be implemented using a local memory cache or a distributed data cache. The first bus node can also store the request identifier of the data transmission request and the address of temporary storage in the request cache. Accordingly, when the first bus node receives streaming data, it queries the request cache based on the request identifier to obtain the address of temporary storage. The first bus node then writes the streaming data to the temporary storage.
[0015] In this way, streaming data can be accurately written to temporary storage so that the first bus node can listen to the streaming data in a timely manner and return the streaming data to the client, thus achieving real-time or near real-time streaming data backhaul.
[0016] In some possible implementations, temporary storage includes streaming data channels or data tunnels. Streaming data channels or data tunnels can support bus nodes writing and reading streaming data, thus enabling the simultaneous receiving and sending of streaming data and improving the efficiency of streaming data transmission.
[0017] In some possible implementations, when the first bus node receives streaming data returned by the service cluster, it can receive streaming data returned by the service cluster based on the first bus node's Internet Protocol (IP) address. For example, if the service cluster (such as a function cluster) and the first bus node are on the same network segment, the service cluster can accurately access the first bus node via its IP address. This allows the streaming data to be accurately returned to the first bus node, which then completes the streaming data backhaul, improving the efficiency of streaming data transmission.
[0018] In some possible implementations, the data transmission system also includes a streaming data routing component. This component is part of the streaming data routing node used to route streaming data. It supports simultaneous access to both the service cluster's network and the streaming data bus module's network. Accordingly, the first bus node can receive streaming data returned by the streaming data routing component based on its IP address. For example, the streaming data routing component can receive streaming data forwarded by function Pods in the service cluster and then forward the streaming data to the first bus node based on its IP address.
[0019] By introducing a streaming data routing component, even if the service cluster and the first bus node (or the streaming data bus module where the first bus node is located) are in different networks or different network segments, the data can be forwarded to the streaming data routing component first. Then, the data routing component can accurately access the first bus node based on the IP address of the first node and return the streaming data to the first bus node, thus achieving high availability.
[0020] In some possible implementations, the data transmission system also includes an API gateway. The first bus node, the API gateway, is determined based on a random strategy, a round-robin strategy, or a load balancing strategy. This can satisfy the business requirements for the bus node, such as load balancing requirements.
[0021] Secondly, this application provides a data transmission system. The system includes a routing and scheduling component and at least one bus node, wherein the at least one bus node includes a first bus node;
[0022] The first bus node is used to receive data transmission requests sent by the client, the data transmission requests being used to request streaming data, and to forward the data transmission requests to the routing and scheduling component;
[0023] The routing and scheduling component is used to schedule the data transmission request to the service cluster corresponding to the service information based on the service information carried in the data transmission request.
[0024] The first bus node is also configured to receive streaming data returned by the service cluster, the streaming data being generated by the service cluster executing the data transmission request, and to return the streaming data to the client.
[0025] In some possible implementations, the first bus node includes a streaming request application programming interface (API) and a streaming data API. The data transmission request is generated by the client calling the streaming request API, and the streaming data is returned to the first bus node by the service cluster calling the streaming data API.
[0026] In some possible implementations, the first bus node is also used for:
[0027] Create temporary storage corresponding to the data transmission request, the temporary storage being used to store the streaming data requested by the data transmission request;
[0028] The first bus node is specifically used for:
[0029] Monitor the temporary storage and return the streaming data in the temporary storage to the client.
[0030] In some possible implementations, the first bus node includes a request cache, and the first bus node is further configured to:
[0031] Store the request identifier of the data transmission request and the address of the temporary storage into the request cache;
[0032] Upon receiving the streaming data, the request cache is queried based on the request identifier to obtain the address of the temporary storage;
[0033] The streaming data is written to the temporary storage.
[0034] In some possible implementations, the temporary storage includes a streaming data channel or a data tunnel.
[0035] In some possible implementations, the first bus node is specifically used for:
[0036] The first bus node receives streaming data returned by the service cluster based on the Internet Protocol IP address of the first bus node.
[0037] In some possible implementations, the system further includes a streaming data routing component, wherein the first bus node is specifically used for:
[0038] Receive streaming data returned by the streaming data routing component based on the IP address of the first bus node.
[0039] In some possible implementations, the system further includes an API gateway, wherein the first bus node is determined by the API gateway according to a random strategy, a round-robin strategy, or a load balancing strategy.
[0040] Thirdly, this application provides a computing device cluster. The computing device cluster includes at least one computing device, which includes at least one processor and at least one memory. The at least one processor and the at least one memory communicate with each other. The at least one processor is configured to execute instructions stored in the at least one memory to cause the computing device or the computing device cluster to perform the streaming data transmission method as described in the first aspect or any implementation thereof.
[0041] Fourthly, this application provides a computer-readable storage medium storing instructions that instruct a computing device or a cluster of computing devices to perform the streaming data transmission method described in the first aspect or any implementation thereof.
[0042] Fifthly, this application provides a computer program product containing instructions that, when run on a computing device or a cluster of computing devices, causes the computing device or cluster of computing devices to execute the streaming data transmission method described in the first aspect or any implementation thereof.
[0043] Based on the implementation methods provided in the above aspects, this application can be further combined to provide more implementation methods. Attached Figure Description
[0044] To more clearly illustrate the technical methods of this application, the accompanying drawings used will be briefly described below.
[0045] Figure 1 This application provides a schematic diagram of the architecture of a serverless system.
[0046] Figure 2 A schematic diagram of the architecture of a data transmission system provided in this application;
[0047] Figure 3 A flowchart of a streaming data transmission method provided in this application;
[0048] Figure 4 A flowchart of a streaming data transmission method provided in this application;
[0049] Figure 5 A schematic diagram of the structure of a computing device provided in this application;
[0050] Figure 6 This application provides a schematic diagram of the structure of a computing device cluster;
[0051] Figure 7 This application provides a schematic diagram of another computing device cluster structure.
[0052] Figure 8 This is a schematic diagram of another computing device cluster provided in this application. Detailed Implementation
[0053] The terms "first" and "second" used in the embodiments of this application are for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of indicated technical features. Therefore, a feature defined with "first" and "second" may explicitly or implicitly include one or more of that feature.
[0054] First, some technical terms involved in the embodiments of this application will be introduced.
[0055] Streaming is a data transmission method that allows audio, video, or other types of data to be continuously transmitted and processed in real time over a network without needing to be fully downloaded to the user's device. Streaming offers advantages such as real-time performance, continuity, low latency, and adaptability. Real-time performance means data is processed immediately during transmission, without waiting for the entire file to download. Continuity means data is transmitted in a continuous stream, ensuring no noticeable interruption for the user during data processing. Low latency means data is transmitted in segments, reducing latency from the server to the client. Adaptability means streaming can dynamically adjust data transmission rate and quality according to changes in network bandwidth. Due to these advantages, streaming is widely used in streaming media transmission, generative artificial intelligence (AI), real-time push notifications, real-time document collaboration, and live streaming.
[0056] Serverless architecture is an architecture that provides backend services on demand. Serverless providers allow users to write and deploy code without worrying about the underlying infrastructure. Specifically, serverless providers can request backend service resources, including computing and storage resources, based on the actual volume of user requests, deploy user code on these resources, and execute the code to obtain the results. Serverless providers can be billed based on call volume or call duration. Because the service scales automatically, there is no need to reserve and pay for a fixed amount of bandwidth or servers, thus reducing costs. The code deployed by the user on the serverless provider can be a serverless function, or simply a function.
[0057] Figure 1 This diagram illustrates the architecture of a typical serverless system, which includes an interface gateway, an event routing and scheduling component, and multiple function clusters. Figure 1 The following examples illustrate function clusters 1 and 2. Each function cluster includes a function scheduling component. The interface gateway is an application programming interface (API) gateway, providing serverless function services. Users can invoke functions through the Representational State Transfer (REST) API. The event routing and scheduling component handles user requests, such as streaming requests (simply referred to as requests), and is responsible for request authentication and request routing across the cluster. The function cluster executes user functions. The function scheduling component deploys function container groups (denoted as Pods) based on user requests and distributes requests to those Pods.
[0058] exist Figure 1 In a serverless architecture, when a user initiates a streaming request, the client first establishes a connection with the interface gateway and initiates a function call request via the REST API. After receiving the function call request, the interface gateway sends the request to the event routing and scheduling component. The event routing and scheduling component forwards the function call request to a function scheduling component of a specific function cluster based on the request information. The function scheduling component deploys a function Pod based on the request information of the function call request, such as the identifier of the requested function, and sends the function call request to the function Pod. When the function Pod receives the function call request, it will continuously generate streaming data. The streaming data generated by the function pod can be returned through the link sent by the function call request. After receiving the streaming data, the function scheduling component and the event routing and scheduling component return it directly to the client through the same path.
[0059] Streaming data typically involves large volumes of data, resulting in prolonged data transmission times. Individual nodes in serverless systems have limitations on the number of connections and bandwidth. If a large number of streaming requests need to be processed simultaneously, it is usually necessary to scale up the number of nodes to meet user demand. However, Figure 1 In the serverless system shown, all nodes on the link are responsible for data processing and forwarding. Therefore, scaling up requires scaling up all components, such as the event routing and scheduling component and the function scheduling component. Scaling up due to insufficient connections or bandwidth can lead to underutilization of computing resources such as CPU resources, resulting in a significant decrease in resource utilization and increasing the overall platform cost. Furthermore, scaling up all nodes on the link further increases the cost.
[0060] In view of this, this application provides a streaming data transmission method. This method can be executed by a data transmission system. The data transmission system is used to transmit streaming data. The data transmission system can be a software system. This software system can be standalone software or integrated into other software as a plugin, component, functional module, app, etc. The software system can be provided to the customer as a software package for self-deployment. Alternatively, the software system can be provided to the user as a cloud service. In some examples, the data transmission system can also be a hardware system, which can be a cluster of computing devices deploying the aforementioned software system. When the computing device cluster runs, it executes the streaming data transmission method of this application.
[0061] Specifically, the data transmission system includes a routing and scheduling component and at least one bus node. The bus node may be a node including a Stream Data Bus component. The bus node can be a physical node or a logical node. The Stream Data Bus component is used for processing and forwarding streaming data; streaming data transmission no longer passes through the routing and scheduling component (such as an event-based routing and scheduling component) or the function-based scheduling component. At least one bus node includes a first bus node. The first bus node receives data transmission requests sent by clients, which request streaming data. The first bus node then forwards the data transmission request to the routing and scheduling component. The routing and scheduling component then schedules the data transmission request to the corresponding service cluster based on the service information carried in the data transmission request. The first bus node receives the streaming data returned by the service cluster. This streaming data is generated by the service cluster executing the data transmission request. The first bus node can also return streaming data to the client.
[0062] This method decouples data flow and control flow by introducing a bus node for streaming data transmission. When request traffic increases, for example, when a large number of streaming data transmission requests are waiting to be processed, only the bus node or the streaming data bus component within the bus node needs to be expanded. The event routing component and function scheduling component do not need to be expanded, thus increasing resource utilization and reducing costs.
[0063] To make the technical solution of this application clearer and easier to understand, the architecture of the data transmission system provided in this application will be described below with reference to the accompanying drawings.
[0064] See Figure 2 The diagram illustrates the architecture of a data transmission system 20. This system is used in a serverless architecture for streaming scenarios. The data transmission system 20 includes a routing and scheduling component 202 and at least one bus node 204. The at least one bus node 204 can form a streaming data bus module. Figure 2 An example is provided using a streaming data bus module that includes multiple bus nodes.
[0065] Bus node 204 receives data transmission requests from clients requesting streaming data and then forwards these requests to routing and scheduling component 202. Figure 2 As shown, the streaming data bus module includes multiple bus nodes 204. Data transmission requests from different clients, or different data transmission requests from the same client (e.g., data transmission requests triggered by the user at different times), can be sent to the same bus node 204 or different bus nodes 204. It should be noted that the data transmission system 20 may also include an API gateway 205. Data transmission requests can first pass through the API gateway 205, and then the API gateway 205 sends the data transmission request to the bus node 204. The API gateway 205 can determine the bus node 204 used to transmit the data transmission request from among the multiple bus nodes 204 according to a routing strategy. For ease of description, the bus node 204 used to transmit the data transmission request is also referred to as the first bus node. The routing strategy may include, but is not limited to, random strategies, round-robin strategies, and load balancing strategies.
[0066] The routing and scheduling component 202 is used to schedule data transmission requests to the service cluster corresponding to the service information carried in the data transmission request. The service information may include at least one of the following: service type, service identifier (ID), and function identifier of the function corresponding to the service. The data transmission system 20 may include at least one function cluster 206. Figure 2Taking multiple function clusters 206 as an example, the business cluster corresponding to the business information can be a function cluster within function cluster 206 that deploys the function corresponding to the business. For example, for a data transmission request sent by client 1, the business cluster can be function cluster 1 that deploys the user 1 function. As another example, for a data transmission request sent by client 2, the business cluster can be function cluster 2 that deploys the user 2 function.
[0067] Function cluster 206 may include a function scheduling component. The function scheduling component is used to deploy instances of functions within the function cluster, scheduling data transfer requests to the corresponding function instances. These instances can be virtual machine (VM) instances or container instances. For example, the function scheduling component of function cluster 1 can create a set of user 1 function containers (Pods) within the VMs of function cluster 1. Similarly, the function scheduling component of function cluster 2 can create user 2 function Pods within the VMs of function cluster 2. A Pod is a collection of one or more containers. Containers within the same Pod share the same computing resources, which are aggregated to form several clusters. These clusters provide a more powerful and intelligent distributed system for executing the corresponding functions.
[0068] In practice, the routing and scheduling component 202 can query whether the function cluster 206 includes a function cluster that deploys the corresponding user function. If it does, the routing and scheduling component 202 will schedule the data transmission request to the function cluster that deploys the corresponding user function. If it does not, the routing and scheduling component 202 can determine the function cluster to which the corresponding user function should be deployed. For example, the routing and scheduling component 202 can determine the function cluster to which the corresponding user function should be deployed based on the load of each function cluster 206 through a load balancing strategy. In the function cluster to which the corresponding user function should be deployed, the function scheduling component creates a function Pod for the corresponding user function and schedules the data transmission request to the function Pod.
[0069] Bus node 204 is also used to receive streaming data returned by the service cluster. Streaming data is generated when the service cluster executes a data transmission request. For example, streaming data could be generated when function cluster 1 executes a data transmission request for user 1, or when function cluster 2 executes a data transmission request for user 2. In some possible implementations, bus node 204 receives streaming data sent by function Pods in the service cluster and can return the streaming data to the client along the original path. The stream formed by the data transmission request is the control flow, and the stream formed by the streaming data is the data flow.
[0070] In some possible implementations, the data transmission system 20 also includes a bus management node 208. The bus management node 208 is used to monitor the resource usage information of the streaming data bus module or at least one bus node 204. The resource usage information may include the utilization rate of resources such as bandwidth, number of connections or memory. Then, based on the resource usage information, the system manages the scaling up and down of at least one bus node 204 of the streaming data bus module.
[0071] based on Figure 2 The data transmission system 20 shown in this application provides a streaming data transmission method. The streaming data transmission method of this application will be described in detail below with reference to the accompanying drawings.
[0072] See Figure 3 The flowchart shown illustrates a streaming data transmission method, which includes the following steps:
[0073] S302, The client sends a data transmission request.
[0074] A data transfer request is used to request the transfer of streaming data; therefore, a data transfer request can be a streaming call request. The streaming data can be generated by executing a user function, and correspondingly, the data transfer request can include a function identifier (ID), such as the function name.
[0075] In some possible implementations, the bus node provides a streaming request API, which is used to provide streaming data transmission services. Clients can call the streaming request API to generate data transmission requests.
[0076] S304 and API gateway 205 distribute data transmission requests to the first bus node among multiple bus nodes 204 according to the routing policy.
[0077] When the data transmission system 20 includes an API gateway 205, data transmission requests can first reach the API gateway 205, which can route the data transmission requests according to a routing strategy. This routing strategy may include, but is not limited to, random strategies, round-robin strategies, and load balancing strategies. The streaming data bus module includes multiple bus nodes 204. The API gateway 205 can determine the first bus node from among the multiple bus nodes 204 according to the routing strategy and send the data transmission request to the first bus node.
[0078] The above-described S302 to S304 represent one specific implementation of the first bus node receiving data transmission requests sent by the client. In practical applications, the first bus node can also receive data transmission requests sent by the client in other ways. For example, when the data transmission system 20 does not include the API gateway 205, the bus node can directly receive the data transmission requests sent by the client and forward them to the routing and scheduling component 202.
[0079] S306. The first bus node generates a request identifier and creates a streaming data channel corresponding to the data transmission request.
[0080] The request identifier is used to uniquely identify a data transmission request. In some examples, the first bus node can generate the request identifier based on a sequence number or serial number. The first bus node can generate the request identifier upon receiving a data transmission request. Figure 3 The example given is that the first bus node receives a data transmission request and generates a request identifier. In other examples, the request identifier may also be generated by the client and carried in the data transmission request.
[0081] A streaming data channel is a data pipeline that follows a first-in, first-out (FIFO) principle. It is used to transmit streaming data. Streaming data channels can be implemented using memory queues or distributed queues. It should be noted that the function of a streaming data channel is to temporarily store streaming data to enable streaming data transmission. Therefore, in other possible implementations of this application, temporary storage of streaming data can also be implemented in other ways. For example, the first bus node can create temporary storage corresponding to the data transmission request; this temporary storage can be a streaming data channel or a data tunnel.
[0082] It should be noted that after the temporary storage such as the streaming data channel is created, the first bus node can start listening to the streaming data of the temporary storage such as the streaming data channel.
[0083] S308, the first bus node stores the request identifier and the address of the streaming data channel into the request cache.
[0084] The request cache is a cache in bus node 204 used to store information related to data transmission requests. This request cache can be implemented using a local memory cache or a distributed data cache; this application does not impose any limitation on this. The information related to the data transmission request includes a request identifier and the address of temporary storage for the streaming data requested by the data transmission request. Figure 3 In the example, temporary storage is a streaming data channel.
[0085] S310, the first bus node forwards the request identifier, the Internet Protocol (IP) address of the first bus node, and the request body of the data transmission request to the routing and scheduling component 202.
[0086] The above-described S306 to S310 are specific implementations of the first bus node forwarding data transmission requests to the routing scheduling component 202. In other possible implementations of this application, the first bus node may also implement data transmission request forwarding and other processing in other ways.
[0087] S312, the routing scheduling component 202 schedules the request identifier, the IP of the first bus node, and the request body of the data transmission request to the function cluster 206 corresponding to the business information.
[0088] Specifically, the routing and scheduling component 202 can schedule the request identifier, the IP address of the first bus node, and the request body of the data transmission request to the service cluster corresponding to the service information carried in the data transmission request. The service cluster can be a function cluster. The service information may include a function ID or a function name.
[0089] Specifically, the routing and scheduling component 202 can determine the function cluster 206 corresponding to the business information carried in the data transmission request from multiple function clusters 206. For example, the business information includes the function name or function ID of the target function. The routing and scheduling component 202 can obtain information about the deployed functions in the function cluster 206 and determine the function cluster corresponding to the business information from multiple function clusters 206 based on the deployed function information. The function cluster 206 corresponding to the business information can be a function cluster 206 that has the target function deployed. It should be noted that if the target function is not deployed in any of the multiple function clusters 206, the routing and scheduling component 202 can determine the function cluster 206 corresponding to the business information based on a cluster selection strategy. This cluster selection strategy can be a random strategy or a load balancing strategy.
[0090] The above-described S312 is a specific implementation of the routing scheduling component 202 scheduling a data transmission request to the service cluster corresponding to the service information carried in the data transmission request. In other possible implementations of this application embodiment, the routing scheduling component can also implement the same function in other ways. For example, when the data transmission request itself carries a request identifier, the routing scheduling component 202 does not need to transmit the request identifier separately and can directly forward the data transmission request to the function cluster 206.
[0091] S314, the function scheduling component in function cluster 206 creates a function Pod and sends the request identifier and the request body of the data transfer request to the function Pod.
[0092] Specifically, the function scheduling component can obtain the function code and deploy it in a Pod, thereby creating a function Pod. Then, the function cluster 206 sends the request identifier and the request body of the data transfer request to the function Pod to facilitate function execution.
[0093] It should be noted that if the function cluster 206 has already deployed the function corresponding to the business information, the step of creating a function Pod can be omitted, and the function scheduling component can send the request identifier and request body to the function Pod. Furthermore, a function Pod is only one possible form of a deployed function (function instance); in other possible implementations of this application, functions can also be deployed in the function cluster in other forms. S314 is an optional step in this embodiment, and the streaming data transmission method of this application can be performed without executing S314.
[0094] S316. The function Pod executes the data transfer request, generates streaming data, and sends the streaming data to the streaming data API of the first bus node according to the request identifier and the IP address of the first bus node.
[0095] A function Pod can take the function input from a data transfer request as its own input, run the function, and generate streaming data to respond to the data transfer request. This streaming data can then be returned to the first bus node by the business cluster calling the streaming data API. The business cluster can be a function cluster corresponding to the business information. Specifically, a function Pod in the function cluster can send streaming data to the streaming data API of the first bus node using the request identifier and the IP address of the first bus node passed in the previous steps.
[0096] S316 is a specific implementation of function cluster 206 executing data transmission request to generate streaming data and returning streaming data to the first bus node. In other possible implementations of this application, the first bus node can also receive streaming data returned by the service cluster in other ways.
[0097] S318. The streaming data API of the first bus node queries the request cache based on the request identifier to obtain the address of the streaming data channel.
[0098] S320, the streaming data API of the first bus node transmits streaming data to the streaming data channel corresponding to the request identifier.
[0099] S322. The first bus node's streaming request API listens for streaming data from the streaming data channel and returns the streaming data to the API gateway 205.
[0100] S324 and API Gateway 205 return streaming data to the client.
[0101] Specifically, the first bus node can monitor the temporary storage and return streaming data from the temporary storage to the client. For example, when the first bus node detects that the temporary storage contains streaming data, it can return the streaming data from the temporary storage to the client. In this scenario, the first bus node can simultaneously receive streaming data written to the temporary storage by the service cluster and read streaming data from the temporary storage, returning it to the client.
[0102] The above steps S316 to S324 describe the specific implementation of the first bus node receiving streaming data from the service cluster and returning the streaming data to the client. In practical applications, the first bus node can also transmit streaming data in other ways, and this application does not impose any restrictions on this.
[0103] S326. The first bus node periodically reports resource usage information to the bus management node 208 so that the bus management node 208 can manage the expansion and contraction of the first bus node based on the resource usage information.
[0104] Resource usage information includes the resource usage or utilization rate of at least one of the following resources: number of connections, bandwidth, or memory. Bus management node 208 can periodically check the resource usage information of bus node 204 (such as the first bus node). When the resource usage or utilization rate exceeds a corresponding threshold, bus management node 208 can horizontally expand bus node 204; when the resource usage or utilization rate is not higher than the corresponding threshold, bus management node 208 can horizontally shrink bus node 204. Horizontal expansion refers to increasing the number of nodes, and horizontal shrinkage refers to decreasing the number of nodes.
[0105] S326 described above is an optional step in the embodiments of this application. The streaming data transmission method of this application may also omit S326. This application does not impose any restrictions on this.
[0106] Based on the above description, this application provides a streaming data transmission method. This method proposes a streaming data transmission bus architecture under a serverless architecture. This architecture introduces bus nodes, through which streaming data transmission is performed, thereby supporting the decoupling of user streaming data transmission from control logic in a serverless system. The bus architecture supports independent scaling strategies. When request traffic increases, for example, when a large number of streaming data transmission requests are waiting to be processed, only the bus nodes or the streaming data bus components within the bus nodes can be scaled up; the event routing components and function scheduling components do not need to be scaled up. This increases resource utilization and reduces costs.
[0107] exist Figure 3 In this embodiment, the function Pod and the first bus node may be on the same network segment, and the function Pod can directly access the first bus node via its IP address. Considering that the function cluster 206 where the function Pod resides and the streaming data bus module where the first bus node resides may be on different networks, different network segments, or have network isolation, a streaming data routing node can also be added to the data transmission system 20. The streaming data routing node can be a physical node or a logical node, such as a physical machine or a virtual machine. The streaming data routing node includes a streaming data routing component, which supports simultaneous access to the network of the function cluster 206 and the network of the streaming data bus module. Thus, the function cluster 206 can access the bus node 204 through the streaming data routing node, thereby enabling the sending of streaming data to the first bus node via the streaming data routing node, and subsequently returning the streaming data to the client.
[0108] Another embodiment of the streaming data transmission method provided in this application will be described below with reference to the accompanying drawings.
[0109] See Figure 4 The flowchart shown represents another streaming data transmission method, which includes the following steps:
[0110] S402, The client sends a data transmission request.
[0111] S404 and API gateway 205 distribute data transmission requests to the first bus node among multiple bus nodes 204 according to the routing policy.
[0112] S406. The first bus node generates a request identifier and creates a streaming data channel corresponding to the data transmission request.
[0113] S408, the first bus node stores the request identifier and the address of the streaming data channel into the request cache.
[0114] S410, the first bus node forwards the request identifier, the Internet Protocol (IP) address of the first bus node, and the request body of the data transmission request to the routing and scheduling component 202.
[0115] S412, the routing scheduling component 202 schedules the request identifier, the IP of the first bus node, and the request body of the data transmission request to the function cluster 206 corresponding to the business information.
[0116] S414, the function scheduling component in function cluster 206 creates a function Pod and sends the request identifier and the request body of the data transfer request to the function Pod.
[0117] For the specific implementation of S402 to S412 mentioned above, please refer to Figure 3 The relevant descriptions of the embodiments shown will not be repeated here.
[0118] S416. The function Pod executes a data transfer request, generates streaming data, and sends the streaming data to the streaming data API of the first bus node through the streaming data routing node.
[0119] exist Figure 4 In the illustrated embodiment, the function Pod forwards streaming data to the streaming data routing node. The streaming data routing node has access to the function cluster's network and the streaming data bus module's network; therefore, the streaming data routing node can send streaming data to the streaming data API of the first bus node.
[0120] Specifically, the streaming data routing node is configured with routing rules. The streaming data routing node can use the routing rules to route streaming data to the correct bus node. The routing rules may include, but are not limited to: (1) accessing the bus node precisely by using the IP address of the bus node (streaming data bus node) passed to the function Pod; (2) obtaining the bus node information by querying the distributed cache to record the relationship between the request identifier and the node information of the bus node.
[0121] The distributed cache can be accessed by streaming data routing nodes and bus nodes. In some examples, the distributed cache can reuse the request cache; in other words, the request cache can be implemented using a distributed cache. Bus nodes can record request identifiers and bus node information in the distributed cache (e.g., the request cache). Streaming data routing nodes can access the distributed cache to query the relationship between request identifiers and bus node information, thereby obtaining the bus node information. Node information is used to assist in accessing bus nodes. For example, node information may include node identifiers or node IP addresses.
[0122] In some possible implementations, the function Pod can identify whether the function cluster where the function Pod resides and the streaming data bus module where bus node 204 resides are on the same network segment. If so, the function Pod can directly route the streaming data to the corresponding first bus node; otherwise, the function Pod can forward the streaming data to the streaming data routing node, which routes the streaming data to the corresponding first bus node according to routing rules. In other possible implementations, the function Pod can also, by default, forward the streaming data to the streaming data routing node when the data transmission system 20 includes a streaming data routing node, and the streaming data routing node will then forward the streaming data to the corresponding first bus node.
[0123] S418, The streaming data API of the first bus node queries the request cache based on the request identifier to obtain the address of the streaming data channel.
[0124] S420, the streaming data API of the first bus node transmits streaming data to the streaming data channel corresponding to the request identifier.
[0125] S422, The first bus node's streaming request API listens to the streaming data of the streaming data channel and returns the streaming data to the API gateway 205.
[0126] S424 and API Gateway 205 return streaming data to the client.
[0127] S426. The first bus node periodically reports resource usage information to the bus management node 208 so that the bus management node 208 can manage the expansion and contraction of the first bus node based on the resource usage information.
[0128] This embodiment adds a bus node and a streaming data routing node to the existing serverless architecture for transmitting streaming data. The bus node can process and forward streaming data, eliminating the need for streaming data transmission to pass through the routing scheduling component 202 and the function scheduling component, thus decoupling the data flow and control flow. When the request volume increases, the bus node can be scaled up without needing to scale up the routing scheduling component 202 or the function scheduling component, thereby improving overall resource utilization and reducing overall operating costs. Furthermore, the streaming data routing node can support access to the network of the function cluster 206 and the network of the streaming data bus module. Even if the function cluster 206 and the bus node 204 are on different networks or different network segments, the function cluster 206 can still transmit streaming data to the bus node 204 through this streaming data routing node, providing high availability.
[0129] Based on the aforementioned streaming data transmission method, this application also provides a data transmission system 20. The structure of the data transmission system 20 of this application will be described in detail below with reference to the accompanying drawings.
[0130] See Figure 2 The diagram shows a structure of a data transmission system 20. The data transmission system 20 includes a routing and scheduling component 202 and at least one bus node 204. The at least one bus node 204 includes a first bus node.
[0131] The first bus node is used to receive data transmission requests sent by the client, the data transmission requests being used to request streaming data, and forward the data transmission requests to the routing and scheduling component 202;
[0132] The routing scheduling component 202 is used to schedule the data transmission request to the service cluster corresponding to the service information based on the service information carried in the data transmission request.
[0133] The first bus node is also configured to receive streaming data returned by the service cluster, the streaming data being generated by the service cluster executing the data transmission request, and to return the streaming data to the client.
[0134] For example, the routing scheduling component 202 and the bus node 204 (e.g., the first bus node) described above can be implemented in hardware or in software.
[0135] When implemented in software, the routing and scheduling component 202 and bus node 204 can be applications running on computing devices, such as computing engines. These applications can also be virtualized and provided to users as virtualization services. Virtualization services can include virtual machine (VM) services, bare metal server (BMS) services, or container services. VM services can be services that use virtualization technology to create virtual machine (VM) resource pools on multiple physical hosts to provide VMs for users to use on demand. BMS services are services that use virtualization technology to create BMS resource pools on multiple physical hosts to provide BMS for users to use on demand. Container services are services that use virtualization technology to create container resource pools on multiple physical hosts to provide containers for users to use on demand. A VM is a simulated virtual computer, that is, a logical computer. A BMS is a scalable, high-performance computing service with computing performance indistinguishable from traditional physical machines and features secure physical isolation. A container is a kernel virtualization technology that can provide lightweight virtualization to isolate user space, processes, and resources. It should be understood that the VM service, BMS service, and container service mentioned above are merely specific examples. In practical applications, virtualization services can also include other lightweight or heavyweight virtualization services, which are not specifically limited here.
[0136] When implemented in hardware, the routing scheduling component 202 and bus node 204 may include at least one computing device, such as a server. Alternatively, the routing scheduling component 202 and bus node 204 may also be devices implemented using application-specific integrated circuits (ASICs) or programmable logic devices (PLDs). The PLD may be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), generic array logic (GAL), or any combination thereof.
[0137] In some possible implementations, the first bus node includes a streaming request application programming interface (API) and a streaming data API. The data transmission request is generated by the client calling the streaming request API, and the streaming data is returned to the first bus node by the service cluster calling the streaming data API.
[0138] In some possible implementations, the first bus node is also used for:
[0139] Create temporary storage corresponding to the data transmission request, the temporary storage being used to store the streaming data requested by the data transmission request;
[0140] The first bus node is specifically used for:
[0141] Monitor the temporary storage and return the streaming data in the temporary storage to the client.
[0142] In some possible implementations, the first bus node includes a request cache, and the first bus node is further configured to:
[0143] Store the request identifier of the data transmission request and the address of the temporary storage into the request cache;
[0144] Upon receiving the streaming data, the request cache is queried based on the request identifier to obtain the address of the temporary storage;
[0145] The streaming data is written to the temporary storage.
[0146] In some possible implementations, the temporary storage includes a streaming data channel or a data tunnel.
[0147] In some possible implementations, the first bus node is specifically used for:
[0148] The first bus node receives streaming data returned by the service cluster based on the Internet Protocol IP address of the first bus node.
[0149] In some possible implementations, the system further includes a streaming data routing component, wherein the first bus node is specifically used for:
[0150] Receive streaming data returned by the streaming data routing component based on the IP address of the first bus node.
[0151] In some possible implementations, the data transmission system 20 further includes an API gateway 205, wherein the first bus node is determined by the API gateway 205 according to a random strategy, a round-robin strategy, or a load balancing strategy.
[0152] For example, the API gateway 205 described above can be implemented in hardware or in software.
[0153] When implemented in software, the API gateway 205 can be an application running on a computing device, such as a microservice. This application can also be virtualized and provided to users as virtualized services such as VM services, BMS services, or container services. When implemented in hardware, the API gateway 205 can include at least one computing device, such as a server. Alternatively, the API gateway 205 can also be a device implemented using an ASIC or a PLD.
[0154] In some possible implementations, the data transmission system 20 also includes a bus management node 208. The bus management node 208 is used to monitor the resource usage information of the streaming data bus module or at least one bus node 204. The resource usage information may include the utilization rate of resources such as bandwidth, number of connections or memory. Then, based on the resource usage information, the system manages the scaling up and down of at least one bus node 204 of the streaming data bus module.
[0155] For example, the bus management node 208 described above can be implemented in hardware or in software.
[0156] When implemented in software, the bus management node 208 can be an application running on a computing device. This application can also be virtualized and provided to users as virtualization services such as VM services, BMS services, or container services. When implemented in hardware, the bus management node 208 can include at least one computing device, such as a server. Alternatively, the API gateway 205 can be a device implemented using an ASIC or a PLD.
[0157] This application also provides a computing device 500. For example... Figure 5 As shown, the computing device 500 includes a bus 502, a processor 504, a memory 506, and a communication interface 508. The processor 504, the memory 506, and the communication interface 508 communicate with each other via the bus 502. The computing device 500 can be a server or a terminal device. It should be understood that this application does not limit the number of processors and memories in the computing device 500.
[0158] Bus 502 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 5The bus 502 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 502 may include a path for transmitting information between various components of the computing device 500 (e.g., memory 506, processor 504, communication interface 508).
[0159] Processor 504 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).
[0160] Memory 506 may include volatile memory, such as random access memory (RAM). Memory 506 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid-state drive (SSD). Memory 506 stores executable program code, which processor 504 executes to implement the aforementioned streaming data transmission method. Specifically, memory 506 stores instructions for the data transmission system 20 to execute the streaming data transmission method. For example, memory 506 may store instructions for implementing the functions of routing scheduling component 202 and bus node 204. Furthermore, memory 506 may also store instructions for implementing the functions of API gateway 205 and bus management node 208.
[0161] The communication interface 508 uses transceiver modules, such as, but not limited to, network interface cards and transceivers, to enable communication between the computing device 500 and other devices or communication networks.
[0162] This application 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.
[0163] like Figure 6As shown, the computing device cluster includes at least one computing device 500. The memory 506 of one or more computing devices 500 in the computing device cluster may store instructions from the same data transmission system 20 for executing streaming data transmission methods.
[0164] In some possible implementations, one or more computing devices 500 in the computing device cluster can also be used to execute some of the instructions of the data transmission system 20 for executing the streaming data transmission method. In other words, a combination of one or more computing devices 500 can jointly execute the instructions of the data transmission system 20 for executing the streaming data transmission method.
[0165] It should be noted that the memory 506 in different computing devices 500 in the computing device cluster can store different instructions for executing some functions of the data transmission system 20.
[0166] Figure 7 One possible implementation is shown. For example... Figure 7 As shown, computing devices 500A and 500B are connected via communication interface 508. The memory in computing device 500A stores instructions for executing the functions of the routing scheduling component 202. The memory in computing device 500B stores instructions for executing the functions of the bus node 204. In other words, the memory 506 of computing devices 500A and 500B jointly stores the instructions used by the data transmission system 20 to execute the streaming data transmission method. Furthermore, when the data transmission system 20 also includes an API gateway 205 and a bus management node 208, the memory 506 of computing device 500C in the computing device cluster can also store instructions for executing the functions of the API gateway 205, and the memory 506 of computing device 500D in the computing device cluster can also store instructions for executing the functions of the bus management node 208.
[0167] Figure 7 The connection method between the computing device clusters shown can be considered because the streaming data transmission method provided in this application requires a lot of resources for streaming data storage and transmission. Therefore, the functions implemented by bus node 204 can be performed by independent computing devices. For example, the functions implemented by routing scheduling component 202 can be performed by computing device 500A, and the functions implemented by bus node 204 can be performed by computing device 500B. Furthermore, when the data transmission system 20 also includes other components, such as API gateway 205 and bus management node 208, the functions implemented by API gateway 205 and bus management node 208 can be performed by computing devices 500C and 500D, respectively.
[0168] It should be understood that Figure 7The functions of computing device 500A shown can also be performed by multiple computing devices 500. Similarly, the functions of computing devices 500B, 500C, and 500D can also be performed by multiple computing devices 500.
[0169] 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 8 One possible implementation is shown. For example... Figure 8 As shown, computing devices 500E and 500F 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 506 in computing device 500E stores instructions for performing the functions of the routing scheduling component 202. Simultaneously, the memory 506 in computing device 500F stores instructions for performing the functions of the bus node 204. When the data transmission system 20 also includes an API gateway 205 and a bus management node 208, the memory 506 in computing device 500G in the computing device cluster can also store instructions for performing the functions of the API gateway 205, and the memory 506 in computing device 500H in the computing device cluster can also store instructions for performing the functions of the bus management node 208.
[0170] Figure 8 The connection method between the computing device clusters shown can be considered because the streaming data transmission method provided in this application requires a large amount of resources for streaming data return. Therefore, the functions implemented by bus node 204 can be performed by independent computing devices. For example, the functions implemented by routing scheduling component 202 and bus node 204 can be performed by computing devices 500E and 500F, respectively. It should be noted that when the data transmission system 20 includes multiple bus nodes 204, the functions of multiple bus nodes 204 can be implemented by multiple computing devices 500F. Furthermore, when the data transmission system 20 also includes API gateway 205 and bus management node 208, the functions implemented by API gateway 205 can be performed by computing device 500G in the computing device cluster, and the functions implemented by bus management node 208 can be performed by computing device 500H in the computing device cluster.
[0171] It should be understood that Figure 8 The functions of the computing device 500C shown can also be performed by multiple computing devices 500. Similarly, the functions of the computing device 500D can also be performed by multiple computing devices 500.
[0172] This application 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 the above-described streaming data transmission method applied to the data transmission system 20.
[0173] This application 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 is run on at least one computing device, it causes the at least one computing device to perform the above-described streaming data transmission method.
[0174] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, and not to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of the present invention.
Claims
1. A streaming data transmission method, characterized in that, The system is applied to a data transmission system, the system including a routing and scheduling component and at least one bus node, the at least one bus node including a first bus node; The first bus node receives a data transmission request sent by the client, the data transmission request being used to request streaming data; The first bus node forwards the data transmission request to the routing and scheduling component; The routing scheduling component schedules the data transmission request to the service cluster corresponding to the service information carried in the data transmission request. The first bus node receives streaming data returned by the service cluster, the streaming data being generated by the service cluster executing the data transmission request; The first bus node returns the streaming data to the client.
2. The method according to claim 1, characterized in that, The first bus node includes a streaming request application programming interface (API) and a streaming data API. The data transmission request is generated by the client calling the streaming request API, and the streaming data is returned to the first bus node by the service cluster calling the streaming data API.
3. The method according to claim 1 or 2, characterized in that, The method further includes: The first bus node creates temporary storage corresponding to the data transmission request, and the temporary storage is used to store the streaming data requested by the data transmission request; The first bus node returns the streaming data to the client, including: The first bus node listens to the temporary storage and returns the streaming data in the temporary storage to the client.
4. The method according to claim 3, characterized in that, The first bus node includes a request cache, and the method further includes: The first bus node stores the request identifier of the data transmission request and the address of the temporary storage into the request cache; The first bus node receives the streaming data, queries the request cache according to the request identifier, and obtains the address of the temporary storage; The first bus node writes the streaming data into the temporary storage.
5. The method according to claim 3 or 4, characterized in that, The temporary storage includes streaming data channels or data tunnels.
6. The method according to any one of claims 1 to 5, characterized in that, The first bus node receives streaming data returned by the service cluster, including: The first bus node receives streaming data returned by the service cluster based on the Internet Protocol IP address of the first bus node.
7. The method according to any one of claims 1 to 5, characterized in that, The system also includes a streaming data routing component, wherein the first bus node receives streaming data returned by the service cluster, including: The first bus node receives streaming data returned by the streaming data routing component based on the IP address of the first bus node.
8. The method according to any one of claims 1 to 7, characterized in that, The system also includes an API gateway, and the first bus node is determined by the API gateway according to a random strategy, a round-robin strategy, or a load balancing strategy.
9. A data transmission system, characterized in that, The system includes a routing and scheduling component and at least one bus node, wherein the at least one bus node includes a first bus node; The first bus node is used to receive data transmission requests sent by the client, the data transmission requests being used to request streaming data, and to forward the data transmission requests to the routing and scheduling component; The routing and scheduling component is used to schedule the data transmission request to the service cluster corresponding to the service information based on the service information carried in the data transmission request. The first bus node is also configured to receive streaming data returned by the service cluster, the streaming data being generated by the service cluster executing the data transmission request, and to return the streaming data to the client.
10. The system according to claim 9, characterized in that, The first bus node includes a streaming request application programming interface (API) and a streaming data API. The data transmission request is generated by the client calling the streaming request API, and the streaming data is returned to the first bus node by the service cluster calling the streaming data API.
11. The system according to claim 9 or 10, characterized in that, The first bus node is also used for: Create temporary storage corresponding to the data transmission request, the temporary storage being used to store the streaming data requested by the data transmission request; The first bus node is specifically used for: Monitor the temporary storage and return the streaming data in the temporary storage to the client.
12. The system according to claim 11, characterized in that, The first bus node includes a request cache, and the first bus node is further configured to: Store the request identifier of the data transmission request and the address of the temporary storage into the request cache; Upon receiving the streaming data, the request cache is queried based on the request identifier to obtain the address of the temporary storage; The streaming data is written to the temporary storage.
13. The system according to claim 11 or 12, characterized in that, The temporary storage includes streaming data channels or data tunnels.
14. The system according to any one of claims 9 to 11, characterized in that, The first bus node is specifically used for: The first bus node receives streaming data returned by the service cluster based on the Internet Protocol IP address of the first bus node.
15. The system according to any one of claims 9 to 14, characterized in that, The system also includes a streaming data routing component, wherein the first bus node is specifically used for: Receive streaming data returned by the streaming data routing component based on the IP address of the first bus node.
16. The system according to any one of claims 9 to 15, characterized in that, The system also includes an API gateway, and the first bus node is determined by the API gateway according to a random strategy, a round-robin strategy, or a load balancing strategy.
17. A computing device cluster, characterized in that, The computing device cluster includes at least one computing device, the at least one computing device including at least one processor and at least one memory, the at least one memory storing computer-readable instructions; the at least one processor executes the computer-readable instructions to cause the computing device cluster to perform the streaming data transmission method as described in any one of claims 1 to 8.
18. A computer-readable storage medium, characterized in that, Includes computer-readable instructions; the computer-readable instructions are used to implement the streaming data transmission method according to any one of claims 1 to 8.
19. A computer program product, characterized in that, Includes computer-readable instructions; the computer-readable instructions are used to implement the streaming data transmission method according to any one of claims 1 to 8.