Business processing system and scheduling processing method
By extending access components and storage components in the container orchestration system to form a shard structure, the load problem caused by the cloud-native big data processing engine is solved, and the scheduling throughput performance and resource utilization are improved.
Patent Information
- Application Number
- CN202510461449.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-11
- Publication Date
- 2025-07-25
AI Technical Summary
Cloud-native big data processing engines cause excessive loading of scheduling components and storage components in container orchestration systems, affecting scheduling throughput performance.
The access components and storage components of the container orchestration system are used to scale horizontally, forming multiple shard structures, sharing the load on container creation and data storage, and scheduling containers on multiple computing nodes through the scheduling components.
Reduces the load on accessing components and storage components, and improves the scheduling throughput performance and resource utilization of container orchestration systems.
Smart Images

Figure CN120371456A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and in particular, to a service processing system and a scheduling processing method. Background Art
[0002] Big data cloud native transformation refers to migrating big data processing and analysis workloads to a cloud native architecture to leverage the advantages of cloud native technologies, such as elasticity, scalability, automation, and microservices architecture, which can improve the efficiency and flexibility of big data processing.
[0003] With the development of cloud native transformation, many data engines (e.g., big data processing engines, machine learning engines, etc.) have started to move towards cloud native. As a core component in the cloud native ecosystem, the container orchestration system has gradually become the de facto standard for resource scheduling. In practical applications, different data engines (such as big data processing engines) serve as the core engines in their corresponding scenarios, and there are a large number of offline services running every day. Compared with online services, offline services have the characteristics of short running time and a large number of required containers, which will cause great load pressure on many components in the container orchestration system. For example, it will cause great pressure on the scheduling component and storage component in the container orchestration system, thus seriously affecting the scheduling throughput performance of the container orchestration system. Summary of the Invention
[0004] Embodiments of this application provide a service processing system and a scheduling processing method, which can reduce the load on system components and improve the scheduling throughput performance of the system.
[0005] On the one hand, embodiments of this application provide a container orchestration system. The container orchestration system includes an access layer, a scheduling layer, and a physical layer; the access layer contains M sharding structures, and each sharding structure includes an access component and a storage component; the scheduling layer includes a scheduling component; the physical layer includes at least one computing node; M is an integer greater than 1; wherein,
[0006] The access component in the access layer is used to create at least one container for processing data services in response to a received service processing request for data services, and store the configuration data of the container in the storage component of the sharding structure to which the access component belongs;
[0007] The scheduling component in the scheduling layer is used to determine a target computing node for running the container from at least one computing node when it is detected that the container is created;
[0008] The target computing node is used to run the container based on the configuration data to process data services.
[0009] In one embodiment, the scheduling layer further includes a synchronization component. Communication connections are established between the synchronization component and each sharding structure in the access layer, and communication connections are established between the synchronization component and any computing node in the physical layer; one of the M sharding structures is a primary sharding structure.
[0010] The synchronization component is used to obtain the configuration data of the container from the storage component in the access layer, synchronize the configuration data of the container to the target computing node, and feedback the running status data of the container on the target computing node to the access component in the primary sharding structure.
[0011] The access component in the primary sharding structure is used to store the running status data of the container into the storage component of the primary sharding structure.
[0012] In one embodiment, the M sharding structures further include M - 1 secondary sharding structures.
[0013] The access component in the primary sharding structure is used to create a service container in response to a received service processing request. The service container is used to split the data service into at least one demand task.
[0014] The access components in the M - 1 secondary sharding structures are used to create task containers for executing the demand tasks when receiving container creation requests for the demand tasks.
[0015] In one embodiment, the scheduling component in the scheduling layer determines a first computing node for running the service container for the service container.
[0016] The synchronization component in the scheduling layer is further used to select a target secondary sharding structure for the service container to execute the demand task from the M - 1 secondary sharding structures, and set the task access address of the service container as the component address of the access component in the target secondary sharding structure.
[0017] The first computing node is further used to send a container creation request for the demand task to the access component in the target secondary sharding structure based on the task access address of the service container.
[0018] Wherein, the storage capacity of the storage component in the selected target secondary sharding structure is greater than the storage capacity of the storage components in other unselected secondary sharding structures.
[0019] In one embodiment, the scheduling component in the scheduling layer determines a second computing node for running the task container for the task container created by the access component in the target secondary sharding structure.
[0020] Wherein, the second computing node is different from the first computing node, and the evaluation processing speed of the second computing node is faster than the evaluation processing speed of the unselected computing nodes.
[0021] In one embodiment, the access component in the primary shard structure is further configured to, in response to a received status query request for a container, obtain the running status data of the container from the storage component of the primary shard structure and return the running status data of the container to the query object, where the query object refers to the object that sends the status query request.
[0022] In one embodiment, the M shard structures further include M - 1 secondary shard structures;
[0023] The synchronization component is further configured to, when the component detection period arrives, detect the remaining storage capacity of the storage component of each secondary shard structure, and output a capacity warning message for the M - 1 secondary shard structures when the ratio between the number of saturated shard structures and the total number of the M - 1 secondary shard structures is greater than the ratio threshold; a saturated shard structure refers to a secondary shard structure whose remaining storage capacity of the storage component is less than the capacity threshold.
[0024] On the one hand, an embodiment of the present application provides a scheduling processing method, which is applied to the above service processing system, that is, the service processing system includes an access layer, a scheduling layer, and a physical layer; the access layer includes M shard structures, and each shard structure includes an access component and a storage component; the scheduling layer includes a scheduling component; the physical layer includes at least one computing node; M is an integer greater than 1; the method is executed by the scheduling component in the scheduling layer; the method includes:
[0025] According to at least one container monitored and created by the access component in the access layer in response to a service processing request, where the at least one container is used to process the data service requested by the service processing request;
[0026] Determine a target computing node for running the container from at least one computing node in the physical layer;
[0027] Schedule the target computing node to run the container to process the data service based on the configuration data of the container stored in the storage component in the access layer.
[0028] In one embodiment, the M shard structures include a primary shard structure, and at least one container includes a service container created by the access component in the primary shard structure, and the target computing node for running the container includes a first computing node determined for the service container;
[0029] The specific implementation manner for the scheduling component to determine a target computing node for running the container from at least one computing node in the physical layer includes:
[0030] Obtain the configuration data of the service container from the storage component of the primary shard structure;
[0031] Determine the required resource amount of the service container according to the configuration data of the service container;
[0032] Obtain the resource capacity of each computing node among at least one computing node of the container orchestration system;
[0033] According to the resource capacity of each computing node and the required resource amount of the business container, among at least one computing node, determine Q first candidate nodes whose resource capacity is greater than the required resource amount of the business container; Q is an integer;
[0034] Select a first computing node from the Q first candidate nodes to run the business container.
[0035] In one implementation, the specific implementation of the scheduling component selecting a first computing node from the Q first candidate nodes to run the business container includes:
[0036] Obtain the running data of each first candidate node among the Q first candidate nodes;
[0037] Based on the running data of each first candidate node, evaluate and analyze the performance of each first candidate node to obtain the performance evaluation value of each first candidate node;
[0038] Obtain the maximum performance evaluation value among the Q performance evaluation values, and determine the first candidate node indicated by the maximum performance evaluation value as the first computing node for running the business container.
[0039] In one implementation, the M sharding structures include M - 1 sub-sharding structures, at least one container includes a task container created by any access component in the M - 1 sub-sharding structures for executing the required tasks for the data service, the required task refers to the task that needs to be executed to complete the data service, and the target computing node includes the second computing node determined for the task container;
[0040] The specific implementation of the scheduling component determining a target computing node for running a container from at least one computing node in the physical layer includes:
[0041] Obtain the computing nodes running the business container among at least one computing node; the business container refers to a container for splitting a data service into at least one required task;
[0042] Determine each computing node other than the computing node running the business container among at least one computing node as a second candidate node;
[0043] Select a second computing node from each second candidate node to run the task container.
[0044] In one implementation, the specific implementation of the scheduling component selecting a second computing node from each second candidate node to run the task container includes:
[0045] Obtain the processing efficiency evaluation value of each second candidate node;
[0046] Compare the processing efficiency evaluation values of each second candidate node;
[0047] Determine the second candidate node with the largest processing efficiency evaluation value as the second computing node for running the task container.
[0048] On the one hand, an embodiment of the present application provides a computer device, which builds a container orchestration system as described above. Among them, the computer device includes: a processor and a memory;
[0049] The memory stores a computer program, and when the computer program is executed by the processor, the processor executes the method in the embodiment of the present application.
[0050] On the one hand, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program. The computer program includes program instructions, and when the program instructions are executed by the processor, the method in the embodiment of the present application is executed.
[0051] In one aspect of the present application, a computer program product is provided. The computer program product includes a computer program, and the computer program is stored in a computer-readable storage medium. The processor of the computer device reads the computer program from the computer-readable storage medium, and the processor executes the computer program, so that the computer device executes the method provided in one aspect of the embodiment of the present application.
[0052] In an embodiment of the present application, a service processing system is proposed. The service processing system is divided into three hierarchical structures: an access layer, a scheduling layer, and a physical layer. Among them, the access layer contains multiple (in this application, M is used as an example for illustration, and M should be an integer greater than 1) shard structures. Each shard structure contains an access component and a storage component; the scheduling layer contains a scheduling component, and the physical layer contains at least one computing node. For each access component in the access layer, it can be used to create at least one container for processing a data service. The configuration data of the container created by itself will be stored in the storage component of the affiliated shard structure accordingly; for the container created by any access component, the scheduling component will also determine a computing node for it, and the computing node will run the container based on the configuration data of the container, thereby realizing the processing of the data service. As can be seen from the above, the present application proposes a sharding scheme for access components and storage components. This scheme will horizontally expand both the single access component and the storage component to increase the shard structure composed of the access component and the storage component. In this way, the service processing system of the present application will include multiple shard structures. The access components in these multiple shard structures will jointly undertake the container creation task of the same data service, realizing an even load sharing of the load brought by the container creation task and reducing the container creation load of a single access component; moreover, the storage components in these multiple shard structures will respectively store the configuration data of the containers created by the access components in their affiliated shard structures. In this case, the data of the relevant containers of the same data service will not be stored only in a single storage component, which can reduce the storage load of a single storage component. By reducing the load of the access components and storage components in the system, the scheduling performance of the scheduling component for containers can be effectively improved, enabling the scheduling component to process and allocate more containers to appropriate computing nodes for operation within a unit time, and enhancing the scheduling throughput performance of the entire service processing system. Brief Description of the Drawings
[0053] In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the following will briefly introduce the drawings required for use in the description of the embodiments or the prior art. Obviously, the following drawings are only some embodiments of the present invention. For those of ordinary skill in the art, without creative efforts, other drawings can be obtained based on these drawings.
[0054] Figure 1 It is a schematic diagram of the architecture of a traditional container orchestration system provided by an embodiment of the present application;
[0055] Figure 2 It is a schematic diagram of the architecture of a container orchestration system after horizontally expanding system components provided by an embodiment of the present application;
[0056] Figure 3It is a schematic diagram of the logical process for a service processing system provided by an embodiment of this application to process a data service;
[0057] Figure 4a It is a schematic diagram of creating a service container for a data service provided by an embodiment of this application;
[0058] Figure 4b It is a schematic diagram of creating a task container for the requirement tasks of a data service provided by an embodiment of this application;
[0059] Figure 4c It is a schematic diagram of a synchronization component synchronizing the running state data of a container to the main shard structure provided by an embodiment of this application;
[0060] Figure 5 It is a comparison schematic diagram of the data stored in the main storage component and the secondary storage component provided by an embodiment of this application;
[0061] Figure 6 It is a schematic diagram of the process of a scheduling processing method provided by an exemplary embodiment of this application;
[0062] Figure 7 It is a schematic diagram of the structure of a computer device provided by an embodiment of this application. Detailed implementation manners
[0063] Next, the technical solutions in the embodiments of this application will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of this application. Obviously, the described embodiments are only a part of the embodiments of this application, rather than all the embodiments. Based on the embodiments in this application, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of this application.
[0064] This application relates to related technologies such as container orchestration systems and big data processing. For ease of understanding, the related terms involved in this application will be elaborated below.
[0065] Container orchestration system:
[0066] A container orchestration system is an open-source container orchestration platform for automating the deployment, scaling, and management of containerized applications. It can schedule, scale, and manage containers. Specifically, a container orchestration system is an open-source system for managing containerized applications on multiple hosts in a cloud platform. The goal is to make the deployment of containerized applications simple and efficient. The container orchestration system provides a mechanism for application deployment, planning, updating, and maintenance. Among them, the container orchestration system may include a node cluster composed of one or more (usually at least two) computing nodes. Each computing node in the node cluster can refer to a node computer used to run containerized applications, that is, each computing node can provide services for containerized applications. When the container orchestration system is running, it can be understood that the node cluster is running.
[0067] Container:
[0068] A container is a method of implementing operating system virtualization, which allows processes to run in an isolated environment. A container can be understood as an independent running unit with its own file system, network, and process space. It is transient and can be created and destroyed frequently.
[0069] Access component:
[0070] The access component in this application can refer to the Apiserver in the container orchestration system. Apiserver is a key component in the container orchestration system. It provides an application programming interface (API) for web services, used to receive and respond to API requests from users and system components, such as creating, updating, and deleting operation resources, etc. Based on the functions it implements (supporting users and system components to send API requests for access), this application defines it as an access component.
[0071] Storage component:
[0072] The storage component in this application can refer to the key-value storage system (ETCD) in the container orchestration system. This key-value storage system is a distributed and consistent storage system used to save and query configuration data and status information. It is the "true source" of all other components in the container orchestration system. The container orchestration system uses ETCD to store all data, such as container, configuration, service, etc. data, to ensure the consistency and reliability of the container orchestration system when running across multiple nodes. Based on the storage function implemented by ETCD, this application defines it as a storage component.
[0073] Big data processing framework:
[0074] The big data processing framework is a processing framework designed for large-scale data processing, providing fast, general-purpose, and easy-to-use data processing capabilities, and supporting various computing modes such as batch processing, stream processing, graph computing, and machine learning.
[0075] Cloud native:
[0076] Cloud native is a method of building and running applications, aiming to make full use of the advantages of cloud computing. Cloud native is not just a technology, but more of a concept and practice, which emphasizes developing and running applications efficiently, flexibly, and scalably in a cloud environment.
[0077] It has been found in practice that with the development of cloud native, many data engines (such as big data processing engines, machine learning engines, etc.) have started to move towards cloud native. As the core component in the cloud native ecosystem, the container orchestration system has gradually become the de facto standard for resource scheduling. In practical applications, different data engines (such as big data processing engines) are the core engines in their corresponding scenarios (such as large-scale data processing scenarios), and there are a large number of offline services running every day. Compared with online services, offline services have the characteristics of short running time and a large number of required containers, which will cause great load pressure on many components in the container orchestration system. For example, it will cause great pressure on the scheduling component, access component, and storage component in the container orchestration system, thus seriously affecting the scheduling throughput performance of the container orchestration system.
[0078] In the cloud-native implementation of the big data processing framework for container orchestration systems in traditional technologies, to address the load and scheduling pressures brought by large-scale offline services to container orchestration systems, the following two methods are mainly adopted: ① The overlay deployment method. In this method, the big data services in the big data processing architecture run on a resource coordinator (e.g., yarn), and then, this resource coordinator runs on the container orchestration system. ② The method of establishing multiple container orchestration system clusters (a container orchestration system cluster can be understood as a node cluster running in the container orchestration system). In this method, according to the application groups of the big data services in the big data processing architecture, the container orchestration system cluster is split into multiple smaller container orchestration system clusters. In this way, the scheduling and the load pressure on the system components of each split cluster can be well alleviated. For the above method ①, it constructs a hybrid cluster of the resource coordinator and the container orchestration system. Through the hybrid deployment technology, the resource utilization rate of the container orchestration system cluster can be improved to a certain extent. However, this method is a non-fully cloud-native method. Essentially, the big data services still run on the resource coordinator, and the resource scheduling is carried out through the resource coordinator. The architecture of this method is more complex to implement, has a higher maintenance cost, and it is difficult to achieve strict resource isolation (e.g., network isolation), and interference is inevitable between different services; for the above method ②, this method is a fully cloud-native method. However, this method splits out multiple container orchestration system clusters, making it difficult to count the overall available resources in the container orchestration system and difficult to reasonably schedule services, resulting in a lower resource utilization rate of the container orchestration system; moreover, the multiple split clusters will increase the system maintenance cost.
[0079] Based on this, the present application provides a component sharding solution for a container orchestration system. This component sharding solution means: horizontally expanding the access components and storage components in the container orchestration system. This horizontal expansion means deploying multiple access components and storage components in the container orchestration system to form a new container orchestration system, which can be subsequently applied to big data processing scenarios. To better distinguish the container orchestration system proposed in the present application from the traditional container orchestration system, the container orchestration system proposed in this solution is referred to as a business processing system in the present application. For the convenience of understanding the architectural differences between the business processing system provided in the present application and the traditional container orchestration system, the following will be described with reference to the accompanying drawings. Please also refer to Figure 1 , Figure 1 is a schematic diagram of the architecture of a traditional container orchestration system provided by an embodiment of the present application; as Figure 1 shown, this traditional container orchestration system can include three architectural levels, mainly including an access layer, a scheduling layer, and a physical layer. Among them:
[0080] The access layer includes an access component (Apiserver) and a storage component (ETCD). Among them, the access component can be used to interact with the big data processing engine in the big data processing architecture, and the big data processing engine can access the container orchestration system through the access component. In specific implementation, in the big data processing scenario based on the container orchestration system, users can submit big data services through the big data processing architecture and perform data configuration for the big data service. The configured data may include the following items: (1) configuration parameters of the container image; (2) environment variable parameters; (3) resource requirement parameters, such as the demand for memory resources, the demand for central processing unit (CPU) resources, etc.; (4) data access path, which defines the access path of the data required when processing the big data service. Through this path, the location where these required data are stored can be obtained, and the required data can be obtained from the storage location of the required data; (5) the number of demand tasks (i.e., the tasks required to be executed when processing the big data service); (6) the name of the big data service, the permission information of the big data service, etc.; after the user submits the big data service, the big data processing engine will send a service processing request for the big data service to the access component of the container orchestration system. This service processing request is used to request the processing of the big data service. After receiving the service processing request, the access component will respond to this request and create a container for the big data service based on the user-configured data. This container is the control center of the big data service and is responsible for the specific execution of the big data service and the resource allocation of the demand tasks. For this container, it can be called the service container of the big data service; further, after creating the service container for the big data service, the access component will combine the relevant information of the service container it created with the above user-configured data (for example, splice them together) to form the configuration data of the service container (here, for the convenience of differentiating from the configuration data of the container, the data configured by the user can be called service configuration data). Among them, the relevant information of the container, such as: container number, container image name, startup parameters when the container is running, resource limit parameters, startup dependency information, and other data. For the configuration data of the service container, the access component will store it in the storage component for persistent storage.
[0081] The scheduling layer contains a scheduling component and a synchronization component. For the scheduling component, a communication connection is established between the scheduling component and the access component, and a communication connection is established between the scheduling component and the storage component (it can be considered that there is a communication connection between the scheduling component and the access layer). In this way, the scheduling component can monitor the access component in real time through this communication connection to monitor whether it has created a new container. The scheduling component is mainly responsible for scheduling the containers created by the access component to determine a suitable node to run the container (the process of determining a suitable node to run the container can also be understood as allocating a node for the container). Specifically, after the access component creates a business container for the big data service, the scheduling component will detect this container creation event of the access component (that is, the event that the business container is created). Then, based on the communication connection with the storage component, the scheduling component will obtain the configuration data of the business container from the storage component in the access layer, and allocate (that is, determine) a computing node for the business container from the physical layer according to the configuration data of the business container to run the business container. For the synchronization component, a communication connection is established between the synchronization component and the access component, and a communication connection is established between the synchronization component and the storage component (it can be considered that there is a communication connection between the scheduling component and the access layer). There is also a communication connection between the synchronization component and any physical cluster in the physical layer (that is: there is a communication connection between the synchronization component and any computing node in the physical layer). In this way, after the scheduling component determines the computing node for running the business container for the business container, the synchronization component will obtain the configuration data of the business container from the storage component based on the communication connection with the storage component, and synchronize the configuration data of the business container to the allocated computing node based on the communication connection with the determined computing node for running the container (that is, the computing node allocated to run the container).
[0082] The physical layer includes multiple physical clusters, and each physical cluster includes at least one computing node (based on this, a physical cluster can also be called a node cluster). It can be considered that the physical layer includes each computing node, and each computing node can be used to run the containers created by the access component. For example, for the above-mentioned allocated computing node, after receiving the configuration data of the business container synchronized by the synchronization component, it can run the business container based on the configuration data of the business container.
[0083] In a specific implementation, when the assigned computing node is running the business container, the business container can split the big data business based on the number of demand tasks set by the user, and split it to obtain at least one demand task. After splitting to obtain at least one demand task, for each demand task, the computing node running the business container will generate a container creation request for this demand task. This container creation request refers to a request for requesting to create a container for this demand task. Then, the computing node running the business container will send this container creation request to the above-mentioned access component. After receiving the container creation request, the access component will create a container for this demand task (for ease of distinction, it can be called a task container). Similarly, the access component can combine the relevant information of the task container it created with the business configuration data of the above-mentioned user (for example, splice them together) to form the configuration data of the task container. The access component will create the task container. The configuration data of the container is stored in the storage component; for the task container created by the access component, the scheduling component will monitor the container creation event of the access component for this task container (i.e. the event that the task container is created), and the scheduling component will also determine / allocate a computing node for this task container from the physical layer to run the task container; after the scheduling component determines the computing node to run the task container for the task container, the synchronization component will obtain the configuration data of the task container from the storage component, and synchronize this configuration data to the computing node assigned to run the task container, and the computing node assigned to run the task container will run the task container based on the configuration data of the task container to execute the required task. In this way, a big data business can be deployed to the container orchestration system for execution.
[0084] Based on the above Figure 1 It can be seen from the architecture of the container orchestration system shown that for any big data business, all containers need to be created by the access component, and the configuration data of all containers need to be stored in the storage component, which will undoubtedly bring a heavy load to the access component and the storage component (bringing the load of container creation to the access component and a large data storage load to the storage component), resulting in problems such as slow container creation, which in turn affects the scheduling performance of the scheduling component; moreover, big data business has the characteristics of large scale, and a large number of containers need to be created and a large amount of data need to be stored, which means that the large-scale characteristics of big data business will further increase the load on the access component and the storage component.
[0085] In order to reduce the load on access components and storage components in the container orchestration system, this application Figure 1 The architecture of the traditional container orchestration system shown in the figure is improved, specifically, the access component and the storage component are horizontally expanded. The container orchestration system (i.e., the business processing system) after horizontal expansion provided by the embodiment of the present application will be introduced in conjunction with the accompanying drawings.Figure 2 , Figure 2 is a schematic architecture diagram of a service processing system provided by an embodiment of the present application. This service processing system can also be referred to as a container orchestration platform, a container scheduling platform, etc. As Figure 2 shown, it has the same hierarchical structure as the above-mentioned traditional container orchestration system. This service processing system is mainly divided into multiple hierarchical structures, which are, from top to bottom: an access layer, a scheduling layer, and a physical layer. Among them:
[0086] I. Access layer:
[0087] The access layer is a bridge between the container orchestration system and the big data processing engine. Among them, the big data processing engine can refer to the core component in the big data processing framework, which is used to process the actual big data services in the big data processing framework. The big data processing framework can be applied to a variety of application scenarios, providing corresponding big data processing functions for different application scenarios. The big data services in the big data processing framework can vary dynamically based on different application scenarios. For example, the application scenario can be a game scenario. In this scenario, the big data service can be the virtual item purchase service in the game scenario; another example is that the application scenario can be a short video push scenario. In this scenario, the big data service can be the video retrieval service in the short video push scenario; yet another example is that the application scenario can be an online shopping scenario, and the big data service can be the product recommendation service in the online shopping scenario.
[0088] Specifically, there are multiple (in this application, M is used as an example for illustration. M is an integer greater than 1 and can be specifically set based on actual business requirements. For example, it can be set to 10) shard structures provided in the access layer. Among them, each shard structure includes an access component and a storage component corresponding to this access component. For example: In shard structure 1, it can include an access component 1 and a storage component 1 corresponding to this access component 1; in shard structure 2, it can include an access component 2 and a storage component 2 corresponding to this access component 2;...; in shard structure M, it can include an access component M and a storage component M corresponding to this access component M. Through the Figure 1 architecture of the above-mentioned traditional container orchestration system shown, in the access layer of the traditional container orchestration system, an access component and a storage component are deployed. There can be a communication connection between this access component and the storage component. In this way, after the access component creates a container, it can store the relevant configuration data of the created container into this storage component for persistent storage.
[0089] In this application, on the basis of the architecture of a traditional container orchestration system, the access component can be horizontally scaled. Horizontal scaling means increasing the number of access components. By horizontal scaling, the single access component of the traditional container orchestration system can be expanded into multiple ones. Correspondingly, since the access component is horizontally scaled, this application also horizontally scales the storage component. For each expanded access component, a corresponding storage component is expanded for it. To establish a communication connection between the expanded access component and the corresponding expanded storage component, in this way, the expanded access component can store the data it needs to store into the corresponding expanded storage component. For an access component, a storage component, and the communication connection existing between the access component and the storage component, a connection structure can be formed, which this application calls a shard structure. In this way, by horizontally scaling the access component and the storage component, multiple shard structures can be obtained. Each shard structure will contain an access component and the storage component corresponding to the access component, and also contain the communication connection relationship between the access component and the storage component.
[0090] Exemplarily, as Figure 2 shown, the access component 1 can refer to the access component in the access layer of the traditional container orchestration system, the storage component 1 can refer to the storage component in the access layer of the traditional container orchestration system, the access components 2, …, access component M can refer to the access components obtained by horizontally scaling the access component 1 in this application. This application can regard the access component also contained in the traditional container orchestration system as the main access component (for example, access component 1), and regard each access component obtained by horizontal scaling as a secondary access component (for example, access components 2, access component M, etc.). Correspondingly, the storage component corresponding to the main access component (that is, the storage component with a communication connection) can also be regarded as the main storage component (for example, storage component 1), and the storage component corresponding to each secondary access component can be regarded as the secondary storage component (for example, storage component 2). The shard structure where a main access component and a main storage component are located can be regarded as the main shard structure (for example, shard structure 1), and the shard structure formed by a secondary access component and a secondary storage component can be regarded as the secondary shard structure (for example, shard structure 2). Then, in the business processing system proposed in this application, there will be a main shard structure and M - 1 secondary shard structures.
[0091] In this way, for the same data service (e.g., big data service), at least one container can be created for the data service by each access component in the access layer, rather than by a single access component. For the configuration data of any container, the access component that creates the container can store it in the corresponding storage component, rather than by a single storage component storing the configuration data of all containers. It can be seen that by horizontally expanding the access components and storage components, this application can reduce the container creation load of a single access component and the data storage load of a single storage component. For the containers created by each access component, the scheduling component in the scheduling layer can still determine the computing node for running the container and run the container by this computing node. For ease of understanding, the logical process of the service processing system for processing a data service will be described below with reference to the accompanying drawings.
[0092] Please refer to Figure 3 , Figure 3 which is a schematic diagram of the logical process of a service processing system provided by an embodiment of this application for processing a data service. As Figure 3 shown, this logical process can at least include the following steps S31 - S36:
[0093] Step S31, the data processing engine submits a service processing request for the data service to the access component in the access layer.
[0094] Specifically, the data processing engine in this application can refer to a big data processing engine, and the data service can refer to a big data service. The user can submit a data service to the data processing engine, and the data processing engine can send a service processing request for the data service to the service processing system, and this request will be received by the access component in the access layer of the service processing system.
[0095] Step S32, the access component in the access layer responds to the service processing request, creates at least one container for processing the data service, and stores the configuration data of the container in the corresponding storage component.
[0096] Specifically, after receiving the service processing request, the access component in the access layer will respond to this request. The access component will create at least one container for the data service to process the data service. After each access component creates a container, it will store the configuration data of the container in its corresponding storage component.
[0097] Step S33, the scheduling component monitors that the container is created and determines the target computing node for running the container.
[0098] Specifically, the scheduling component in the scheduling layer can still monitor each access component to monitor whether it has created a container. Once it is detected that an access component has created a container, the scheduling component will determine a computing node for running the container for this container. For the determined computing node for running a certain container, this application is referred to as the target computing node.
[0099] Step S34, the synchronization component obtains the configuration data of the container from the storage component in the access layer.
[0100] Specifically, the synchronization component needs to obtain the configuration data of the container from the storage component in the access layer and synchronize the configuration data to the target computing node. It should be noted that for any container, the synchronization component needs to obtain the configuration data of this container from the storage component corresponding to the access component that created this container.
[0101] Step S35, the synchronization component synchronizes the configuration data of the container to the target computing node.
[0102] Specifically, after obtaining the configuration data of the container, the synchronization component can synchronize the configuration data to the target computing node for running this container. It should be noted that since a data service will create multiple containers, there will also be multiple corresponding target computing nodes for running the containers. For any one container, the synchronization component needs to synchronize the configuration data of the container to the target computing node for running this container.
[0103] Step S36, the target computing node runs the container based on the configuration data of the container.
[0104] Specifically, after receiving the configuration data of a certain container sent by the synchronization component, the target computing node can run the container based on the configuration data of this container. By running the container, the business processing of the data service can be realized.
[0105] In summary, it can be seen that the business processing system of this application will include multiple sharding structures. The access components in these multiple sharding structures will jointly undertake the container creation task of the same data service, achieving an even load sharing of the load brought by the container creation task and reducing the container creation load of a single access component; moreover, the storage components in these multiple sharding structures will respectively store the configuration data of the containers created by the access components in their respective sharding structures. In this way, the data of the related containers of the same data service will not be stored only in a single storage component, which can reduce the storage load of a single storage component.
[0106] In the service processing system proposed in this application, although there are M - 1 secondary shard structures, this application may not configure external interaction functions for each secondary shard structure. Here, the external interaction function refers to the function of interacting with external devices (or components, systems), and external devices refer to any device that does not belong to the internal of the service processing system (for example: the above-mentioned big data processing engine). Only the primary shard structure in the access layer has the external interaction function, and external devices only need to interact with the primary shard structure. That is to say, when a user submits a certain big data service through the big data processing framework, the big data processing engine still needs to submit the service processing request for this big data service to the service processing system through the primary access component in the primary shard structure. Next, the functions implemented by the access components in the primary shard structure and the access components in the secondary shard structure will be introduced.
[0107] 1) Primary shard structure:
[0108] The access component in the primary shard structure is used to create a service container for the data service in response to the received service processing request for the data service. Specifically, the data service may refer to the big data service submitted by the big data processing engine. The access component (i.e., the primary access component) in the primary shard structure is provided with a unified access interface. After the user submits a big data service in the big data processing architecture, the big data processing engine can send a service processing request to the primary access component through this access interface to request the service processing system to process this big data service. The primary access component creates a container for this big data service, and this container is used to split the big data service into at least one required task (the number of the split required tasks is specified by the user). This container can be understood as a service container for the big data service, which is used to implement the splitting of required tasks and resource allocation. The primary access component can create a service container for this big data service in response to the request of the big data processing engine, and store the relevant configuration data of this service container (including the relevant information of the service container and the data configured by the user) into the storage component (primary storage component) of the primary shard structure. That is to say, the primary shard structure can be used to respond to the service processing request for the data service, create a service container for splitting the required tasks of the data service, and persistently store the relevant configuration data of this service container.
[0109] 2) Secondary shard structure:
[0110] The secondary shard structure is used to create a container for a demand task when receiving a container creation request for the demand task of the above data service. Specifically, for the service container created by the main access component, it will be run by a certain computing node in the physical layer. During the running process of this service container, the data service will be split into at least one demand task. For each demand task, this computing node needs to request an access component in a secondary shard structure (the secondary shard structure requested by this computing node may refer to the secondary shard structure allocated by the synchronization component in the scheduling layer to create a container for the demand task of the data service, that is: this secondary shard structure is pre-allocated and determined by the synchronization component in the scheduling layer from M - 1 secondary shard structures, and specific details can be found in the relevant descriptions later) to create a container for executing this demand task. This container can be called a task container. When this secondary shard structure receives this container creation request, it can create a task container for this demand task to execute this demand task.
[0111] For the above service container and task container, both are created to execute this data service. Then, for the service container created by the access component in the main shard structure for the data service, and the task container created by the access component in the secondary shard structure for the demand task of the data service, both can be used as Figure 2 the containers created by the access component in the access layer of the service processing system shown to process this data service. It can be seen that for the access component in the access layer of the service processing system provided in this application, it is mainly used to respond to the service processing request of a certain data service, create at least one container for processing this data service for this data service, and store the configuration data of each container into the corresponding storage component.
[0112] Among them, the access component specifically responding to the service processing request is the main access component in the main shard structure. The at least one container created for the service data includes a service container created by the main access component in the main shard structure, and multiple task containers created by the access components in multiple other secondary shard structures. For the configuration data of the service container, it can be stored by the main access component into the storage component of the main shard structure. For the configuration data of the task container, it can be stored by the access component of the secondary shard structure that creates this task container into the corresponding storage component.
[0113] For each extended secondary shard structure, no external interaction function is configured for it. In this way, the influence range brought by problems in the secondary shard structure can be reduced. Since each secondary shard structure is isolated and independent from each other, if an abnormal problem occurs in a certain secondary shard structure, it will not affect other secondary shard structures.
[0114] II. Physical layer:
[0115] The physical layer includes multiple physical clusters, so it can be regarded as a one-to-many relationship with the access layer (one access layer corresponds to multiple physical clusters). Among them, each physical cluster is a cluster composed of at least one computing node. Each physical cluster can operate independently, and each computing node can be used to run the containers created by the access components (including the primary access component and the secondary access component) in the access layer, such as the above-mentioned service containers and task containers.
[0116] III. Scheduling layer:
[0117] The scheduling layer is the control center of the container orchestration system, responsible for container scheduling (such as container allocation, that is, determining the computing node for each container to run the container) and data synchronization for the data services requested by the business processing requests submitted by external devices (such as big data processing engines). Among them, the scheduling layer includes a scheduling component and a synchronization component. The scheduling component is responsible for implementing container scheduling, and the synchronization component is responsible for implementing data synchronization. The container scheduling process of the scheduling component and the data synchronization process of the synchronization component will be introduced below.
[0118] 1) Scheduling component:
[0119] The scheduling component is used to perform container scheduling for the containers created by the access components in the access layer. The container scheduling process of the scheduling component will be elaborated below:
[0120] Container scheduling of the scheduling component.
[0121] The container scheduling of the scheduling component refers to: determining / allocating a computing node from at least one computing node included in the physical layer for running the container created by any access component. Specifically, the scheduling component can establish a communication connection with any sharding structure in the access layer (a communication connection with a certain sharding structure can be understood as having communication connections with both the access component and the storage component in the sharding structure). Through this communication connection, the scheduling component can achieve real-time monitoring of the access components in the sharding structure to monitor whether a container creation event occurs. This container creation event refers to the event that an access component creates a container. In other words, once an access component creates a container, the scheduling component can monitor that the container is created. The scheduling component can also establish a communication connection with any physical cluster in the physical layer (a communication connection with a certain physical cluster can be understood as having established communication connections with each computing node in the physical cluster). Through the communication connections with each computing node, the scheduling component can achieve real-time monitoring of the node data of each computing node to monitor node resource data such as the amount of resources already used and the amount of free resources of the computing node. Based on the communication connections with the access layer and the physical layer, if the scheduling component monitors a container creation event of any access component, it can indicate that the access component has newly created a container. The scheduling component can perform container scheduling for the container created by this container creation event based on the monitored node resource data of each computing node (i.e., determine a computing node for running this container).
[0122] 2) Synchronization component:
[0123] The synchronization component is used to synchronize the configuration data of the container to the computing node determined / assigned for running the container, and synchronize and feedback the running status data of the container on this computing node to the access component in the main sharding structure. In addition, the synchronization component is also used to select a secondary sharding structure for any data service's demand task to create a container for it (it can be considered that the synchronization component creates a container for the data service's demand task in the secondary sharding structure). The following will elaborate on the process of the synchronization component synchronizing the configuration data of the container, the process of feedbacking the running status data of the container, and the process of selecting (scheduling) a secondary sharding structure for the data service's demand task:
[0124] ① Scheduling of the secondary sharding structure by the synchronization component.
[0125] In the service processing system of the present application, only the main shard structure has the external interaction function. It can be seen that for any service processing request submitted by an external device to the access layer, it is the access component in the main shard structure that responds to it. Therefore, a service container for splitting the required tasks is created for the data service requested by the service processing request. However, for any data service, when it is split into at least one required task through its service container, the creation of the container for each required task does not need to be implemented through the access component in the main shard structure, but through the access component in a certain sub-shard structure among the M-1 sub-shard structures. In this way, the access volume of the access component in the main shard structure can be well reduced, and the access load pressure on the access component in the main shard structure can be greatly alleviated; for the sub-shard structure that needs to create a container for the required task of the data service, it can be determined by the synchronization component in the scheduling layer from the M-1 sub-shard structures.
[0126] Exemplarily, taking any data service as an example, after the main shard structure creates a service container for it, the scheduling component needs to allocate a computing node to run the service container. The computing node allocated by the scheduling component for the service container can be called the first computing node. After the main shard structure creates a service container for it, the synchronization component in the scheduling layer can also monitor the container creation event of the access component in the main shard structure for the service container (that is, it is monitored that the service container is created). Based on this container creation event, the synchronization component in the scheduling layer can select one or more sub-shard structures from the M-1 sub-shard structures as the sub-shard structures for creating containers for the required tasks of the data service. Since the container created for the required task is used to execute the required task, it can also be considered here that the selected sub-shard structure is the sub-shard structure for executing the required tasks of the data service. For the sub-shard structure selected by the synchronization component, the present application can be called the target sub-shard structure.
[0127] After the synchronization component selects the target secondary shard structure for container creation for the demand task of the data service, the synchronization component can set the task access address of the above business container as the component address of the access component in the target secondary shard structure. In this way, during the operation of the business container by the first computing node, based on the task access address of the business container, it can be determined that the access component used to create the container for the demand task is the access component in this target secondary shard structure. The first computing node can then send a container creation request for the demand task to the access component in the target secondary shard structure. After receiving this container creation request, the access component in the target secondary shard structure can respond to this container creation request and create a container (referred to as a task container) for executing the demand task. In summary, the task access address of the business container refers to the address for task access by the computing node running the business container. The process of task access by the computing node running the business container includes: the computing node accessing the access component to send the container creation request generated for the demand task to the access component.
[0128] In specific implementation, the synchronization component can select the target secondary shard structure from the M - 1 secondary shard structures according to a preset selection strategy. For example, the selection strategy is a random strategy. Under the random strategy, the synchronization component can select any one secondary shard structure as the target secondary shard structure. Another example is that the selection strategy is a storage capacity priority strategy. Under the storage capacity priority strategy, the synchronization component can obtain the storage capacity of the storage components in each secondary shard structure (referring to the current remaining storage capacity) and use the secondary shard structure where the storage component with the largest storage capacity is located as the target secondary shard structure. That is, when the selection strategy is the storage capacity priority strategy, the storage capacity of the storage component in the selected target secondary shard structure is greater than the storage capacity of the storage components in any other unselected secondary shard structure.
[0129] It should be noted that under the storage capacity priority strategy, since the larger the remaining storage capacity of the storage component, the smaller the data storage load of the storage component, a storage component with the smallest data storage load can be selected as the storage component to store the configuration data of the task container, and the secondary shard structure where this storage component is located is correspondingly determined as the target secondary shard structure. In this way, an optimal selection can be achieved based on the remaining storage containers. However, if the target secondary shard structure is selected and determined according to the random strategy, it cannot be guaranteed that the storage component in the selected target secondary shard structure has sufficient storage space to store the configuration data of the task container. Based on this, the present application can preferably use the storage capacity priority strategy as the strategy for selecting the target secondary shard structure.
[0130] ② The synchronization process of the configuration data of the container.
[0131] Both the synchronization component and the scheduling component are deployed in the scheduling layer. A communication connection can be established between the synchronization component and the scheduling component; the synchronization component can also establish communication connections with each sharding structure in the access layer and with any computing node in the physical layer. In this way, every time the scheduling component assigns a computing node to a container, the synchronization component can be monitored through the communication connection with the scheduling component. The synchronization component can query the access component that created this container and, based on the communication connections with each storage component, obtain the configuration data of the container from the storage component corresponding to the access component that created the container. Based on the communication connections with each computing node, the synchronization component can synchronize the configuration data of the container to the assigned computing node for running the container.
[0132] ③ The feedback process of the running status data of the container.
[0133] The running status data of the container refers to the status data generated when the container is running on a computing node, which may specifically include but is not limited to: the identifier of the container (used to uniquely represent the container, such as: container number, container name, etc.), the status of the container (such as: running, stopped, paused, restarting, etc.), the start time of the container, the running duration of the container, the resource usage of the container (such as: CPU usage rate, memory usage rate, etc.), the number of times the container has been restarted, etc. For the running status data of the container on the computing node running the container, the synchronization component can obtain the running status data of the container from the computing node through the communication connection with the computing node and return it to the access component in the main sharding structure. The main sharding structure can store the received running status data of the container in the corresponding storage component (i.e., the storage component in the main sharding structure). In this way, since the main sharding structure has the function of external interaction, and the user can apply to the access component of the main sharding structure to view the running status data of the container through the big data processing engine. The access component in the main sharding structure can obtain the running status data of the container from the corresponding storage component and return it to the big data processing engine for the user to view (specifically, the user sends a status viewing request for the container to the big data processing engine, the big data processing engine forwards this request to the access component of the main sharding structure, the access component of the main sharding structure obtains the running status data of the container from the corresponding storage component, and then returns this running status data to the big data processing engine, and the big data processing engine returns this running status data to the user for the user to view).
[0134] It can be seen that in Figure 2In the business processing system shown, the synchronization component is used to feed back the running status data of each container on the computing node to the access component in the main shard structure. Once the user submits a status query request for a container to the access component in the main shard structure through the big data processing engine, the access component in the main shard structure will receive and respond to it. The access component in the main shard structure will obtain the running status data of the container from the storage component of the main shard structure and return the running status data of the container to the big data processing engine. The big data processing engine will return the running status data to the query object (i.e., the object that initiated the status query request, such as the user).
[0135] Based on Figure 2 Based on the architecture of the business processing system shown in FIG. 1 , in order to better understand the process of container scheduling for data services, the following will be combined with the accompanying drawings (including Figure 4a - Figure 4c ) Based on Figure 2 Based on the architecture of the container orchestration system shown in the figure, the process of container scheduling for data services is described. Figure 4a , Figure 4a is a schematic diagram of creating a service container for a data service provided by an embodiment of the present application, wherein, Figure 4a The business party 303 shown may refer to a user in any application scenario.
[0136] like Figure 4a As shown, the business party 303 can submit a request for a big data business (such as Figure 4a The big data processing engine may submit the business processing request for the big data business to the business processing system, which is received by the main access component (i.e., access component 1) in the access layer of the business processing system. For the data business requested to be processed by this business processing request, access component 1 may create a business container for it. Once access component 1 creates a business container for the data business, the scheduling component in the scheduling layer may monitor the container creation event of access component 1 for the business container (this container creation event is the event that the business container is created, that is, the scheduling component may monitor the creation of the business container), and the scheduling component may perform node scheduling from various computing nodes in the physical layer. The node scheduling refers to allocating / determining a computing node for the business container as the computing node for running the business container, such as Figure 4a As shown, the computing node allocated to the service container may be the computing node 3001 in the physical layer.
[0137] For the synchronization component in the scheduling layer, the synchronization component selects one access component (secondary access component) from the M-1 secondary shard structures included in the access layer as the access component for creating a container for the demand task of this data service. The secondary access component selected by the synchronization component can be called the target access component, and the secondary shard structure where the target access component is located can be understood as the target secondary shard structure selected by the scheduling component. After selecting the target secondary shard structure, the synchronization component can set the task access address of the service container to the component address of the target access component. Here, it is assumed that the target secondary shard structure selected by the synchronization component is shard structure 2, and the target access component is access component 2 included in shard structure 2.
[0138] Further, please refer to Figure 4b , Figure 4b which is a schematic diagram of creating a task container for the demand task of the data service provided by an embodiment of the present application. Based on the above Figure 4a shown embodiment, it can be known that the computing node allocated by the synchronization component for the service container is 3001. During the operation of the service container on the computing node 3001, the data service will be split into at least one demand task in the service container. For each demand task, the computing node 3001 needs to apply to the access component in the access layer to create a container for it to execute the demand task. Since the scheduling component sets the target access component (access component 2) as the task access address of the service container, then, here the computing node 3001 can send a container creation request for this demand task to the target access component (access component 2) based on this task access address. The target access component (access component 2) will create a task container for this demand task based on this container creation request. Correspondingly, once access component 2 creates a task container for this demand task of the data service, the scheduling component in the scheduling layer can monitor the container creation event of access component 2 for this task container (that is, monitor that the task container is created). The scheduling component can perform node scheduling from each computing node in the physical layer. Similarly, the node scheduling here refers to determining / allocating a computing node for this task container as the computing node for running this task container. As Figure 4b shown, the computing node allocated for the task container can be computing node 3002 in the physical layer.
[0139] For any container, whenever the scheduling component allocates a computing node for running this container, the synchronization component can synchronize the configuration data of this container to the allocated computing node, so that this computing node can run this container based on the configuration data of this container. For example: In Figure 4aIn the illustrated embodiment, after the scheduling component assigns the computing node 3001 as the computing node for running the service container, the synchronization component needs to obtain the configuration data of the service container from the storage component 1 and synchronize the configuration data to the computing node 3001; for another example, in the Figure 4b illustrated embodiment, after the scheduling component assigns the computing node 3002 as the computing node for running the task container, the synchronization component needs to obtain the configuration data of the service container from the storage component 2 and synchronize the configuration data to the computing node 3002. Further, for each container, the running status data of the container on the assigned computing node can also be fed back by the synchronization component to the access component in the main shard structure.
[0140] Specifically, please refer to Figure 4c together with Figure 4c which is a schematic diagram of a synchronization component synchronizing the running status data of a container to the main shard structure provided by an embodiment of the present application. As Figure 4c shown, when the service container runs on the computing node 3001, corresponding running status data will be generated, and when the task container runs on the computing node 3002, corresponding running status data will be generated. The synchronization component can obtain the running status data of the service container from the computing node 3001, obtain the running status data of the task container from the computing node 3002, and feed it back to the access component in the main shard structure (i.e., the access component 1 in the shard structure 1). The access component 1 will store both the running status data of the service container and the running status data of the task container in the storage component 1. In this way, the service party 303 can apply to the access component 1 through the big data processing engine to consult the relevant running status data of the service container and the task container, and the access component 1 can obtain the data requested by the service party 303 from the storage component 1.
[0141] It should be noted that a data service can be split into multiple demand tasks. When the synchronization component in the present application selects a secondary shard structure for the demand tasks of a data service, multiple secondary shard structures can be selected as the secondary shard structures created for the task containers, rather than selecting one secondary shard structure. In this way, the access component (i.e., a secondary access component) in any of the selected secondary shard structures can create task containers for one demand task or multiple demand tasks, without a single secondary access component creating task containers for all demand tasks, which can relieve the load pressure on the access component in the secondary shard structure.
[0142] In the Figure 2In the business processing system shown, in order to precisely control each sub - shard structure, the present application can configure a capacity detection function for the synchronization component in the business processing system. Based on this container monitoring function, the synchronization component can periodically detect the remaining storage capacity of the storage components (i.e., M - 1 sub - storage components) in the M - 1 sub - shard structures to determine whether the data stored in the sub - storage components has reached saturation. In the present application, reaching saturation means that the data stored in the sub - storage components is relatively large and the remaining storage capacity is lower than a preset value (this value can be set based on actual business requirements, and this preset value is referred to as the capacity threshold here), and count the number of sub - storage components whose stored data has reached saturation. When the number of sub - storage components that have reached saturation accounts for a relatively large proportion, the synchronization component can issue a capacity warning message for the M - 1 sub - shard structures. This capacity warning message can be received by the system operation and maintenance object (the object that maintains the business processing system) of the business processing system. Through this capacity warning message, the system operation and maintenance object can clearly know that the storage load of each currently extended sub - shard structure is relatively large. The system operation and maintenance object can continue to expand the sub - shard structure, that is, continue to expand the sub - access component, namely the sub - storage component. The newly expanded sub - shard structure can continue to share the data processing load of the original M shard structures (for example: the container creation load of the access component, the data storage load of the storage component). It can be seen that through the periodic capacity detection of each sub - storage component by the synchronization component, an alarm can be issued in a timely manner when the remaining storage capacity of each sub - shard structure is small. In this way, the system operation and maintenance object can timely expand new sub - shard structures to reduce the data processing load of the M shard structures.
[0143] As can be seen from the above, in Figure 2In the business processing system shown, once the component detection cycle arrives, the synchronization component can detect the remaining storage capacity of the storage components of each of the secondary shard structures. Among them, the component detection cycle can refer to the cycle for detecting the remaining storage capacity of the storage components of each secondary shard structure, and this component detection cycle can be preset by the system maintenance object. For example, the component detection cycle can be set to every 7 days. In this way, on the 0th day, 7th day, 14th day... when the business processing system starts running, each is a component detection cycle. In a component detection cycle, the synchronization component can detect the remaining storage capacity of the storage components of each secondary shard structure. If the remaining storage capacity of a storage component is less than the capacity threshold (which can be set based on actual business requirements), it is determined that the data stored in this storage component has reached saturation, and this storage component can be regarded as a saturated storage component. For the secondary shard structure where this saturated storage component is located, it can be regarded as a saturated shard structure. The synchronization component can count the number of saturated shard structures and the total number of M - 1 secondary shard structures, and determine the ratio between the number of saturated shard structures and the total number of M - 1 secondary shard structures (this ratio can reflect the proportion occupied by the saturated shard structures). When the ratio between the number of saturated shard structures and the total number of the M - 1 secondary shard structures is greater than the ratio threshold (this ratio threshold can be set based on actual business requirements, for example, setting this ratio threshold to 2 / 3, 3 / 4, etc.), the synchronization component can output a capacity warning message for the M - 1 secondary shard structures. This capacity warning message can indicate that the remaining storage capacity of each storage component in the M - 1 secondary shard structures is small, and the data stored in most storage components has reached saturation. Based on this capacity warning message, the system maintenance object can timely expand the M shard structures to form more shard structures to share the subsequent data processing load of the M shard structures.
[0144] Of course, in addition to detecting the storage components in the M - 1 secondary shard structures, the synchronization component can also detect the access components (i.e., the M - 1 secondary access components) in the M - 1 secondary shard structures. For example, the synchronization component can detect the load of the M - 1 secondary access components (which can be understood as the number of containers waiting to be created by the secondary access components), and determine the secondary access components whose load exceeds a preset threshold based on the load of the M - 1 secondary access components. The fact that the load exceeds the preset threshold indicates that the load of the secondary access component is relatively large. The secondary access components whose load exceeds the preset threshold can be regarded as saturated access components, and the secondary shard structures where the saturated access components are located can be regarded as saturated shard structures (here, for the sake of distinction, the shard structure where the above-mentioned saturated storage components are located can be called the first saturated shard structure, and the secondary shard structure where the saturated access components are located can be called the second saturated shard structure); similarly, if the ratio between the number of the second saturated shard structures and the total number of the M - 1 secondary shard structures counted by the synchronization component is greater than the ratio threshold, then the synchronization component can issue an access warning message for the M - 1 secondary shard structures. This access warning message is used to characterize that the access load of each access component in the M - 1 secondary shard structures is relatively large, and most access components still need to process multiple container creation requests. Based on this access warning message, the system maintenance object can timely expand the M shard structures to form more secondary shard structures to share the subsequent data processing load of the M shard structures.
[0145] Based on the architecture of traditional container orchestration systems, it does not support storing container resources in different storage components by namespace (namespaces provide a scope for resource names. It can group resources that do not belong to a group into non - overlapping groups. If multiple users or user groups use the same cluster and each manages its own unique set of resources, they should use their own namespaces respectively, which can avoid modifying or deleting the resources of other users and there is no need to worry about name conflicts) or other means. All metadata in a container orchestration system cluster can only be stored in one storage component. Most data calculations in the container orchestration system come from requests for different containers (such as creation requests, data query requests, etc.), which brings a great load pressure to the access components and storage components.
[0146] Based on this, the present application proposes a system component sharding strategy for a container orchestration system, which can horizontally expand the access component and the storage component. The deployment form of the expanded access component and storage component in the container orchestration system is the same as the original ones. The present application can deploy the expanded access component according to the deployment form of the original access component in the container orchestration system, and deploy the expanded storage component according to the deployment form of the original storage component in the container orchestration system. For example, if the original access component and storage component are both deployed in the container orchestration system in the form of static containers, then the present application can also deploy any expanded access component and storage component in the container orchestration system in the form of static containers, thereby forming the business processing system proposed by the present application. By expanding the access component and the storage component, multiple sharding structures can be formed. Through these multiple sharding structures, containers can be divided into multiple storage components, and dynamic node scheduling (node allocation) of the containers can be realized according to the load conditions of each access component and storage component, which can well improve the scheduling throughput of the container orchestration system.
[0147] To better understand the difference between the main sharding structure and the secondary sharding structure in the present application, the data stored in the storage component (i.e., the main storage component) in the main sharding structure and the data stored in the storage component (i.e., the secondary storage component) in the secondary sharding structure will be introduced below in conjunction with the accompanying drawings. Please also refer to Figure 5 , Figure 5 which is a comparison schematic diagram of the data stored in the main storage component and the secondary storage component provided by an embodiment of the present application. As Figure 5 shown, for any data service, the access component (i.e., the main access component, such as: access component 1) in the main sharding structure (e.g., sharding structure 1) creates a business container for it, and the configuration data of this business container will be stored in the storage component (i.e., the main storage component, such as: storage component 1) in this main sharding structure. For example, the configuration data of the business container of data service a (such as Figure 5 the business container a shown) and the configuration data of the business container of data service b (such as Figure 5 the business container b shown) will both be stored in storage component 1. In addition to the configuration data of the business container, the storage component in the main sharding structure is also used to store other resource information in the access layer, such as: the namespace of the container orchestration system, container non-special data (configmaps), container abstract resource data (services), etc. That is to say, the storage component in the main sharding structure is responsible for storing the configuration data of the business containers of each data service and other resource information in the access layer.
[0148] For any data service, the required tasks split from it are created into task containers by the access component in a certain secondary sharding structure, and the configuration data of this task container will be stored in the corresponding storage component. AsFigure 5 As shown in Figure 5 , for data service a, assuming that the secondary shard structure selected by the synchronization component for the demand task of data service a is shard structure 2, the configuration data of the task container under data service a is stored by the storage component (e.g., storage component 2) in shard structure 2; for data service b, assuming that the secondary shard structure selected by the synchronization component for the demand task of data service b is shard structure 3, the configuration data of the task container under data service b is stored by the storage component (e.g., storage component 3) in shard structure 3. That is to say, the storage component in the secondary shard structure in this application is mainly used to store the configuration data of the task container of a certain demand task of the data service.
[0149] It should be noted that the process of selecting a secondary shard structure for creating a task container for the demand task of a certain data service can also be implemented by the scheduling component in the scheduling layer, that is: the scheduling component can also be used to select a target secondary shard structure for executing the demand task for a certain service container from M - 1 secondary shard structures, and set the task access address of the service container to the component address of the access component in the target secondary shard structure. However, in specific implementation, it is preferable to use the synchronization component in the scheduling layer to implement this process. In this way, the scheduling component only needs to be responsible for implementing the scheduling of the computing nodes for the container.
[0150] Based on the architecture of the service processing system described above, in the process of container scheduling for a certain data service in this application, all resource scheduling (including container creation and allocation scheduling of computing nodes) is performed in the access layer and the scheduling layer. Each physical cluster in the physical layer only needs to be responsible for providing computing and storage resources. In this way, both the efficient utilization of resources can be ensured, and resource isolation between physical clusters can be achieved. By horizontally expanding the access component and the storage component, the load on the traditional single access component and storage component can be evenly transferred, which can well improve the overall scheduling upper limit of the system, thereby improving the system scheduling performance.
[0151] In summary, in the embodiment of the present application, the proposed service processing system is divided into three hierarchical structures: an access layer, a scheduling layer, and a physical layer. Among them, the access layer contains multiple (in this application, M is used as an example for illustration, and M should be an integer greater than 1) sharding structures. Each sharding structure contains an access component and a storage component; the scheduling layer contains a scheduling component, and the physical layer contains at least one computing node. For each access component in the access layer, it can be used to create at least one container for processing a data service for a data service, and the configuration data of the container created by itself will be stored in the storage component of the sharding structure to which it belongs; for the container created by any access component, the scheduling component will also determine a computing node for it, and the computing node will run the container based on the configuration data of the container, so as to realize the processing of the data service. As can be seen above, the present application proposes a sharding scheme for access components and storage components. This scheme will horizontally expand both the single access component and the storage component to increase the sharding structure composed of the access component and the storage component. In this way, the service processing system of the present application will include multiple sharding structures. The access components in these multiple sharding structures will jointly undertake the container creation task of the same data service, realizing an even load sharing of the load brought by the container creation task and reducing the container creation load of a single access component; moreover, the storage components in these multiple sharding structures will respectively store the configuration data of the containers created by the access components in their respective sharding structures. In this case, the data of the relevant containers of the same data service will not be stored only in a single storage component, which can reduce the storage load of a single storage component. By reducing the loads of the access components and storage components in the system, the scheduling performance of the scheduling component for containers can be effectively improved, enabling the scheduling component to process and allocate more containers to appropriate computing nodes for operation within a unit time, and enhancing the scheduling throughput performance of the entire service processing system.
[0152] Based on Figure 2 the interaction between the access layer, the scheduling layer, and the physical layer in the service processing system shown, the scheduling processing method provided in the embodiment of the present application can be implemented. Please refer to Figure 6 , Figure 6 which is a schematic flowchart of a scheduling processing method provided for an exemplary embodiment of the present application. This scheduling processing method can be executed by Figure 2 the scheduling component in the container orchestration system shown. This scheduling processing can at least include the following steps S501 - S503:
[0153] Step S501, according to at least one container monitored and created by an access component in the access layer in response to a service processing request, where the at least one container is used to process the data service requested by the service processing request.
[0154] Specifically, in Figure 2In the container orchestration system shown, the access layer includes M sharding structures. Each sharding structure contains an access component and a corresponding storage component. Each access component in the access layer is used to respond to any business processing request for a certain data service, and in response to this business processing request, create at least one container for processing the data service (including the business container created by the access component in the main sharding structure and the task container created by the access component in the secondary sharding structure), and store the configuration data of the container created by itself into the corresponding storage component. Once any access component creates a container, the scheduling component in the scheduling layer can monitor the container creation event of this access component for this container (that is, the event that the container is created. In other words, the scheduling component can monitor the creation of each container), and the scheduling component can obtain the container created by this access component. Then, for at least one container created by the access component in the access layer for the data service, the scheduling component can obtain them all.
[0155] Step S502, determine a target computing node for running the container from at least one computing node in the physical layer.
[0156] Specifically, for each container in at least one container, the scheduling component can determine / assign a computing node for running this container from at least one computing node included in the physical layer. For the computing node determined for the container to run this container, this application refers to it as the target computing node. This means that the number of target computing nodes may not be only one and is affected by the number of at least one container. The process of node allocation for determining a target computing node for running a container for a container can be understood as the node scheduling process for the container.
[0157] Based on the above, among the at least one container created for data services, there will be a service container created by the access component in the main shard structure and a task container created by the access component in the secondary shard structure for the demand task. For the service container, the process of determining the target computing node for running the service container can at least include: First, the scheduling component can obtain the configuration data of the service container from the storage component of the main shard structure; based on the configuration data of the service container, the required resource amount of the service container (i.e., the resource amount required for the data service) can be determined; then, the resource capacity of each computing node in at least one computing node of the container orchestration system can be obtained (here, the resource capacity can refer to the remaining resource amount of the computing node); according to the resource capacity of each computing node and the required resource amount of the service container, Q (Q is an integer, usually an integer greater than 1) computing nodes with a resource capacity greater than the required resource amount of the service container can be determined as the first candidate nodes among at least one computing node; further, a computing node for running the service container (becoming the first computing node) can be selected from the Q first candidate nodes. For the method of selecting the first computing node from the Q first candidate nodes, it can be set based on actual business requirements. For example, after evaluating the performance of each first candidate node to obtain the performance evaluation values of each first candidate node, the selection can be made according to the performance evaluation values of each first candidate node.
[0158] That is, the specific implementation process of selecting the first computing node from the Q first candidate nodes can include: First, the running data of each first candidate node in the Q first candidate nodes can be obtained (i.e., the data generated during the running of the first candidate node, which can include but is not limited to: the utilization rate of the node for cpu resources, the utilization rate of the node for memory resources, the network traffic data of the node, the cpu load data of the node, the memory load data, latency, and throughput, etc.). Based on the running data of each first candidate node, the performance of each first candidate node can be evaluated and analyzed. Here, a specific artificial intelligence model can be used for evaluation and analysis. The artificial intelligence model can be any model with a classification function and can be pre-trained to improve its evaluation and analysis effect. Through evaluation and analysis, the performance evaluation value of each first candidate node can be obtained; then, the maximum performance evaluation value can be obtained among the Q performance evaluation values, and the first candidate node indicated by the maximum performance evaluation value can be determined as the target computing node for running the service container (the target computing node for running the service container can be called the first computing node, that is, the above target computing node can include the first computing node determined for the service container).
[0159] Of course, the method for selecting the first computing node from the Q first candidate nodes may also be other methods. For example, a random selection method may be adopted to randomly select a computing node from the Q first candidate nodes as the first computing node. The present application does not limit the method for selecting the first computing node from the Q first candidate nodes.
[0160] For a task container, the process of allocating a target computing node for running the task container may at least include: obtaining a computing node that runs a service container (the service container refers to a container used to split a data service into at least one demand task) from at least one computing node (such as the above-mentioned first computing node), and then determining each computing node other than the computing node that runs the service container among the at least one computing node as a second candidate node; further, a target computing node for running the task container may be selected from each second candidate node (the target computing node for running the task container may be referred to as a second computing node, that is, the above-mentioned target computing node may include the second computing node determined for the task container).
[0161] The method for selecting the second computing node from each second candidate node may be the same as the method for selecting the first computing node from the Q first candidate nodes above, that is: after evaluating the performance of each second candidate node to obtain the performance evaluation value of each second candidate node, selection may be made according to the performance evaluation value of each second candidate node. The method for selecting the second computing node from each second candidate node may also be determined based on the processing efficiency evaluation value of each second candidate node. Specifically, after evaluating the processing efficiency of each second candidate node to obtain the processing efficiency evaluation value of each second candidate node, selection may be made according to the processing efficiency evaluation value of each second candidate node. That is, the specific implementation process for selecting the second computing node for running the task container from each second candidate node may include: obtaining the processing efficiency evaluation value of each second candidate node. For the processing efficiency evaluation value of the second candidate node, it may be evaluated based on the task processing data of the second candidate node for processing different tasks in a historical time period. The historical time period may refer to a time period earlier than the current moment (of course, the moment when the processing efficiency of the second candidate node is evaluated). The task processing data may include: processing delay, processing duration, resource consumption, etc.; after evaluating the processing efficiency evaluation value of each second candidate node, the processing efficiency evaluation values of each second candidate node may be compared, and the second candidate node with the largest processing efficiency evaluation value may be determined as the second computing node for running the task container.
[0162] It can be seen that the second computing node allocated by the scheduling component for the task container is different from the first computing node. The service container and the task container of a data service will run on different computing nodes. Moreover, when the scheduling component selects the second computing node for running the task container from each second candidate node in the above-described manner of determining based on the processing efficiency evaluation values of each second candidate node, the evaluation processing speed of the second computing node selected by the scheduling component (determined based on the processing efficiency evaluation value, the greater the processing efficiency evaluation value, the faster the evaluation processing speed) will be faster than the evaluation processing speeds of other unselected computing nodes.
[0163] Step S503: Schedule the target computing node to run the container to process the data service based on the configuration data of the container stored in the storage component in the access layer.
[0164] Specifically, after the scheduling component finishes allocating the computing node for the container, it can schedule the computing node to run the container. Among them, the computing node can run the container based on the configuration data stored in the corresponding storage component of the container (that is, the storage component corresponding to the access component that created the container: the storage component in the sharding structure where the access component is located). By running at least one container, the data service can be processed.
[0165] In summary, in the embodiment of the present application, a service processing system is provided. The service processing system includes three hierarchical structures: an access layer, a scheduling layer, and a physical layer. Among them, the access layer includes M sharding structures, each sharding structure includes an access component and a corresponding storage component, the scheduling layer includes a scheduling component, and the physical layer includes at least one computing node. Based on this service processing system, the big data service submitted by the user can be fully cloud-native implemented. By dynamically horizontally expanding a single access component and a storage component, the demand tasks in the big data service can be divided into different sub-sharding structures according to corresponding rules, which can not only reduce the load of the main sharding structure, but also balance the load pressure of each sub-sharding structure, effectively improving the overall scheduling performance of the cluster; moreover, the multi-sharding structure mechanism of the present application also provides a better fault isolation function. If a certain sharding structure has a problem, it will not affect any other sharding structure, which can well improve the overall stability of the container orchestration system and provide strong support for the large-scale cloud-native implementation of the big data service.
[0166] In one implementation, after horizontally scaling the access component and the storage component to obtain M - 1 secondary shard structures, the present application can configure each secondary shard structure with an external interaction function, that is: each shard structure in the present application has an external interaction function. When each shard structure has an external interaction function, for a service processing request for a data service submitted by an external device (for example: a big data processing engine), a polling component (for example: a router component) can be configured to select a shard structure from each shard structure to respond to this service processing request. Specifically, after receiving a service processing request for a data service submitted by a user, the big data processing engine can first send this service processing request to the polling component, and the polling component will use a polling method to select a shard structure from the M shard structures to respond to this service processing request. For the selected shard structure, the access component in the selected shard structure can create a service container for the data service requested by this service processing request. Then, the scheduling component can select shard structures from the remaining unselected shard structures to create containers for the demand tasks of this data service. In this way, the polling component needs to perceive all the content of each data service running in the service processing system (for example: which computing nodes are the relevant containers running this data service, which access components are generating containers for this data service, and which storage components have the relevant data of this data service), and needs to implement real-time monitoring and transparent proxy of multiple devices, which will bring a huge amount of data calculation to the polling component, and the calculation load of the polling component is relatively large. Therefore, in a specific application scenario, this method can be used as an alternative solution, and a more preferred method is the method of only configuring the external interaction function for the main shard structure as described above.
[0167] The embodiments of the present application further provide a computer device, which is equipped with the business processing system described above; the computer device can be a hardware entity device. For example, the computer device can be a server. Among them, the server can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers. It can also be a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, Content Delivery Network (CDN), and big data and artificial intelligence platforms. That is to say, the business processing system described above can be encapsulated into a hardware device (such as a server) to form the computer device of the embodiments of the present application. The computer device can be set in various business scenarios. The computer device in various business scenarios, based on the container orchestration system it is equipped with, can provide containerized running functions for various data services in various business scenarios, and persistently store the data and technologies in each running link during the process of running various data services, and perform unified and standardized management.
[0168] Further, please refer to Figure 7 , Figure 7 which is a schematic structural diagram of a computer device provided by the embodiments of the present application. As Figure 7 shown, the above computer device 8000 may include: a processor 8001 and a memory 8004. In addition, the above computer device 8000 further includes: at least one communication bus 8002. Among them, the communication bus 8002 is used to realize the connection and communication between these components. The network interface 8003 may optionally include a standard wired interface and a wireless interface (such as a WI-FI interface). The memory 8004 can be a high-speed RAM memory, or a non-volatile memory, such as at least one disk memory. The memory 8004 may optionally be at least one storage device located far from the aforementioned processor 8001. As Figure 7 shown, the memory 8004, as a computer-readable storage medium, may include an operating system, a network communication module, and a computer program.
[0169] In Figure 7 the computer device 8000 shown, the network interface 8003 can provide network communication functions; and the processor 8001 can be used to call the computer program stored in the memory 8004 to implement:
[0170] According to at least one container monitored and created by an access component in the access layer in response to a business processing request, the at least one container is used to process the data service requested by the business processing request;
[0171] Determine a target computing node for running a container from at least one computing node in the physical layer;
[0172] Schedule the target computing node to run the container to process data services based on the configuration data of the container stored in the storage component in the access layer.
[0173] In one implementation, the M sharding structures include a primary sharding structure, at least one container includes a service container created by an access component in the primary sharding structure, and the target computing node for use includes a first computing node determined for the service container;
[0174] When the processor 8001 executes to determine a target computing node for running a container from at least one computing node in the physical layer, the following steps are specifically executed:
[0175] Obtain the configuration data of the service container from the storage component of the primary sharding structure;
[0176] Determine the required resource amount of the service container according to the configuration data of the service container;
[0177] Obtain the resource capacity of each computing node in at least one computing node of the container orchestration system;
[0178] According to the resource capacity of each computing node and the required resource amount of the service container, determine Q first candidate nodes in at least one computing node whose resource capacity is greater than the required resource amount of the service container; Q is an integer;
[0179] Select a first computing node for running the service container from the Q first candidate nodes.
[0180] In one implementation, when the processor 8001 executes to select a first computing node for running the service container from the Q first candidate nodes, the following steps are specifically executed:
[0181] Obtain the running data of each first candidate node among the Q first candidate nodes;
[0182] Based on the running data of each first candidate node, evaluate and analyze the performance of each first candidate node to obtain a performance evaluation value of each first candidate node;
[0183] Obtain the maximum performance evaluation value among the Q performance evaluation values, and determine the first candidate node indicated by the maximum performance evaluation value as the first computing node for running the service container.
[0184] In one embodiment, the M sharding structures include M - 1 sub-sharding structures. At least one container includes a task container created by any access component in the M - 1 sub-sharding structures for executing a requirement task for a data service. A requirement task refers to a task that needs to be executed to complete a data service. The target computing node includes a second computing node determined for the task container;
[0185] When the processor 8001 determines a target computing node for running a container from at least one computing node in the physical layer, it specifically executes the following steps:
[0186] Obtain a computing node for running a service container in at least one computing node; a service container refers to a container for splitting a data service into at least one requirement task;
[0187] Determine each computing node in at least one computing node other than the computing node running the service container as a second candidate node;
[0188] Select a second computing node for running the task container from each of the second candidate nodes.
[0189] In one embodiment, when the processor 8001 selects a second computing node for running the task container from each of the second candidate nodes, it specifically executes the following steps:
[0190] Obtain a processing efficiency evaluation value of each second candidate node;
[0191] Compare the processing efficiency evaluation values of each second candidate node;
[0192] Determine the second candidate node with the largest processing efficiency evaluation value as the second computing node for running the task container.
[0193] It should be understood that the computer device 8000 described in the embodiments of the present application can execute the description of the scheduling processing method in the corresponding embodiments mentioned above, which will not be elaborated here. In addition, the description of the beneficial effects of adopting the same method will not be elaborated either. Figure 6 In addition, it should be noted here that: The embodiments of the present application also provide a computer-readable storage medium, and the above computer-readable storage medium stores a computer program executed by the computer device 8000 for data processing mentioned above. The above computer program includes program instructions. When the above processor executes the above program instructions, it can execute the above-mentioned
[0194] Moreover, it should be pointed out here that: The embodiments of the present application also provide a computer-readable storage medium, and the above computer-readable storage medium stores a computer program executed by the computer device 8000 for data processing mentioned above. The above computer program includes program instructions. When the above processor executes the above program instructions, it can execute the above-mentioned Figure 6The description of the above scheduling processing method in the corresponding embodiment will not be repeated here. In addition, the description of the beneficial effects of using the same method will not be repeated. For the technical details not disclosed in the computer-readable storage medium embodiment involved in this application, please refer to the description of the method embodiment of this application.
[0195] The above computer-readable storage medium may be an internal storage unit of the aforementioned computer device, such as the hard disk or memory of the computer device. The computer-readable storage medium may also be an external storage device of the computer device, such as a plug-in hard disk, a smart media card (SMC), a secure digital (SD) card, a flash card, etc. equipped on the computer device. Further, the computer-readable storage medium may also include both the internal storage unit and the external storage device of the computer device. The computer-readable storage medium is used to store the computer program and other programs and data required by the computer device. The computer-readable storage medium may also be used to temporarily store the data that has been output or will be output.
[0196] In one aspect of this application, a computer program product is provided. The computer program product includes a computer program, and the computer program is stored in a computer-readable storage medium. The processor of the computer device reads the computer program from the computer-readable storage medium, and the processor executes the computer program, so that the computer device executes the method provided in one aspect of the embodiment of this application.
[0197] The terms "first", "second", etc. in the description, claims and drawings of the embodiments of this application are used to distinguish different objects, rather than to describe a specific order. In addition, the term "including" and any variations thereof are intended to cover non-exclusive inclusion. For example, a process, method, device, product or equipment that includes a series of steps or units is not limited to the listed steps or modules, but optionally further includes steps or modules not listed, or optionally further includes other step units inherent to these processes, methods, devices, products or equipment.
[0198] The above disclosure is only for the preferred embodiments of this application, and of course cannot be used to limit the scope of rights of this application. Therefore, equivalent changes made according to the claims of this application still fall within the scope covered by this application.
Claims
1. A service processing system, characterized in that, The business processing system includes an access layer, a scheduling layer, and a physical layer; the access layer contains M shard structures, and each shard structure includes an access component and a storage component; the scheduling layer includes a scheduling component; the physical layer includes at least one computing node; M is an integer greater than 1; The access component in the access layer is used to create at least one container for processing the data service in response to a received service processing request for the data service, and store the configuration data of the container in the storage component of the shard structure to which the access component belongs; The scheduling component in the scheduling layer is used to determine a target computing node for running the container from the at least one computing node when it monitors that the container is created; The target computing node is used to run the container based on the configuration data to process the data service.
2. The container orchestration system according to claim 1, wherein The scheduling layer further includes a synchronization component, and communication connections are established between the synchronization component and each shard structure in the access layer, and communication connections are established between the synchronization component and any computing node in the physical layer; one of the M shard structures is a primary shard structure; The synchronization component is used to obtain the configuration data of the container from the storage component in the access layer, synchronize the configuration data of the container to the target computing node, and feedback the running status data of the container on the target computing node to the access component in the primary shard structure; The access component in the primary shard structure is used to store the running status data of the container in the storage component of the primary shard structure.
3. The business data processing system according to claim 2, wherein Among the M shard structures, there are also M - 1 secondary shard structures; The access component in the primary shard structure is used to create a service container in response to the received service processing request, and the service container is used to split the data service into at least one demand task; The access components in the M - 1 secondary shard structures are used to create task containers for executing the demand tasks when receiving container creation requests for the demand tasks.
4. The service data processing system according to claim 3, wherein, The scheduling component in the scheduling layer determines a first computing node for running the service container for the service container; The synchronization component in the scheduling layer is further used to select a target secondary shard structure for executing the demand task for the service container from the M - 1 secondary shard structures, and set the task access address of the service container as the component address of the access component in the target secondary shard structure; The first computing node is further used to send a container creation request for the demand task to the access component in the target secondary shard structure based on the task access address of the service container; Among them, the storage capacity of the storage component in the selected target secondary shard structure is greater than the storage capacity of the storage components in the unselected secondary shard structures.
5. The service data processing system according to claim 4, wherein The scheduling component in the scheduling layer determines a second computing node for running the task container for the task container created by the access component in the target secondary shard structure; Among them, the second computing node is different from the first computing node, and the evaluation processing speed of the second computing node is faster than that of the unselected computing nodes.
6. The business data processing system according to claim 2, wherein The access component in the main shard structure is further configured to, in response to a status query request for the container received, obtain the running status data of the container from the storage component of the main shard structure, and return the running status data of the container to the query object, where the query object refers to the object that sends the status query request.
7. The service data processing system according to claim 2, wherein Among the M shard structures, there are also M - 1 secondary shard structures; The synchronization component is further configured to, when the component detection period arrives, detect the remaining storage capacity of the storage component of each secondary shard structure, and output a capacity warning message for the M - 1 secondary shard structures when the ratio between the number of saturated shard structures and the total number of the M - 1 secondary shard structures is greater than the ratio threshold; The saturated shard structure refers to a secondary shard structure whose remaining storage capacity of the storage component is less than the capacity threshold.
8. A scheduling processing method, which is applied to a service processing system. The service processing system includes an access layer, a scheduling layer, and a physical layer; the access layer contains M sharding structures, and each sharding structure includes an access component and a storage component; the scheduling layer includes a scheduling component; The physical layer includes at least one computing node; M is an integer greater than 1; The method is executed by a scheduling component in the scheduling layer; the method includes: Obtain at least one container monitored and created by an access component in the access layer in response to a service processing request, where the at least one container is used to process the data service requested by the service processing request; Determine a target computing node for running the container from at least one computing node in the physical layer; Schedule the target computing node to run the container based on the configuration data of the container stored in the storage component in the access layer to process the data service.
9. The method according to claim 8, wherein The M shard structures include a main shard structure, the at least one container includes a service container created by an access component in the main shard structure, and the target computing node includes a first computing node determined for the service container; The determining a target computing node for running the container from at least one computing node in the physical layer includes: Obtain the configuration data of the service container from the storage component of the main shard structure; Determine the required resource amount of the service container according to the configuration data of the service container; Obtain the resource capacity of each computing node in at least one computing node of the container orchestration system; According to the resource capacity of each computing node and the required resource amount of the service container, determine Q first candidate nodes in the at least one computing node whose resource capacity is greater than the required resource amount of the service container; Q is an integer; Select a first computing node for running the service container from the Q first candidate nodes.
10. The method according to claim 9, wherein The selecting a first computing node for running the service container from the Q first candidate nodes includes: Obtain the running data of each first candidate node in the Q first candidate nodes; Based on the running data of each first candidate node, perform a performance evaluation and analysis on the performance of each first candidate node to obtain a performance evaluation value of each first candidate node; Obtain the maximum performance evaluation value among the Q performance evaluation values, and determine the first candidate node indicated by the maximum performance evaluation value as the first computing node for running the service container.
11. The method according to claim 8, wherein The M sharding structures include M - 1 sub-sharding structures. The at least one container includes a task container created by any access component in the M - 1 sub-sharding structures for executing the demand tasks for the data service. The demand tasks refer to the tasks that need to be executed to complete the data service. The target computing node includes the second computing node determined for the task container. Determining the target computing node for running the container from at least one computing node in the physical layer includes: Obtain the computing nodes that run the service container among the at least one computing node. The service container is a container used to split the data service into at least one of the demand tasks. Determine each computing node among the at least one computing node except the computing node that runs the service container as the second candidate node. Select a second computing node for running the task container from each of the second candidate nodes.
12. The method according to claim 11, wherein Selecting a second computing node for running the task container from each of the second candidate nodes includes: Obtain the processing efficiency evaluation value of each of the second candidate nodes. Compare the processing efficiency evaluation values of each of the second candidate nodes. Determine the second candidate node with the maximum processing efficiency evaluation value as the second computing node for running the task container.
13. A computer device, characterized in that, Includes: A processor, a memory, and a network interface; The processor is connected to the memory and the network interface. Among them, the network interface is used to provide network communication functions, the memory is used to store computer programs, and the processor is used to call the computer programs so that the computer device executes the method according to any one of claims 8 - 12.
14. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, and the computer program is suitable for being loaded and executed by the processor to execute the method according to any one of claims 8 - 12.
15. A computer program product, characterized in that, The computer program product includes a computer program. The computer program is stored in a computer-readable storage medium, and the computer program is suitable for being read and executed by the processor so that a computer device having the processor executes the method according to any one of claims 8 - 12.