Server determination method and device, equipment and medium

By obtaining the candidate server sequence and client list, and determining the target server subsequence for each client based on the number of servers configured and the sorting strategy, the problem of unbalanced server load is solved, server configuration and task execution efficiency are optimized, and system performance and user experience are improved.

CN122053600APending Publication Date: 2026-05-15NETSUNION CLEARING CORP
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
NETSUNION CLEARING CORP
Filing Date
2024-11-15
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

In existing technologies, there is a problem of load imbalance among multiple servers, which causes some servers to be configured to serve clients far more often than the remaining servers, resulting in abnormal load imbalance.

Method used

By obtaining the candidate server sequence and client list, and based on the number of servers configured and the sorting strategy, the target server subsequence for each client is determined, and the target execution server capable of executing the task is selected from it, thus avoiding clients being configured to the same server and optimizing the server configuration method.

Benefits of technology

It reduces the probability of load imbalance between servers, optimizes server configuration, improves task execution efficiency and system performance, and enhances user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122053600A_ABST
    Figure CN122053600A_ABST
Patent Text Reader

Abstract

The invention provides a server determination method and device, equipment and a medium. The method comprises the steps that a first candidate server sequence of a first configuration round and the server configuration number of the first candidate server sequence are acquired; obtaining a candidate client set, and obtaining a first client list of the candidate client set in the first configuration round; according to the server configuration number, first target server subsequences of all first clients in the first client list are obtained from the first candidate server sequence, and servers included in the first target server subsequences of all the first clients are different; and for any first client, obtaining a to-be-executed first task of the first client, and determining a first target execution server of the first task from the first target server sub-sequence. The occurrence probability of the abnormal condition of load imbalance among the servers is reduced, the server configuration method and the configuration effect are optimized, and the task execution efficiency of the servers is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of data processing technology, and in particular to a method, apparatus, device, and medium for determining a server. Background Technology

[0002] With the development of technology, clients can perform related tasks through servers configured for them. In this scenario, server configuration can be performed for the front-end client from multiple back-end servers. In related technologies, a server can be randomly selected from multiple back-end servers as the server configured for the client.

[0003] In this scenario, some servers may be configured to be used by clients far more often than the remaining servers, leading to an imbalance in load among the servers.

[0004] Therefore, how to achieve load balancing among multiple servers is a problem that needs to be solved. Summary of the Invention

[0005] The purpose of this application is to at least partially solve one of the technical problems in the aforementioned technologies.

[0006] A first aspect of this application provides a method for determining a server, comprising: obtaining a first candidate server sequence for a first configuration round and a number of server configurations in the first candidate server sequence; obtaining a candidate client set and a first client list of the candidate client set in the first configuration round; obtaining a first target server subsequence for each first client in the first client list from the first candidate server sequence according to the number of server configurations, wherein the first target server subsequence for each first client includes different servers; for any first client, obtaining a first task to be executed for the first client and determining a first target execution server for the first task from the first target server subsequence.

[0007] The method for determining a server provided in the first aspect of this application also has the following technical features, including:

[0008] According to one embodiment of this application, the step of obtaining a first target server subsequence for each first client in the first client list from the first candidate server sequence based on the number of server configurations, wherein the servers included in the first target server subsequence for each first client are different, includes: obtaining a first order of each first client in the first client list; performing subset partitioning on the first candidate server sequence based on the number of server configurations to obtain a plurality of partitioned first candidate server subsequences; obtaining a second order of the plurality of first candidate server subsequences; and obtaining a first target server subsequence for each first client from the plurality of first candidate server subsequences based on the first order and the second order.

[0009] According to one embodiment of this application, obtaining the first target server subsequence of each first client from the plurality of first candidate server subsequences according to the first sorting and the second sorting includes: for any first client, obtaining the first sorting position of the first client in the first client list according to the first sorting; obtaining the second sorting position that matches the first sorting position from the second sorting; and determining the first candidate server subsequence located at the second sorting position in the plurality of first candidate server subsequences as the first target server subsequence of the first client.

[0010] According to one embodiment of this application, the step of obtaining the first task to be executed by the first client for any first client and determining the first target execution server of the first task from the first target server subsequence includes: obtaining the task configuration status of each first target server in each first target server subsequence under the first configuration round; and for any first target server, in response to the task configuration status indicating that the first target server is not configured, determining the first target server as the first target execution server of the first task under the first configuration round.

[0011] According to one embodiment of this application, obtaining the first candidate server sequence of the first configuration round includes: obtaining the second candidate server sequence of the previous second configuration round of the first configuration round, and obtaining the server sorting strategy of the first configuration round;

[0012] The second candidate server sequence is reordered according to the server sorting strategy to obtain the first candidate server sequence for the first configuration round.

[0013] According to one embodiment of this application, after obtaining the first task to be executed for any first client and determining the first target execution server of the first task from the first target server subsequence for any first client, the process includes: obtaining a list of second clients of the candidate client set in the next third configuration round of the first configuration round, and obtaining a third candidate server sequence of the third configuration round, so as to obtain a second target server subsequence for each second client in the second client list according to the third candidate server sequence; and obtaining the second task to be executed for any second client and determining the second target execution server of the second task from the second target server subsequence of the second client.

[0014] A second aspect of this application provides a server determination apparatus, comprising: a first acquisition module, configured to acquire a first candidate server sequence in a first configuration round and a number of server configurations in the first candidate server sequence; a second acquisition module, configured to acquire a candidate client set and acquire a first client list of the candidate client set in the first configuration round; a third acquisition module, configured to acquire a first target server subsequence for each first client in the first client list from the first candidate server sequence according to the number of server configurations, wherein the first target server subsequence for each first client includes different servers; and a determination module, configured to acquire a first task to be executed for any first client and determine a first target execution server for the first task from the first target server subsequence.

[0015] The second aspect of this application provides a server determining device, which further comprises the following technical features:

[0016] According to one embodiment of this application, the third acquisition module is further configured to: acquire a first sorting of each first client in the first client list; perform subset division on the first candidate server sequence based on the number of server configurations to obtain a plurality of first candidate server subsequences after division; acquire a second sorting of the plurality of first candidate server subsequences; and acquire a first target server subsequence of each first client from the plurality of first candidate server subsequences according to the first sorting and the second sorting.

[0017] According to one embodiment of this application, the third acquisition module is further configured to: for any first client, acquire a first sorting position of the first client in the first client list according to the first sorting; acquire a second sorting position matching the first sorting position from the second sorting; and determine the first candidate server subsequence located at the second sorting position among the plurality of first candidate server subsequences as the first target server subsequence of the first client.

[0018] According to one embodiment of this application, the determining module is further configured to: obtain the task configuration status of each first target server in each first target server subsequence under the first configuration round; and for any first target server, in response to the task configuration status indicating that the first target server is not configured, determine the first target server as the first target execution server of the first task under the first configuration round.

[0019] According to one embodiment of this application, the first acquisition module is further configured to: acquire a second candidate server sequence of the previous second configuration round of the first configuration round, and acquire a server sorting strategy of the first configuration round; reorder the second candidate server sequence according to the server sorting strategy to obtain the first candidate server sequence of the first configuration round.

[0020] According to one embodiment of this application, the determining module is further configured to: obtain a list of second clients of the candidate client set in the next third configuration round of the first configuration round, and obtain a third candidate server sequence of the third configuration round, so as to obtain a second target server subsequence of each second client in the second client list according to the third candidate server sequence; for any second client, obtain a second task to be executed by the second client, and determine a second target execution server of the second task from the second target server subsequence of the second client.

[0021] A third aspect of this application provides an electronic device, including: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, the instructions being executed by the at least one processor to enable the at least one processor to perform the server determination method provided in the first aspect of this application.

[0022] A fourth aspect of this application provides a non-transitory computer-readable storage medium storing computer instructions for causing the computer to execute the server determination method provided in the first aspect of this application.

[0023] A fifth aspect of this application provides a computer program product that, when executed by an instruction processor, performs the server determination method provided in the first aspect of this application.

[0024] The server determination method and apparatus provided in this application include obtaining a first candidate server sequence and a number of server configurations for a first configuration round, obtaining a first client list for a candidate client set in the first configuration round, and obtaining a first target server subsequence for each first client from the first candidate server sequence according to the number of server configurations, so as to obtain a first target execution server for a first task of the first client from the first target server subsequence. In this application, obtaining a first target server subsequence for the first client list from the first candidate server sequence based on the number of server configurations, and then obtaining the first target execution server for the first task from the first target server subsequence, avoids the abnormal situation where all first clients are configured to the same server, reduces the probability of load imbalance between servers, optimizes the server configuration method and configuration effect, improves the server's task execution efficiency, optimizes system performance, and improves user experience.

[0025] Additional aspects and advantages of this application will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of this application. Attached Figure Description

[0026] The above and / or additional aspects and advantages of this application will become apparent and readily understood from the following description of the embodiments taken in conjunction with the accompanying drawings, wherein:

[0027] Figure 1 This is a flowchart illustrating a method for determining a server according to an embodiment of this application;

[0028] Figure 2 This is a flowchart illustrating a method for determining a server according to another embodiment of this application;

[0029] Figure 3 This is a schematic diagram of the structure of a server determination device according to an embodiment of this application;

[0030] Figure 4 This is a block diagram of an electronic device according to an embodiment of this application. Detailed Implementation

[0031] The embodiments of this application are described in detail below. Examples of these embodiments are shown in the accompanying drawings, wherein the same or similar reference numerals denote the same or similar elements or elements having the same or similar functions throughout. The embodiments described below with reference to the accompanying drawings are exemplary and intended to explain this application, and should not be construed as limiting this application.

[0032] The following description, with reference to the accompanying drawings, describes a method, apparatus, device, and medium for determining a server according to embodiments of this application.

[0033] Figure 1 This is a flowchart illustrating a method for determining a server according to an embodiment of this application, as shown below. Figure 1 As shown, the method includes:

[0034] S101, obtain the first candidate server sequence of the first configuration round and the number of server configurations in the first candidate server sequence.

[0035] In this embodiment of the application, the client has a task to be executed. In this scenario, a corresponding server can be configured for the client so that the task can be executed by configuring the server.

[0036] Optionally, the current round in which the server is configured for the client can be marked as the first configuration round, and the server to be configured in the first configuration round can be marked as the first candidate server, thereby obtaining a first candidate server sequence composed of multiple first candidate servers.

[0037] For any client to be configured, there is a corresponding number of server configurations for that client. This number can be marked as the number of server configurations in the first candidate server sequence. This can be understood as, for any client, server configuration can be performed for that client from multiple first candidate servers under this number.

[0038] S102, obtain the candidate client set, and obtain the first client list of the candidate client set in the first configuration round.

[0039] In this embodiment of the application, clients that require server configuration can be marked as candidate clients, and the set of all candidate clients that require server configuration can be marked as the candidate client set.

[0040] Optionally, when configuring the server for each candidate client in the candidate client set, the server can be configured based on multiple configuration rounds. In this scenario, the client in the candidate client set that is configured for the server in the first configuration round can be marked as the first client, thereby obtaining the first client list of the candidate client set in the first configuration round.

[0041] As an example, let's define the candidate client set as client 1, client 2, ..., client 11 and client 12. Let's assume that client 1, client 2 and client 3 are configured in the first configuration round. In this example, client 1, client 2 and client 3 are the first clients in the candidate client set in the first configuration round, and the list consisting of client 1, client 2 and client 3 is marked as the first client list.

[0042] S103, based on the number of servers configured, obtain the first target server subsequence of each first client in the first client list from the first candidate server sequence, wherein the first target server subsequence of each first client includes different servers.

[0043] In this embodiment of the application, the number of servers can be selected from the first candidate server sequence. For any first client, multiple first candidate servers of that number can be obtained from the first candidate server sequence, and the sequence composed of the multiple first candidate servers is marked as the first target server subsequence of the first client, thereby obtaining the first target server subsequence of each first client.

[0044] As an example, the first candidate server sequence is set as (first candidate server 0, first candidate server 6, first candidate server 3, first candidate server 5, first candidate server 1, first candidate server 7, first candidate server 11, first candidate server 9, first candidate server 2, first candidate server 4, first candidate server 8, first candidate server 10), where the number of servers configured is 3, and the first client list includes [first client 0, first client 1, first client 2, first client 3].

[0045] In this example, for the first client 0, three first candidate servers (first candidate server 1, first candidate server 7, and first candidate server 11) can be obtained from the first candidate server sequence as the first target server subsequence for the first client 0.

[0046] Furthermore, for the first client 1, three first candidate servers (first candidate server 4, first candidate server 8, and first candidate server 10) can be obtained from the first candidate server sequence as the first target server subsequence of the first client 1.

[0047] It should be noted that the servers included in the first target server subsequence of each first client are different.

[0048] Based on the above example, we set up to obtain the first target server subsequence of each of the four first clients [first client 0, first client 1, first client 2, first client 3] from (first candidate server 0, first candidate server 6, first candidate server 3, first candidate server 5, first candidate server 1, first candidate server 7, first candidate server 11, first candidate server 9, first candidate server 2, first candidate server 4, first candidate server 8, first candidate server 10).

[0049] Therefore, the first target server subsequence of the first client 0 includes (first candidate server 0, first candidate server 6, first candidate server 3);

[0050] The first target server subsequence of the first client 1 includes (first candidate server 5, first candidate server 1, first candidate server 7);

[0051] The first target server subsequence of the first client 2 includes (first candidate server 11, first candidate server 9, first candidate server 2);

[0052] The first target server subsequence of the first client 3 includes (first candidate server 4, first candidate server 8, first candidate server 10).

[0053] S104, for any first client, obtain the first task to be executed by the first client, and determine the first target execution server of the first task from the first target server subsequence.

[0054] In this embodiment of the application, after obtaining the first target server subsequence of each first client, for any first client, the server can be configured for the first client from the first target server subsequence of that first client.

[0055] Optionally, the task currently to be executed by the first client can be obtained and marked as the first task to be executed by the first client.

[0056] Furthermore, the ability of each server in the first target server subsequence to perform the first task is evaluated and identified, and then the server that can perform the first task is selected from the first target server subsequence and marked as the first target execution server of the first task.

[0057] As an example, based on the above example, it can be seen that the first target execution server subsequence of the first client 1 includes the first candidate server 4, the first candidate server 8, and the first candidate server 10. Therefore, it is possible to identify and evaluate whether the first candidate server 4, the first candidate server 8, and the first candidate server 10 can each execute the first task.

[0058] Specifically, when the first candidate server 10 is identified as capable of executing the first task, the first candidate server 10 can be determined as the first target execution server for the first task.

[0059] The server determination method proposed in this application involves obtaining a first candidate server sequence and the number of server configurations for a first configuration round, obtaining a first client list for a candidate client set in the first configuration round, and obtaining a first target server subsequence for each first client from the first candidate server sequence based on the number of server configurations. This method, by obtaining the first target server subsequence for the first client list from the first candidate server sequence based on the number of server configurations, and then obtaining the first target execution server for the first task from the first target server subsequence, avoids the abnormal situation where all first clients are configured to the same server, reduces the probability of load imbalance between servers, optimizes the server configuration method and effect, improves server task execution efficiency, optimizes system performance, and enhances user experience.

[0060] In the above embodiments, the determination of the server can also be combined with Figure 2 To understand further, Figure 2 This is a flowchart illustrating a method for determining a server according to another embodiment of this application, as shown below. Figure 2 As shown, the method includes:

[0061] S201, Obtain the first candidate server sequence for the first configuration round.

[0062] Optionally, the second candidate server sequence of the previous second configuration round of the first configuration round is obtained, and the server sorting strategy of the first configuration round is obtained. The second candidate server sequence is then reordered according to the server sorting strategy to obtain the first candidate server sequence of the first configuration round.

[0063] In this embodiment of the application, each client in the candidate client set can configure the server based on multiple configuration rounds, wherein the previous configuration round of the current first configuration round can be marked as the second configuration round.

[0064] Optionally, the ordering order of servers in the first candidate server sequence may differ from that in the second candidate server sequence.

[0065] In this scenario, the second candidate server sequence for the second configuration round can be obtained, and each server in the second candidate server sequence can be reordered. The reordered server sequence is then marked as the first candidate server sequence for the first configuration round.

[0066] Optionally, a preset server sorting strategy can be obtained and marked as the server sorting strategy for the first configuration round, and the second candidate server sequence can be reordered according to the server sorting strategy to obtain the first candidate server sequence.

[0067] The server sorting strategy can be a random sorting strategy or other sorting strategies; no specific restrictions are made here.

[0068] As an example, the second candidate server sequence for setting the second configuration round includes (server 0, server 6, server 3, server 5, server 1, server 7, server 11, server 9, server 2, server 4, server 8, server 10).

[0069] In this example, the second candidate server sequence can be reordered based on a preset server sorting strategy to obtain the first candidate server sequence for the first configuration round (server 2, server 10, server 1, server 0, server 7, server 11, server 8, server 5, server 3, server 9, server 4, server 6).

[0070] S202, based on the number of servers configured, obtain the first target server subsequence of each first client in the first client list from the first candidate server sequence, wherein the first target server subsequence of each first client includes different servers.

[0071] Optionally, obtain the first sorting of each first client in the first client list.

[0072] In this embodiment of the application, there is a set sorting order among the first clients in the first client list, and this sorting order can be determined as the first sorting of the first clients in the first client list.

[0073] Optionally, the first candidate server sequence can be subsetted based on the number of server configurations to obtain multiple first candidate server subsequences.

[0074] In this embodiment of the application, the same number of first candidate servers as the number of servers configured can be obtained from the first candidate server sequence, and the sequence composed of this number of first candidate servers is marked as the first candidate server subsequence.

[0075] As an example, the first candidate server sequence is set to include (server 2, server 10, server 1, server 0, server 7, server 11, server 8, server 5, server 3, server 9, server 4, server 6), and the number of server configurations is set to 3.

[0076] In this example, the first candidate server sequence can be subsetted according to the number of servers configured, resulting in multiple first candidate server subsequences consisting of first candidate server subsequence 1 (server 2, server 10, server 1), first candidate server subsequence 2 (server 0, server 7, server 11), first candidate server subsequence 3 (server 8, server 5, server 3), and first candidate server subsequence 4 (server 9, server 4, server 6).

[0077] Optionally, a second sorting of multiple first candidate server subsequences can be obtained.

[0078] In this embodiment of the application, there is a set arrangement order among the multiple first candidate server subsequences, and this arrangement order can be marked as a second sorting among the multiple first candidate server subsequences.

[0079] The second sorting can be determined based on the sorting position of multiple first candidate server subsequences in the first candidate server sequence, or it can be determined based on a preset subsequence sorting strategy.

[0080] As an example, based on the above example, it can be seen that the positional relationship of the first candidate server subsequence 1 (server 2, server 10, server 1), the first candidate server subsequence 2 (server 0, server 7, server 11), the first candidate server subsequence 3 (server 8, server 5, server 3), and the first candidate server subsequence 4 (server 9, server 4, server 6) in the first candidate server sequence (server 2, server 10, server 1, server 0, server 7, server 11, server 8, server 5, server 3, server 9, server 4, server 6) is first candidate server subsequence 1-first candidate server subsequence 2-first candidate server subsequence 3-first candidate server subsequence 4. Therefore, this sorting can be marked as the second sorting among the first candidate server subsequence 1, first candidate server subsequence 2, first candidate server subsequence 3, and first candidate server subsequence 4.

[0081] As another example, if we set a strategy of random sorting among multiple first candidate server subsequences, then we can randomly sort the first candidate server subsequence 1 (server 2, server 10, server 1), the first candidate server subsequence 2 (server 0, server 7, server 11), the first candidate server subsequence 3 (server 8, server 5, server 3), and the first candidate server subsequence 4 (server 9, server 4, server 6) to obtain the first candidate server subsequence 2-first candidate server subsequence 3-first candidate server subsequence 1-first candidate server subsequence 4. This sorting order can be marked as the second sorting among the first candidate server subsequence 1, first candidate server subsequence 2, first candidate server subsequence 3, and first candidate server subsequence 4.

[0082] Optionally, based on the first sorting and the second sorting, the first target server subsequence of each first client is obtained from multiple first candidate server subsequences.

[0083] In this embodiment of the application, the first sorting and the second sorting can be analyzed and compared in terms of their order, and then the first target server subsequence of each first client can be obtained from the multiple first candidate server subsequences based on the results of the analysis and comparison.

[0084] Optionally, for any first client, the first sorting position of the first client in the first client list is obtained according to the first sorting.

[0085] In this embodiment of the application, for any first client, the position of the first client in the first client list can be determined according to the first sorting, and the position is marked as the first sorting position of the first client.

[0086] As an example, let the first client list be (first client 4, first client 5, first client 6 and first client 7). In this example, the first order among the first clients is first client 4-first client 5-first client 6-first client 7.

[0087] In this example, for the first client 6, it can be determined that the first client 6 is the third position in the list of first clients, so the third position can be marked as the first sorting position of the first client 6.

[0088] Optionally, from the second sorting, a second sorting position matching the first sorting position is obtained, and the first candidate server subsequence located at the second sorting position among the multiple first candidate server subsequences is determined as the first target server subsequence of the first client.

[0089] In this embodiment of the application, the position that matches the first sorting position in the second sorting among multiple first candidate server subsequences can be marked as the second sorting position.

[0090] Specifically, the second sorting position can be obtained from the second sorting position that is the same as the first sorting position, or the mapping position of the first sorting position can be obtained from the second sorting position based on a preset mapping relationship.

[0091] Furthermore, the first candidate server subsequence located at the second sorting position can be obtained from multiple first candidate server subsequences and used as the first target server subsequence of the first client.

[0092] As an example, as can be seen from the above example, the first sorting position corresponding to the first client 6 is the third position. The sequence in the second sorting position of the third position in the first candidate server subsequence 1 (server 2, server 10, server 1), the first candidate server subsequence 2 (server 0, server 7, server 11), the first candidate server subsequence 3 (server 8, server 5, server 3), and the first candidate server subsequence 4 (server 9, server 4, server 6) is the first candidate server subsequence 3 (server 8, server 5, server 3).

[0093] In this example, the first candidate server subsequence 3 (server 8, server 5, server 3) is the first target server subsequence of the first client 6.

[0094] S203, for any first client, obtain the first task to be executed by the first client, and determine the first target execution server of the first task from the first target server subsequence.

[0095] Optionally, the task configuration status of each first target server in each first target server subsequence under the first configuration round can be obtained.

[0096] In this embodiment of the application, each server in the first target server subsequence can be marked as the first target server.

[0097] To achieve load balancing among multiple servers, the relevant status information of the task configuration of each first target server in the first target server subsequence can be obtained, thereby obtaining the task configuration status of each first target server in the current first configuration round.

[0098] The task configuration status may include whether each first target server has configured a task to be executed, and the relevant task information of the configured task to be executed, etc., without specific limitations here.

[0099] Optionally, for any first target server, in response to a task configuration status indicating that the first target server is not configured, the first target server is determined as the first target execution server of the first task in the first configuration round.

[0100] In this embodiment of the application, for any first target server in the first target server subsequence, when the task configuration status of the first target server indicates that the first target server is not configured, it can be understood that the first target server has not yet configured the first task to be executed in the first configuration round. In this scenario, the first target server can be used as the first target execution server of the first task in the first configuration round.

[0101] It should be noted that, in this embodiment of the application, after obtaining the first target execution server of each first client, it can be determined that the server configuration of the first configuration round has ended. In this scenario, the server configuration of the next configuration round can continue.

[0102] Optionally, the candidate client set is obtained as a second client list in the next third configuration round after the first configuration round, and a third candidate server sequence in the third configuration round is obtained, so as to obtain a second target server subsequence for each second client in the second client list based on the third candidate server sequence.

[0103] In this embodiment of the application, the next configuration round after the first configuration round can be marked as the third configuration round. After the server configuration of the first configuration round is completed, the server configuration under the third configuration round can begin.

[0104] In this scenario, the candidate clients that need server configuration in the third configuration round can be marked as second clients, thus obtaining a list of second clients consisting of multiple second clients.

[0105] Optionally, a sequence of candidate servers that can be configured in the third configuration round can also be obtained and marked as the third candidate server sequence of the third configuration round.

[0106] In this scenario, the third candidate server sequence can be subsetted based on the preset number of server configurations to obtain the server subsequences of each second client, and marked as the second target server subsequences of each second client.

[0107] It should be noted that the specific process of obtaining the second target server subsequence for each second client can be understood in conjunction with the process of obtaining the first target server subsequence for each first client described above, and will not be repeated here.

[0108] Optionally, for any second client, obtain the second task to be executed by the second client, and determine the second target execution server of the second task from the second target server subsequence of the second client.

[0109] In this embodiment of the application, the tasks to be executed by each second client in the second client list can be marked as the second tasks of each second client.

[0110] Optionally, for any second client, the task configuration status of each second target server in the second target server subsequence of that second client can be obtained, thereby determining the second target execution server of the second task from the second target server subsequence.

[0111] It should be noted that the specific process of obtaining the second target execution server of the second task from the second target server subsequence of the second client can be understood in conjunction with the specific process of obtaining the first target execution server of the first task from the first target server subsequence of the first client in the above embodiments, and will not be repeated here.

[0112] To better understand the above embodiments, the following examples can be used as a reference:

[0113] The client list for the first configuration round includes (client 0, client 1, client 2, first client 3), and the candidate server sequence for the first configuration round includes (server 0, server 6, server 3, server 5, server 1, server 7, server 11, server 9, server 2, server 4, server 8, server 10).

[0114] In the first configuration round, the target server subsequence for each client can be as follows:

[0115] The target server subsequence for client 0 is (server 0, server 6, server 3);

[0116] The target server subsequence for client 1 is (server 5, server 1, server 7);

[0117] The target server subsequence for client 2 is (server 11, server 9, server 2);

[0118] The target server subsequence for client 3 is (server 4, server 8, server 10).

[0119] In addition, the client list for the second configuration round includes (client 4, client 5, client 6, client 7), and the candidate server sequence for the second configuration round includes (server 2, server 10, server 1, server 0, server 7, server 11, server 8, server 5, server 3, server 9, server 4, server 6).

[0120] In the second configuration round, the target server subsequence for each client can be as follows:

[0121] The target server subsequence for client 4 is (server 2, server 10, server 1);

[0122] The target server subsequence for client 5 is (server 0, server 7, server 11);

[0123] The target server subsequence for client 6 is (server 8, server 5, server 3);

[0124] The target server subsequence for client 7 is (server 9, server 4, server 6).

[0125] In addition, the client list for the third configuration round includes (client 8, client 9), and the candidate server sequence for the second configuration round includes (server 3, server 0, server 5, server 1, server 10, server 7, server 11, server 8, server 9, server 2, server 4, server 6).

[0126] In the third configuration round, the target server subsequence for each client can be as follows:

[0127] The target server subsequence for client 8 is (server 3, server 0, server 5);

[0128] The target server subsequence for client 9 is (server 1, server 10, server 7).

[0129] In addition, the servers that have not been assigned to clients include (Server 11, Server 8, Server 9, Server 2, Server 4, Server 6).

[0130] The server determination method proposed in this application involves obtaining a first candidate server sequence and the number of server configurations for a first configuration round, obtaining a first client list for a candidate client set in the first configuration round, and obtaining a first target server subsequence for each first client from the first candidate server sequence based on the number of server configurations. This method, by obtaining the first target server subsequence for the first client list from the first candidate server sequence based on the number of server configurations, and then obtaining the first target execution server for the first task from the first target server subsequence, avoids the abnormal situation where all first clients are configured to the same server, reduces the probability of load imbalance between servers, optimizes the server configuration method and effect, improves server task execution efficiency, optimizes system performance, and enhances user experience.

[0131] Corresponding to the server determination methods proposed in the above embodiments, one embodiment of this application also proposes a server determination device. Since the server determination device proposed in this application corresponds to the server determination methods proposed in the above embodiments, the implementation methods of the above server determination methods are also applicable to the server determination device proposed in this application, and will not be described in detail in the following embodiments.

[0132] Figure 3 This is a schematic diagram of the structure of a server determining device according to an embodiment of this application, as shown below. Figure 3 As shown, the server determining device 300 includes a first acquisition module 31, a second acquisition module 32, a third acquisition module 33, and a determining module 34, wherein:

[0133] The first acquisition module 31 is used to acquire the first candidate server sequence of the first configuration round and the number of server configurations in the first candidate server sequence;

[0134] The second acquisition module 32 is used to acquire a candidate client set and acquire a first client list of the candidate client set in the first configuration round;

[0135] The third acquisition module 33 is used to acquire the first target server subsequence of each first client in the first client list from the first candidate server sequence according to the number of servers configured, wherein the first target server subsequence of each first client includes different servers;

[0136] The determination module 34 is used to obtain the first task to be executed by the first client for any first client, and determine the first target execution server of the first task from the first target server subsequence.

[0137] In this embodiment of the application, the third acquisition module 33 is further configured to: acquire the first sorting of each first client in the first client list; divide the first candidate server sequence into subsets based on the number of server configurations to obtain multiple first candidate server subsequences after division; acquire the second sorting of the multiple first candidate server subsequences; and acquire the first target server subsequence of each first client from the multiple first candidate server subsequences according to the first sorting and the second sorting.

[0138] In this embodiment of the application, the third acquisition module 33 is further configured to: for any first client, according to the first sorting, acquire the first sorting position of the first client in the first client list; acquire the second sorting position that matches the first sorting position from the second sorting; and determine the first candidate server subsequence located at the second sorting position among the multiple first candidate server subsequences as the first target server subsequence of the first client.

[0139] In this embodiment of the application, the determining module 34 is further configured to: obtain the task configuration status of each first target server in each first target server subsequence under the first configuration round; and for any first target server, in response to the task configuration status indicating that the first target server is not configured, determine the first target server as the first target execution server of the first task under the first configuration round.

[0140] In this embodiment of the application, the first acquisition module 31 is further configured to: acquire the second candidate server sequence of the previous second configuration round of the first configuration round, and acquire the server sorting strategy of the first configuration round; reorder the second candidate server sequence according to the server sorting strategy to obtain the first candidate server sequence of the first configuration round.

[0141] In this embodiment of the application, the determining module 34 is further configured to: obtain a list of second clients in the next third configuration round of the candidate client set in the first configuration round, and obtain a third candidate server sequence in the third configuration round, so as to obtain a second target server subsequence for each second client in the second client list according to the third candidate server sequence; for any second client, obtain a second task to be executed for the second client, and determine the second target execution server of the second task from the second target server subsequence of the second client.

[0142] The server determination apparatus proposed in this application obtains a first candidate server sequence and a number of server configurations for a first configuration round, obtains a first client list for a candidate client set in the first configuration round, and, based on the number of server configurations, obtains a first target server subsequence for each first client from the first candidate server sequence, thereby obtaining a first target execution server for a first task of the first client from the first target server subsequence. In this application, by obtaining a first target server subsequence for the first client list from the first candidate server sequence based on the number of server configurations, and then obtaining the first target execution server for the first task from the first target server subsequence, this avoids the abnormal situation where all first clients are configured to the same server, reduces the probability of load imbalance between servers, optimizes the server configuration method and configuration effect, improves the server's task execution efficiency, optimizes system performance, and enhances user experience.

[0143] To achieve the above embodiments, this application also provides an electronic device, a computer-readable storage medium, and a computer program product.

[0144] Figure 4 This is a block diagram of an electronic device according to an embodiment of this application, such as... Figure 4 As shown, device 400 includes memory 41, processor 42, and a computer program stored in memory 41 and executable on processor 42. When processor 42 executes program instructions, it performs... Figures 1 to 2 The method for determining the server in the embodiment.

[0145] To implement the above embodiments, this application also provides a non-transitory computer-readable storage medium storing computer instructions for causing a computer to execute... Figures 1 to 2 The method for determining the server in the embodiment.

[0146] To implement the above embodiments, this application also provides a computer program product that, when executed by an instruction processor, performs... Figures 1 to 2 The method for determining the server in the embodiment.

[0147] In the description of this specification, the references to terms such as "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., refer to specific features, structures, materials, or characteristics described in connection with that embodiment or example, which are included in at least one embodiment or example of this application. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in one or more embodiments or examples. Moreover, without contradiction, those skilled in the art can combine and integrate the different embodiments or examples described in this specification, as well as the features of different embodiments or examples.

[0148] Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one of that feature. In the description of this application, "multiple" means at least two, such as two, three, etc., unless otherwise explicitly specified.

[0149] Any process or method description in the flowchart or otherwise herein can be understood as representing a module, segment, or portion of code comprising one or more executable instructions for implementing custom logic functions or processes, and the scope of the preferred embodiments of this application includes additional implementations in which functions may be performed not in the order shown or discussed, including substantially simultaneously or in reverse order depending on the functions involved, as should be understood by those skilled in the art to which embodiments of this application pertain.

[0150] The logic and / or steps represented in the flowchart or otherwise described herein, for example, can be considered as a sequenced list of executable instructions for implementing logical functions, and can be embodied in any computer-readable medium for use by, or in conjunction with, an instruction execution system, apparatus, or device (such as a computer-based system, a processor-included system, or other system that can fetch and execute instructions from, an instruction execution system, apparatus, or device). For the purposes of this specification, "computer-readable medium" can be any means that can contain, store, communicate, propagate, or transmit programs for use by, or in conjunction with, an instruction execution system, apparatus, or device. More specific examples (a non-exhaustive list) of computer-readable media include: an electrical connection having one or more wires (electronic device), a portable computer disk drive (magnetic device), random access memory (RAM), read-only memory (ROM), erasable and editable read-only memory (EPROM or flash memory), fiber optic devices, and portable optical disc read-only memory (CDROM). Alternatively, the computer-readable medium may be paper or other suitable media on which the program can be printed, since the program can be obtained electronically, for example, by optically scanning the paper or other medium, followed by editing, interpreting, or otherwise processing as necessary, and then stored in a computer memory.

[0151] It should be understood that various parts of this application can be implemented using hardware, software, firmware, or a combination thereof. In the above embodiments, multiple steps or methods can be implemented using software or firmware stored in memory and executed by a suitable instruction execution system. For example, if implemented in hardware as in another embodiment, it can be implemented using any one or a combination of the following techniques known in the art: discrete logic circuits having logic gates for implementing logical functions on data signals, application-specific integrated circuits (ASICs) having suitable combinational logic gates, programmable gate arrays (PGAs), field-programmable gate arrays (FPGAs), etc.

[0152] Those skilled in the art will understand that all or part of the steps of the methods in the above embodiments can be implemented by a program instructing related hardware. The program can be stored in a computer-readable storage medium, and when executed, the program includes one or a combination of the steps of the method embodiments.

[0153] Furthermore, the functional units in the various embodiments of this application can be integrated into a processing module, or each unit can exist physically separately, or two or more units can be integrated into a module. The integrated module can be implemented in hardware or as a software functional module. If the integrated module is implemented as a software functional module and sold or used as an independent product, it can also be stored in a computer-readable storage medium.

[0154] The storage medium mentioned above can be a read-only memory, a disk, or an optical disk, etc. Although embodiments of this application have been shown and described above, it is understood that the above embodiments are exemplary and should not be construed as limiting this application. Those skilled in the art can make changes, modifications, substitutions, and variations to the above embodiments within the scope of this application.

Claims

1. A method for determining a server, characterized in that, The method includes: Obtain the first candidate server sequence for the first configuration round, and the number of server configurations in the first candidate server sequence; Obtain a set of candidate clients, and obtain a first client list of the candidate client set in the first configuration round; Based on the number of servers configured, a first target server subsequence for each first client in the first client list is obtained from the first candidate server sequence, wherein the first target server subsequence for each first client includes different servers; For any first client, obtain the first task to be executed for the first client, and determine the first target execution server for the first task from the first target server subsequence.

2. The method according to claim 1, characterized in that, The step involves obtaining a first target server subsequence for each first client in the first client list from the first candidate server sequence based on the number of servers configured, wherein the servers included in the first target server subsequence for each first client are different, including: Get the first sorting of each first client in the first client list; Based on the number of server configurations, the first candidate server sequence is divided into subsets to obtain multiple first candidate server subsequences after division. Obtain the second sorting of the plurality of first candidate server subsequences; Based on the first sorting and the second sorting, the first target server subsequence of each first client is obtained from the plurality of first candidate server subsequences.

3. The method according to claim 2, characterized in that, The step of obtaining the first target server subsequence for each first client from the plurality of first candidate server subsequences according to the first sorting and the second sorting includes: For any first client, obtain the first sorting position of the first client in the first client list according to the first sorting. From the second sort, obtain the second sort position that matches the first sort position; The first candidate server subsequence located at the second sorting position among the plurality of first candidate server subsequences is determined as the first target server subsequence of the first client.

4. The method according to claim 1, characterized in that, The step of obtaining the first task to be executed for any first client and determining the first target execution server for the first task from the first target server sub-sequence includes: Obtain the task configuration status of each first target server in each first target server subsequence under the first configuration round; For any first target server, in response to the task configuration status indicating that the first target server is not configured, the first target server is determined as the first target execution server of the first task in the first configuration round.

5. The method according to claim 1, characterized in that, The step of obtaining the first candidate server sequence for the first configuration round includes: Obtain the second candidate server sequence of the previous second configuration round of the first configuration round, and obtain the server sorting strategy of the first configuration round; The second candidate server sequence is reordered according to the server sorting strategy to obtain the first candidate server sequence for the first configuration round.

6. The method according to any one of claims 1-5, characterized in that, After obtaining the first task to be executed for any first client and determining the first target execution server for the first task from the first target server sub-sequence, the process includes: Obtain the second client list of the candidate client set in the next third configuration round of the first configuration round, and obtain the third candidate server sequence of the third configuration round, so as to obtain the second target server subsequence of each second client in the second client list according to the third candidate server sequence; For any second client, obtain the second task to be executed by the second client, and determine the second target execution server of the second task from the second target server subsequence of the second client.

7. A device for determining a server, characterized in that, The device includes: The first acquisition module is used to acquire the first candidate server sequence of the first configuration round and the number of server configurations in the first candidate server sequence; The second acquisition module is used to acquire a set of candidate clients and acquire a first client list of the candidate client set in the first configuration round; The third acquisition module is used to acquire, from the first candidate server sequence, a first target server subsequence for each first client in the first client list, based on the number of servers configured, wherein the first target server subsequence for each first client includes different servers; The determination module is used to, for any first client, obtain the first task to be executed by the first client, and determine the first target execution server of the first task from the first target server subsequence.

8. The apparatus according to claim 7, characterized in that, The third acquisition module is also used for: Get the first sorting of each first client in the first client list; Based on the number of server configurations, the first candidate server sequence is divided into subsets to obtain multiple first candidate server subsequences after division. Obtain the second sorting of the plurality of first candidate server subsequences; Based on the first sorting and the second sorting, the first target server subsequence of each first client is obtained from the plurality of first candidate server subsequences.

9. An electronic device, characterized in that, include: At least one processor; as well as A memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor to enable the at least one processor to perform the method of claims 1-6.

10. A non-transitory computer-readable storage medium storing computer instructions, characterized in that, The computer instructions are used to cause the computer to perform the method described in claims 1-6.