Service interface flow control method and device, equipment, medium and program product
By monitoring the response time and migration request volume, the performance degradation caused by interface bottlenecks in the microservice architecture is solved, interface-level load balancing and response speed improvement are achieved, ensuring system stability and user experience.
Patent Information
- Application Number
- CN202411277985.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-12
- Publication Date
- 2024-12-24
- Estimated Expiration
- 2044-09-12
AI Technical Summary
In the microservice architecture system, a bottleneck occurs in the interface of a certain node, resulting in slower transaction execution speed, limited throughput, and inability to process concurrent requests in time, resulting in a backlog of requests. It is difficult for the existing technology to accurately identify and process this situation, resulting in system performance Descend or unavailable.
By monitoring the response time of the service interface, determine the abnormal interface and migrate its request amount to other normal nodes, dynamically adjust the system resource allocation, avoid performance degradation caused by problems with a single node, realize interface-level load balancing, and improve response speed.
It realizes that without the user's perception, avoiding the risk of abnormal interface failure in advance, ensuring system stability, and handling more business requests within the same time, avoiding transaction failures caused by traditional current limiting, downgrades, and circuit breakers.
Smart Images

Figure CN119182716A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the fields of computer technology and financial technology, and specifically to a service interface flow control method, device, equipment, medium and program product. Background Art
[0002] In a microservice architecture, a complete business transaction usually requires multiple independent microservice nodes to work together to achieve it. These microservice nodes interact with other service nodes through interfaces with specific functions to provide a variety of services to the entire system. Interfaces with different functions correspond to different business capabilities of service nodes. The design and implementation of interfaces directly affect the accessibility and availability of service nodes.
[0003] In the process of implementing the concept of the present disclosure, the inventors discovered the following problems in the related technology: when a bottleneck occurs in an interface of a node in a transaction link, the time for the interface to process requests becomes longer, resulting in a slower execution speed of the entire transaction; and the throughput of the interface is limited, and a large number of concurrent requests may not be processed in a timely manner, resulting in a backlog of requests in the queue. Summary of the invention
[0004] In view of the above problems, the present disclosure provides a service interface flow control method, apparatus, device, medium and program product.
[0005] According to the first aspect of the present disclosure, a service interface traffic control method is provided, comprising: obtaining interface information of each of a plurality of service interfaces having the same function and configured at different service nodes and resource consumption data of each service node, wherein the interface information at least includes a response time and requested data of the service interface; determining an abnormal interface and a normal interface from a plurality of service interfaces according to the response time; determining a target service node from a second service node according to first resource consumption data of a first service node and second resource consumption data of a second service node, wherein the first service node corresponds to the abnormal interface and the second service node corresponds to the normal interface; calculating the allocated traffic to be migrated to each target service node according to the requested data of the abnormal interface and the target resource consumption data of the target service node; and migrating part or all of the requested data on the first service node to the target service node according to the allocated traffic.
[0006] According to an embodiment of the present disclosure, resource consumption data includes at least resource consumption, and a target service node is determined from the second service nodes based on the first resource consumption data of the first service node and the second resource consumption data of the second service node, including: calculating the resource consumption corresponding to each service node based on the resource consumption data; and determining, from the second service nodes, a second resource consumption that is less than or equal to the first threshold as the target service node when an average value of the first resource consumption is greater than a first threshold and the first resource consumption is greater than the second resource consumption.
[0007] According to an embodiment of the present disclosure, the allocated traffic to be migrated to each target service node is calculated based on the requested data of the abnormal interface and the target resource consumption data of the target service node, including: determining the allocation ratio to be migrated to the target service node based on the requested data of the abnormal interface; and calculating the allocated traffic to be migrated to each target service node based on the allocation ratio and the second resource consumption data.
[0008] According to an embodiment of the present disclosure, the allocated traffic to be migrated to each target service node is calculated based on the allocated ratio and the second resource consumption data, including: calculating the resource ratio of each target service node among multiple target service nodes based on the target resource consumption data; determining the allocated traffic to be migrated to each target service node based on the allocated ratio and the resource ratio.
[0009] According to an embodiment of the present disclosure, abnormal interfaces and normal interfaces are determined from multiple service interfaces based on response times, including: based on the response time, a service interface that meets a first predetermined judgment condition is determined as an abnormal interface, and a service interface that does not meet the first predetermined judgment condition is determined as a normal interface, wherein the first predetermined judgment condition includes: under predetermined time conditions, the first response time of the abnormal interface is greater than a second threshold, and the first response time is greater than or equal to the second response time of each normal interface.
[0010] According to an embodiment of the present disclosure, after migrating part or all of the requested data on the first service node to the target service node, the method also includes: monitoring the response time of the abnormal interface; when the abnormal interface has not been restored to a normal interface, recalculating the allocated traffic to be migrated to each target service node; when the abnormal interface is restored to a normal interface, switching part or all of the requested data back to the first service node.
[0011] According to an embodiment of the present disclosure, when the abnormal interface is restored to a normal interface, part or all of the requested data is switched back to the first service node, including: switching part or all of the requested data that has been migrated from the first service node back to the first service node in batches, and generating a switching back result; and determining, based on the switching back result, that the abnormal interface maintains a normal interface state.
[0012] The second aspect of the present disclosure provides a service interface flow control device, including: an acquisition module, used to acquire interface information of each of a plurality of service interfaces configured at different service nodes and having the same function, and resource consumption data of each of the service nodes, wherein the interface information at least includes the response time and requested data of the service interface; a first determination module, used to determine an abnormal interface and a normal interface from a plurality of service interfaces according to the response time; a second determination module, used to determine a target service node from a second service node according to the first resource consumption data of the first service node and the second resource consumption data of the second service node, wherein the first service node corresponds to the abnormal interface, and the second service node corresponds to the normal interface; a first calculation module, used to calculate the allocated flow to be migrated to each target service node according to the requested data of the abnormal interface and the target resource consumption data of the target service node; a migration module, used to migrate part or all of the requested data on the first service node to the target service node according to the allocated flow.
[0013] A third aspect of the present disclosure provides an electronic device, comprising: one or more processors; and a memory for storing one or more computer programs, wherein the one or more processors execute the one or more computer programs to implement the steps of the above method.
[0014] The fourth aspect of the present disclosure further provides a computer-readable storage medium having a computer program or instructions stored thereon, which implements the steps of the above method when the above computer program or instructions are executed by a processor.
[0015] The fifth aspect of the present disclosure further provides a computer program product, including a computer program or instructions, which implement the steps of the above method when the above computer program or instructions are executed by a processor.
[0016] According to the embodiments of the present disclosure, by monitoring the response time of the service interface, the abnormal interface and the service node where it is located can be accurately located. Furthermore, since the time it takes for the abnormal interface to process requests becomes longer, the amount of requests on the abnormal interface is migrated to the target service node where other interfaces that can receive part of the request amount are located, so as to dynamically adjust the allocation of system resources, avoid the performance degradation or unavailability of the entire system due to the problem of a single node, and realize interface-level load balancing while improving the response speed of each interface to meet the needs and experience of users.
[0017] On the other hand, the traditional service interface flow control uses mechanisms such as current limiting, downgrading, and fuses to limit requests, by rejecting part of the request flow that exceeds the threshold, or directly returning these requests without actual processing, so as to ensure that the interface is normal during high concurrency. However, when the number of interface requests increases dramatically, fuses, current limiting, downgrading, and other methods will cause requests that exceed the threshold to be unable to proceed, thereby failing the transaction. In order to avoid the above technical problems, the embodiment of the present disclosure adopts a more flexible and dynamic method. When an abnormality is detected in a certain interface, it does not simply limit the number of requests, but sends instructions to the superior node through the remote call of the RPC framework. Thus, the superior node can quickly transfer part of the requests of the abnormal interface to other normal nodes based on this information. Compared with the restriction and non-processing of requests by traditional mechanisms such as current limiting, downgrading, and fuses, the embodiment of the present disclosure can process more business requests in the same time, while ensuring the stability of the system, and avoiding the risk of abnormal interface failure in advance without the user's perception. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] The above contents and other objects, features and advantages of the present disclosure will become more apparent through the following description of the embodiments of the present disclosure with reference to the accompanying drawings, in which:
[0019] Figure 1 Schematically illustrates an exemplary system architecture that can be applied to the service interface flow control method and apparatus of the present disclosure;
[0020] Figure 2 A flow chart of a service interface flow control method according to an embodiment of the present disclosure is schematically shown;
[0021] Figure 3 The following schematically shows a flow chart of a method for switching back requested data according to an embodiment of the present disclosure;
[0022] Figure 4 The flowchart of the service interface flow control method according to another embodiment of the present disclosure is schematically shown;
[0023] Figure 5 The structure block diagram of the service interface flow control device according to the embodiment of the present disclosure is schematically shown;
[0024] Figure 6 A block diagram of an electronic device suitable for implementing a service interface flow control method according to an embodiment of the present disclosure is schematically shown. DETAILED DESCRIPTION
[0025] Hereinafter, embodiments of the present disclosure will be described with reference to the accompanying drawings. However, it should be understood that these descriptions are exemplary only and are not intended to limit the scope of the present disclosure. In the following detailed description, for ease of explanation, many specific details are set forth to provide a comprehensive understanding of the embodiments of the present disclosure. However, it is apparent that one or more embodiments may also be implemented without these specific details. In addition, in the following description, descriptions of known structures and technologies are omitted to avoid unnecessary confusion of the concepts of the present disclosure.
[0026] The terms used herein are only for describing specific embodiments and are not intended to limit the present disclosure. The terms "comprise", "include", etc. used herein indicate the existence of the features, steps, operations and / or components, but do not exclude the existence or addition of one or more other features, steps, operations or components.
[0027] All terms (including technical and scientific terms) used herein have the meanings commonly understood by those skilled in the art unless otherwise defined. It should be noted that the terms used herein should be interpreted as having a meaning consistent with the context of this specification and should not be interpreted in an idealized or overly rigid manner.
[0028] When using expressions such as "at least one of A, B, and C, etc.", they should generally be interpreted according to the meaning of the expression commonly understood by those skilled in the art (for example, "a system having at least one of A, B, and C" should include but is not limited to a system having A alone, B alone, C alone, A and B, A and C, B and C, and / or A, B, C, etc.).
[0029] In the embodiments of the present disclosure, the user's authorization or consent is obtained before obtaining or collecting the user's personal information.
[0030] The service interface flow control method and device disclosed herein can be used in the fields of computer technology and financial technology, and can also be used in any field other than the fields of computer technology and financial technology. The application field of the service interface flow control method and device disclosed herein is not limited.
[0031] It should be noted that in the embodiments of the present disclosure, certain software, components, models and other existing solutions in the industry may be mentioned, which should be regarded as exemplary. Their purpose is only to illustrate the feasibility of implementing the technical solution of the present disclosure, but it does not mean that the applicant has or will necessarily use the solution.
[0032] In the technical solution of the present disclosure, the user information (including but not limited to user personal information, user image information, user device information, such as location information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved are all information and data authorized by the user or fully authorized by all parties, and the collection, storage, use, processing, transmission, provision, disclosure and application of the relevant data comply with relevant laws, regulations and standards, take necessary confidentiality measures, do not violate public order and good morals, and provide corresponding operation entrances for users to choose to authorize or refuse.
[0033] In the scenario of using personal information for automated decision-making, the methods, devices, and systems provided by the embodiments of the present disclosure provide users with corresponding operation portals for users to choose to agree or reject the automated decision-making results; if the user chooses to reject, the expert decision-making process will be entered. The expression "automated decision-making" here refers to the activity of automatically analyzing and evaluating a person's behavioral habits, interests and hobbies, or economic, health, credit status, etc. through computer programs, and making decisions. The expression "expert decision-making" here refers to the activity of making decisions by people who specialize in a certain field, have specialized experience, knowledge and skills, and have reached a certain level of professionalism.
[0034] In the transaction link, for example, a bottleneck occurs in the interface A of a node 1 during a certain period of time, that is, the resource consumption of the interface during this period is close to or reaches the upper limit it can bear. For example, when the service corresponding to interface A processes a large number of requests, the CPU utilization rate continues to be above 90%, or the memory usage is close to the limit of physical memory, or the network bandwidth is occupied in large quantities, etc., resulting in slower data transmission speed. However, because the system's monitoring and protection mechanism did not detect this problem in time, or the set trigger threshold was high, the interface is still in an available state, and no service degradation or current limiting mechanism is triggered. At the same time, the same interface A on other nodes 2 responds normally, and resource usage is also in normal state.
[0035] Since the bottleneck occurs at interface A of node 1, while the same interface of other nodes is normal, there is a risk that the service interface will become abnormally unavailable when there are idle resources. Due to the locality of the problem and the failure to trigger the protection mechanism, the system cannot accurately identify and handle this situation, making it difficult to manage the service interface in a refined manner. In other words, the system cannot automatically transfer some requests to the same interface of other nodes, or adjust the resource allocation of the interface according to the actual situation to alleviate the bottleneck problem.
[0036] In order to at least partially solve the above technical problems, an embodiment of the present disclosure provides a service interface traffic control method, including: obtaining interface information of each of multiple service interfaces configured on different service nodes and having the same function, and resource consumption data of each service node, wherein the interface information at least includes the response time and requested data of the service interface; determining an abnormal interface and a normal interface from multiple service interfaces according to the response time; determining a target service node from the second service node according to the first resource consumption data of the first service node and the second resource consumption data of the second service node, wherein the first service node corresponds to the abnormal interface and the second service node corresponds to the normal interface; calculating the allocated traffic to be migrated to each target service node according to the requested data of the abnormal interface and the target resource consumption data of the target service node; and migrating part or all of the requested data on the first service node to the target service node according to the allocated traffic.
[0037] Figure 1 The application scenario diagram of service interface flow control according to an embodiment of the present disclosure is schematically shown.
[0038] like Figure 1 As shown, the application scenario 100 according to this embodiment may include terminal devices 101, 102, 103, a network 104, and a server 105. The network 104 is used to provide a medium for communication links between the first terminal device 101, the second terminal device 102, the third terminal device 103, and the server 105. The network 104 may include various connection types, such as wired, wireless communication links, or optical fiber cables, etc.
[0039] The user may use at least one of the first terminal device 101, the second terminal device 102, and the third terminal device 103 to interact with the server 105 through the network 104 to receive or send messages, etc. Various communication client applications may be installed on the first terminal device 101, the second terminal device 102, and the third terminal device 103, such as shopping applications, web browser applications, search applications, instant messaging tools, email clients, social platform software, etc. (only for example).
[0040] The first terminal device 101, the second terminal device 102, and the third terminal device 103 may be various electronic devices having display screens and supporting web browsing, including but not limited to smart phones, tablet computers, laptop computers, desktop computers, and the like.
[0041] The server 105 may be a server that provides various services, such as a background management server (only as an example) that provides support for websites browsed by users using the first terminal device 101, the second terminal device 102, and the third terminal device 103. The background management server may analyze and process the received data such as user requests, and feed back the processing results (such as web pages, information, or data obtained or generated according to user requests) to the terminal device.
[0042] It should be noted that the test data generation method provided in the embodiment of the present disclosure can generally be executed by the server 105. Accordingly, the test data generation device provided in the embodiment of the present disclosure can generally be set in the server 105. The test data generation method provided in the embodiment of the present disclosure can also be executed by a server or server cluster that is different from the server 105 and can communicate with the first terminal device 101, the second terminal device 102, the third terminal device 103 and / or the server 105. Accordingly, the test data generation device provided in the embodiment of the present disclosure can also be set in a server or server cluster that is different from the server 105 and can communicate with the first terminal device 101, the second terminal device 102, the third terminal device 103 and / or the server 105.
[0043] It should be understood that Figure 1 The number of terminal devices, networks and servers in the embodiment is only for illustration. Any number of terminal devices, networks and servers may be provided according to implementation requirements.
[0044] The following will be based on Figure 1 The scene described by Figure 2~Figure 6 The test data generating method of the disclosed embodiment is described in detail.
[0045] Figure 2 The flowchart of the service interface flow control method according to the embodiment of the present disclosure is schematically shown.
[0046] like Figure 2 As shown, the service interface flow control of this embodiment includes operations S210 to S250.
[0047] In operation S210, interface information of each of a plurality of service interfaces configured at different service nodes and having the same function and resource consumption data of each service node are obtained, wherein the interface information at least includes response time and requested data of the service interface.
[0048] According to the embodiments of the present disclosure, the performance, status, resource usage and other aspects of the interface are continuously monitored and evaluated through the full-link application monitoring platform, and the interface information is obtained. Among them, the interface information at least includes the requested data of the interface, the name of the interface at this level, the request path of the interface at this level, the response time of the interface at this level, the Internet Protocol address of the node of the interface at this level (the IP of the node of the interface at this level); the Internet Protocol address of the node at the same level of the interface (the IP of the node at the same level of the interface); the name of the upper-level interface; the Internet Protocol address of the node at the upper level of the interface (the IP of the node at the upper level of the interface).
[0049] According to an embodiment of the present disclosure, resource consumption data of a service node is obtained through a bypass monitoring device, and data indicators include: CPU utilization rate; memory utilization rate; disk IO utilization rate, etc.
[0050] According to an embodiment of the present disclosure, after acquiring the interface information and the resource consumption data, the above information and data are persisted in the storage module in the form of time series data.
[0051] In operation S220, an abnormal interface and a normal interface are determined from a plurality of service interfaces according to the response time.
[0052] According to an embodiment of the present disclosure, before determining the abnormal interface and the normal interface based on the response time, the requested amount in the requested data of the interface and the requested amount threshold can be compared. When the requested amount is greater than the requested amount threshold, the abnormal interface and the normal interface are determined based on the response time.
[0053] According to an embodiment of the present disclosure, one implementation method may be to set a response time threshold, and when the response time of the interface is greater than the response time threshold, determine that the interface is an abnormal interface; when the response time of the interface is less than or equal to the response time threshold, determine that the interface is an abnormal interface.
[0054] According to the embodiments of the present disclosure, an abnormal interface is an interface state in which the response time of the interface becomes longer and the resource consumption increases, but the interface state does not reach the state in which the preset flow limiting, degradation, fuse, etc. mechanisms of the service are triggered. In addition, through the embodiments of the present disclosure, the flow of the interface can be controlled in advance in the abnormal state to avoid triggering the flow limiting, degradation, fuse, etc. mechanisms, which may result in the inability to process requests, thereby reducing the risk of service unavailability and improving service robustness.
[0055] In operation S230, a target service node is determined from the second service nodes according to first resource consumption data of the first service node and second resource consumption data of the second service node, wherein the first service node corresponds to an abnormal interface and the second service node corresponds to a normal interface.
[0056] According to an embodiment of the present disclosure, the service node corresponding to the abnormal interface is the first service node, and the service node corresponding to the normal interface is the second service node. The first service node or the second service node can be one or more. The embodiment of the present disclosure is described by taking a first service node (an abnormal interface) and multiple second service nodes (multiple normal interfaces) as an example.
[0057] According to the embodiment of the present disclosure, the second service node is used to indicate that the state of the interface configured on the service node is normal and does not need to be monitored for abnormalities. However, not all normal interfaces are in an idle state, that is, not all normal interfaces can share the request volume on the abnormal interface.
[0058] According to an embodiment of the present disclosure, the target service node is used to represent an interface that can share part or all of the request volume on the abnormal interface in a normal node, and it can be preliminarily determined that it is in an idle state according to the second resource consumption data. Specifically, one implementation method can be to compare the second resource consumption data with a set resource consumption threshold to determine the target service node.
[0059] In operation S240, the allocated traffic to be migrated to each target service node is calculated according to the requested data of the abnormal interface and the target resource consumption data of the target service node.
[0060] According to the embodiments of the present disclosure, after determining the target service node that can share the request volume on the abnormal interface, it is necessary to determine the size of the request volume that each target service node can receive, that is, to allocate traffic.
[0061] According to the embodiments of the present disclosure, even when there is only one target service node, all the requests to be allocated cannot be directly migrated to one target service node. Instead, it is necessary to determine whether the target service node can receive the requests or the size of the requests that can be received based on the target service resources of the target service node.
[0062] In operation S250, part or all of the requested data on the first service node is migrated to the target service node according to the allocated traffic.
[0063] According to an embodiment of the present disclosure, according to the calculated allocated traffic to be migrated to each target service node, part or all of the requested data on the first service node is migrated to the target service node. Specifically, steps 11 to 13 are included.
[0064] In step 11, the IP address of the interface node at the same level where the abnormal interface is located, the IP address of the target service node, and the IP address of the upper-level interface node are obtained.
[0065] In step 12, an instruction including the abnormal interface node IP, the target service node IP, the allocated traffic, and the interface request path is sent to the superior interface node IP.
[0066] In step 13, after receiving the instruction, the upper interface node IP can make decisions and coordinate according to the information in the instruction.
[0067] For example, the upper interface node IP can determine the specific location of the problem based on the abnormal interface node IP, and then transfer part of the request from the abnormal interface to the target service node based on the target service node IP and the allocated traffic, and ensure that the request can be correctly routed to the corresponding interface of the target service node based on the interface request path. In this way, the interface abnormality problem can be effectively handled without affecting the normal operation of the entire system, thereby improving the reliability and performance of the system.
[0068] According to an embodiment of the present disclosure, instructions are sent to a superior node through a remote procedure call framework (RPC framework).
[0069] According to the embodiments of the present disclosure, by monitoring the response time of the service interface, the abnormal interface and the service node where it is located can be accurately located. Furthermore, since the time it takes for the abnormal interface to process requests becomes longer, the amount of requests on the abnormal interface is migrated to the target service node where other interfaces that can receive part of the request amount are located, so as to dynamically adjust the allocation of system resources, avoid the performance degradation or unavailability of the entire system due to the problem of a single node, and realize interface-level load balancing while improving the response speed of each interface to meet the needs and experience of users.
[0070] On the other hand, the traditional service interface flow control uses mechanisms such as current limiting, downgrading, and fuses to limit requests, by rejecting part of the request flow that exceeds the threshold, or directly returning these requests without actual processing, so as to ensure that the interface is normal during high concurrency. However, when the number of interface requests increases dramatically, fuses, current limiting, downgrading, and other methods will cause requests that exceed the threshold to be unable to proceed, thereby failing the transaction. In order to avoid the above technical problems, the embodiment of the present disclosure adopts a more flexible and dynamic method. When an abnormality is detected in a certain interface, it does not simply limit the number of requests, but sends instructions to the superior node through the remote call of the RPC framework. Thus, the superior node can quickly transfer part of the requests of the abnormal interface to other normal nodes based on this information. Compared with the restriction and non-processing of requests by traditional mechanisms such as current limiting, downgrading, and fuses, the embodiment of the present disclosure can process more business requests in the same time, while ensuring the stability of the system, and avoiding the risk of abnormal interface failure in advance without the user's perception.
[0071] According to an embodiment of the present disclosure, determining an abnormal interface and a normal interface from a plurality of service interfaces according to a response duration includes:
[0072] Based on the response time, the service interface that meets the first predetermined judgment condition is determined as an abnormal interface, and the service interface that does not meet the first predetermined judgment condition is determined as a normal interface, wherein the first predetermined judgment condition includes: under the predetermined time condition, the first response time of the abnormal interface is greater than the second threshold, and the first response time is greater than or equal to the second response time of each normal interface.
[0073] According to an embodiment of the present disclosure, the predetermined time condition may be a predetermined time period or a predetermined time period, etc. The predetermined time period may be a certain continuous fixed time period, for example, the same time period for three consecutive days, and the predetermined period is 3. The predetermined time period or the predetermined time period may be set based on experience, and will not be described in detail again.
[0074] According to an embodiment of the present disclosure, under a predetermined time condition, the first response time of the abnormal interface is greater than the second threshold. Specifically, a time sliding window is used to calculate the response time of each service interface in a continuous time period to determine whether it exceeds the second threshold, referring to formula (1):
[0075] (Tn-Tavg) / Tavg>Pt Formula (1)
[0076] Wherein, Tn is the response time of any interface in the nth time window; Tavg is the average response time of the interface in the nth time window; and Pt is the percentage of the response time higher than the average.
[0077] Specifically, various parameters can be set based on experience. For example, n is set to 10 by default, the length of each window is 1 minute, Pt is set to 300%, and the predetermined time period is 3.
[0078] According to an embodiment of the present disclosure, based on the calculation result of formula (1), a preliminary abnormal interface is determined, and further,
[0079] According to an embodiment of the present disclosure, under a predetermined time condition, the first response duration is greater than or equal to the second response duration of each normal interface. Specifically, refer to formula (2):
[0080] Tp*w1 > Ti Formula (2)
[0081] Among them, Tp is the response time of the preliminary abnormal interface; w1 is the weight of the response time of the preliminary abnormal interface, which is predefined as 50%; Ti is the response time of any interface other than the preliminary abnormal interface.
[0082] According to an embodiment of the present disclosure, based on the calculation result of formula (2), when the response time of the preliminary abnormal node is greater than the response time of the interface on each other node, the preliminary abnormal node is determined to be the final abnormal node.
[0083] According to an embodiment of the present disclosure, the interface response time is calculated by means of a sliding window, so that data can be continuously updated to reflect the latest situation. As time goes by, the window continues to slide forward, incorporating new data and discarding old data, so that changes in interface performance can be captured in a timely manner. For example, if only the average value within a fixed time period is calculated, recent performance fluctuations may be missed. The sliding window can respond to new problems more quickly. By calculating the average value in multiple windows, the impact of individual outliers on the overall evaluation can be reduced, making the evaluation results more stable and reliable.
[0084] According to the embodiments of the present disclosure, the abnormal node is more accurately located through multi-dimensional judgment conditions, so as to determine the abnormal node for which traffic migration is most needed from multiple nodes.
[0085] According to an embodiment of the present disclosure, the resource consumption data at least includes resource consumption, and the target service node is determined from the second service node according to the first resource consumption data of the first service node and the second resource consumption data of the second service node, including steps 21 and 22.
[0086] Step 21: Calculate the resource consumption corresponding to each service node according to the resource consumption data.
[0087] According to an embodiment of the present disclosure, the resource consumption data includes indicators such as CPU usage, memory usage, and disk IO usage. A weight is set for each indicator, and the resource consumption of each service node is calculated using an exponential decay method. Refer to formula (3):
[0088] L=(Lc*w2 + Lm*w3 + Ld*w4)* (a n ) / 100 formula (3)
[0089] Among them, Lc, Lm, and Ld are CPU utilization, memory utilization, and disk IO utilization, respectively, and w2, w3, and w4 are the weights of the above indicators, respectively. Among them, the predefined w2, w3, and w4 are 40%, 40%, and 20%, respectively.
[0090] Step 22, when the average value of the first resource consumption is greater than the first threshold and the first resource consumption is greater than the second resource consumption, determine a second service node whose second resource consumption is less than or equal to the first threshold as a target service node from among the second service nodes.
[0091] According to an embodiment of the present disclosure, within a predetermined time, the average value of the first resource consumption is greater than the first threshold value, referring to formula (4):
[0092] ∑Ln / n > Pl Formula (4)
[0093] Wherein, ∑Ln is the sum of resource consumption of the first service node (the node where the abnormal interface is located) from the 1st cycle to the nth cycle; Pl is the percentage of the sum of node resource consumption higher than the average value.
[0094] According to an embodiment of the present disclosure, within a predetermined time, the first resource consumption is greater than the second resource consumption, referring to formula (5):
[0095] Lp*w5 > Li Formula (5)
[0096] Wherein, Lp is the first resource consumption of the first service node corresponding to the abnormal interface, w5 is the weight corresponding to the first resource consumption, which is predefined as 50%, and Li is the second resource consumption of the second service node corresponding to the normal interface.
[0097] According to an embodiment of the present disclosure, the allocated traffic to be migrated to each target service node is calculated according to the requested data of the abnormal interface and the target resource consumption data of the target service node, including steps 31 and 32.
[0098] Step 31: Determine the allocation ratio to be migrated to the target service node according to the requested data of the abnormal interface.
[0099] For example, if the abnormal interface is requested 1000 times, it can be determined based on experience that 80%, 50% or 30% of the requests are migrated to other target service nodes.
[0100] Step 32, calculating the allocated traffic to be migrated to each target service node according to the allocated proportion and the second resource consumption data, specifically includes steps 311 to 312.
[0101] In step 311, the resource proportion of each target service node among multiple target service nodes is calculated according to the target resource consumption data, referring to formula (6):
[0102] Resource ratio = Lj / ∑LJ Formula (6)
[0103] Wherein, Lj is the resource consumption of any target service node among the target service nodes, and ∑LJ is the sum of the resource consumption of multiple target service nodes.
[0104] In step 312, the proportion of allocated traffic to be migrated to each target service node is determined according to the allocation proportion and the resource proportion, referring to formula (7):
[0105] Offset1 =Lj / ∑LJ*w6 Formula (7)
[0106] Among them, offset1 is used to represent the proportion of allocated traffic to be migrated to each target service node, Lj is the resource consumption of any target service node among the target service nodes, ∑LJ is the sum of the resource consumption of multiple target service nodes, and w6 is the allocation proportion.
[0107] According to an embodiment of the present disclosure, based on the calculation result of formula (7) and the amount of requested data, the requested data that needs to be migrated to the target service node on the first service node is migrated to the target service node.
[0108] According to an embodiment of the present disclosure, the previous service node is notified so that the request sent to the abnormal interface is directly migrated to the target service node according to the allocated traffic at the previous node. The specific method of migrating the request volume to the target service node is not limited in the present disclosure. For example, bytecode enhancement technology can be used to insert code at a specific method call point to intercept the request message, so that the previous node can transfer the traffic originally allocated to the abnormal interface to the interface of the target service node according to information such as node IP and allocated traffic, so as to achieve load balancing of each service interface.
[0109] According to an embodiment of the present disclosure, after migrating part or all of the requested data on the first service node to the target service node, the method further includes steps 41 to 43.
[0110] In step 41, the response time of the abnormal interface is monitored.
[0111] According to an embodiment of the present disclosure, the response time of the abnormal interface is calculated according to formula (1) and formula (2) in the above embodiment within each predetermined time period, and it is re-determined according to the first predetermined judgment condition whether the abnormal interface is still in an abnormal state or has been restored to a normal interface.
[0112] In step 42, when the abnormal interface has not been restored to a normal interface, the allocated traffic to be migrated to each target service node is recalculated.
[0113] According to an embodiment of the present disclosure, according to formula (1) and formula (2) in the above embodiment, the response time of the target service interface is calculated, and according to the first predetermined judgment condition, it is determined that each target service interface is in a normal state to ensure that the target service node receiving the migration request volume is normal.
[0114] In step 43 , when the abnormal interface is restored to a normal interface, part or all of the requested data is switched back to the first service node, including steps 431 to 432 .
[0115] In step 431, part or all of the requested data that has been migrated from the first service node is switched back to the first service node in batches, and a switching result is generated;
[0116] In step 432, according to the switchback result, it is determined that the abnormal interface maintains a normal interface state.
[0117] Figure 3 A flow chart of a method for switching back requested data according to an embodiment of the present disclosure is schematically shown.
[0118] like Figure 3 As shown, in a predefined time period, if it is determined that the abnormal interface has been restored to a normal interface for several consecutive periods, part or all of the requested data is switched back to the first service node, referring to formula (8):
[0119] Offset2 =Lj / ∑LJ*w7 Formula (8)
[0120] Among them, offset2 is used to represent the total proportion of the switchback traffic that will be allocated to the first service node, and w7 is the proportion of the switchback traffic that needs to be switched back each time.
[0121] According to the embodiment of the present disclosure, the sum of the current switchback ratios should be equal to the switchback ratio, that is, the total switchback ratio is equal to the allocation ratio. Exemplarily, if the predefined allocation ratio is 50%, the switchback ratio can be determined according to the number of switchbacks, or the number of switchbacks can be determined according to the switchback ratio. For example, the switchback can be set to 3 times, with each switchback ratio being 30%, 10%, and 10%.
[0122] According to an embodiment of the present disclosure, after each re-switching, the response time of the abnormal interface is recalculated according to formula (1) and formula (2), and it is re-determined according to the first predetermined judgment condition whether the abnormal interface is still in an abnormal state or has been restored to a normal interface.
[0123] Figure 4 The flowchart of the service interface flow control method according to another embodiment of the present disclosure is schematically shown.
[0124] like Figure 4 As shown, the service interface flow control method specifically includes operations S410 to S430.
[0125] In operation S410, the response time of any service interface is calculated;
[0126] In operation S420, when the service interface response time is longer than the second threshold, it is determined whether the abnormal node interface response time exceeds a certain proportion of the normal node, and at the same time, operation S430 is performed to calculate the first resource consumption of the first service node corresponding to the preliminary abnormal interface;
[0127] In operation S431, if the first resource consumption is greater than the first threshold, operation S432 is performed to determine whether the first resource consumption exceeds the second resource consumption by a certain percentage. If so, operation S422 is performed.
[0128] In operation S421, when the response time of the abnormal node interface exceeds a certain proportion of the normal node, the preliminary abnormal interface is determined as an abnormal interface;
[0129] In operation S422, the requested data on the abnormal interface is migrated;
[0130] In operation S423, traffic switching is performed on the migrated requested data.
[0131] Based on the above service interface flow control method, the present disclosure also provides a service interface flow control device. Figure 5 The device is described in detail.
[0132] Figure 5 The structural block diagram of the service interface flow control device according to an embodiment of the present disclosure is schematically shown.
[0133] like Figure 5 As shown, the service interface traffic control device 500 of this embodiment includes an acquisition module 510 , a first determination module 520 , a second determination module 530 , a first calculation module 540 and a migration module 550 .
[0134] An acquisition module is used to obtain the interface information of each of a plurality of service interfaces having the same function and configured at different service nodes, and the resource consumption data of each of the service nodes, wherein the interface information at least includes the response time and requested data of the service interface; a first determination module is used to determine an abnormal interface and a normal interface from a plurality of service interfaces according to the response time; a second determination module is used to determine a target service node from a second service node according to the first resource consumption data of the first service node and the second resource consumption data of the second service node, wherein the first service node corresponds to the abnormal interface and the second service node corresponds to the normal interface; a first calculation module is used to calculate the allocated traffic to be migrated to each target service node according to the requested data of the abnormal interface and the target resource consumption data of the target service node; a migration module is used to migrate part or all of the requested data on the first service node to the target service node according to the allocated traffic.
[0135] According to an embodiment of the present disclosure, the resource consumption data at least includes the resource consumption amount, and the second determination module includes: a first calculation submodule and a first determination submodule.
[0136] The first calculation submodule is used to calculate the resource consumption corresponding to each service node based on the resource consumption data; the first determination submodule is used to determine the second service node whose second resource consumption is less than or equal to the first threshold as the target service node from the second service nodes when the average value of the first resource consumption is greater than the first threshold and the first resource consumption is greater than the second resource consumption.
[0137] According to an embodiment of the present disclosure, the first calculation module includes: a second determination submodule and a second calculation submodule.
[0138] The second determination submodule is used to determine the allocation ratio to be migrated to the target service node according to the requested data of the abnormal interface; the second calculation submodule is used to calculate the allocation flow to be migrated to each target service node according to the allocation ratio and the second resource consumption data.
[0139] According to an embodiment of the present disclosure, the second calculation submodule includes: a calculation unit and a determination unit.
[0140] The calculation unit is used to calculate the resource proportion of each target service node among multiple target service nodes according to the target resource consumption data; the determination unit is used to determine the allocated traffic to be migrated to each target service node according to the allocation proportion and the resource proportion.
[0141] According to an embodiment of the present disclosure, the first determination module includes: a third determination submodule.
[0142] The third determination submodule is used to determine, based on the response time, a service interface that meets the first predetermined judgment condition as an abnormal interface, and a service interface that does not meet the first predetermined judgment condition as a normal interface, wherein the first predetermined judgment condition includes: under the predetermined time condition, the first response time of the abnormal interface is greater than the second threshold, and the first response time is greater than or equal to the second response time of each normal interface.
[0143] According to an embodiment of the present disclosure, after the migration module migrates part or all of the requested data on the first service node to the target service node, the device further includes: a monitoring module, a second computing module and a traffic switching module.
[0144] A monitoring module is used to monitor the response time of the abnormal interface; a second calculation module is used to recalculate the allocated traffic to be migrated to each target service node when the abnormal interface has not been restored to a normal interface; a traffic switching module is used to switch part or all of the requested data back to the first service node when the abnormal interface is restored to a normal interface.
[0145] According to an embodiment of the present disclosure, the traffic switching back module includes: a switching back submodule and a fourth determining submodule.
[0146] The switching back submodule is used to switch back part or all of the requested data that has been migrated from the first service node to the first service node in batches and generate a switching back result; the fourth determination submodule is used to determine whether the abnormal interface maintains a normal interface state based on the switching back result.
[0147] According to an embodiment of the present disclosure, any multiple modules among the acquisition module 510, the first determination module 520, the second determination module 530, the first calculation module 540 and the migration module 550 can be combined into one module for implementation, or any one of the modules can be split into multiple modules. Alternatively, at least part of the functions of one or more of these modules can be combined with at least part of the functions of other modules and implemented in one module. According to an embodiment of the present disclosure, at least one of the acquisition module 510, the first determination module 520, the second determination module 530, the first calculation module 540 and the migration module 550 can be at least partially implemented as a hardware circuit, such as a field programmable gate array (FPGA), a programmable logic array (PLA), a system on a chip, a system on a substrate, a system on a package, an application specific integrated circuit (ASIC), or can be implemented by hardware or firmware such as any other reasonable way of integrating or packaging the circuit, or implemented in any one of the three implementation methods of software, hardware and firmware or in a suitable combination of any of them. Alternatively, at least one of the acquisition module 510, the first determination module 520, the second determination module 530, the first calculation module 540 and the migration module 550 may be at least partially implemented as a computer program module, which may perform corresponding functions when executed.
[0148] Figure 6 A block diagram of an electronic device suitable for implementing a service interface flow control method according to an embodiment of the present disclosure is schematically shown.
[0149] like Figure 6 As shown, the electronic device 600 according to an embodiment of the present disclosure includes a processor 601, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 602 or a program loaded from a storage part 608 to a random access memory (RAM) 603. The processor 601 may include, for example, a general-purpose microprocessor (e.g., a CPU), an instruction set processor and / or a related chipset and / or a dedicated microprocessor (e.g., an application-specific integrated circuit (ASIC)), etc. The processor 601 may also include an onboard memory for caching purposes. The processor 601 may include a single processing unit or multiple processing units for performing different actions of the method flow according to an embodiment of the present disclosure.
[0150] In RAM603, various programs and data required for the operation of electronic device 600 are stored. Processor 601, ROM602 and RAM603 are connected to each other via bus 604. Processor 601 performs various operations of the method flow according to the embodiment of the present disclosure by executing the program in ROM602 and / or RAM603. It should be noted that the program can also be stored in one or more memories other than ROM602 and RAM603. Processor 601 can also perform various operations of the method flow according to the embodiment of the present disclosure by executing the program stored in the one or more memories.
[0151] According to an embodiment of the present disclosure, the electronic device 600 may further include an input / output (I / O) interface 605, which is also connected to the bus 604. The electronic device 600 may further include one or more of the following components connected to the input / output (I / O) interface 605: an input portion 606 including a keyboard, a mouse, etc.; an output portion 607 including a cathode ray tube (CRT), a liquid crystal display (LCD), etc., and a speaker, etc.; a storage portion 608 including a hard disk, etc.; and a communication portion 609 including a network interface card such as a LAN card, a modem, etc. The communication portion 609 performs communication processing via a network such as the Internet. A drive 610 is also connected to the input / output (I / O) interface 605 as needed. A removable medium 611, such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc., is installed on the drive 610 as needed, so that a computer program read therefrom is installed into the storage portion 608 as needed.
[0152] The present disclosure also provides a computer-readable storage medium, which may be included in the device / apparatus / system described in the above embodiments; or may exist independently without being assembled into the device / apparatus / system. The above computer-readable storage medium carries one or more programs, and when the above one or more programs are executed, the method according to the embodiment of the present disclosure is implemented.
[0153] According to an embodiment of the present disclosure, a computer-readable storage medium may be a non-volatile computer-readable storage medium, for example, may include but is not limited to: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof. In the present disclosure, a computer-readable storage medium may be any tangible medium containing or storing a program, which may be used by or in combination with an instruction execution system, an apparatus or a device. For example, according to an embodiment of the present disclosure, a computer-readable storage medium may include the ROM602 and / or RAM603 described above and / or one or more memories other than ROM602 and RAM603.
[0154] The embodiment of the present disclosure also includes a computer program product, which includes a computer program, and the computer program contains program code for executing the method shown in the flowchart. When the computer program product is run in a computer system, the program code is used to enable the computer system to implement the service interface flow control method provided by the embodiment of the present disclosure.
[0155] The above functions defined in the system / device of the embodiment of the present disclosure are performed when the computer program is executed by the processor 601. According to the embodiment of the present disclosure, the system, device, module, unit, etc. described above can be implemented by a computer program module.
[0156] In one embodiment, the computer program may rely on tangible storage media such as optical storage devices, magnetic storage devices, etc. In another embodiment, the computer program may also be transmitted and distributed in the form of signals on a network medium, and downloaded and installed through the communication part 609, and / or installed from a removable medium 611. The program code contained in the computer program may be transmitted using any appropriate network medium, including but not limited to: wireless, wired, etc., or any suitable combination of the above.
[0157] In such an embodiment, the computer program can be downloaded and installed from the network through the communication part 609, and / or installed from the removable medium 611. When the computer program is executed by the processor 601, the above functions defined in the system of the embodiment of the present disclosure are performed. According to the embodiment of the present disclosure, the system, device, apparatus, module, unit, etc. described above can be implemented by a computer program module.
[0158] According to an embodiment of the present disclosure, the program code for executing the computer program provided by the embodiment of the present disclosure can be written in any combination of one or more programming languages. Specifically, these computing programs can be implemented using high-level process and / or object-oriented programming languages, and / or assembly / machine languages. Programming languages include, but are not limited to, Java, C++, python, "C" language or similar programming languages. The program code can be executed entirely on the user computing device, partially on the user device, partially on the remote computing device, or entirely on the remote computing device or server. In the case of a remote computing device, the remote computing device can be connected to the user computing device through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computing device (for example, using an Internet service provider to connect through the Internet).
[0159] The flow charts and block diagrams in the accompanying drawings illustrate the possible architecture, functions and operations of the systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each box in the flow chart or block diagram can represent a module, a program segment, or a part of a code, and the above-mentioned module, program segment, or a part of a code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram or flow chart, and the combination of the boxes in the block diagram or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0160] It will be appreciated by those skilled in the art that the features described in the various embodiments of the present disclosure may be combined and / or combined in a variety of ways, even if such combinations or combinations are not explicitly described in the present disclosure. In particular, without departing from the spirit and teachings of the present disclosure, the features described in the various embodiments of the present disclosure may be combined and / or combined in a variety of ways. All of these combinations and / or combinations fall within the scope of the present disclosure.
[0161] The embodiments of the present disclosure are described above. However, these embodiments are only for illustrative purposes and are not intended to limit the scope of the present disclosure. Although the embodiments are described above, this does not mean that the measures in the various embodiments cannot be used in combination to advantage. Without departing from the scope of the present disclosure, those skilled in the art may make a variety of substitutions and modifications, which should all fall within the scope of the present disclosure.
Claims
1. A service interface flow control method, characterized in that: The method comprises: Acquire interface information of each of a plurality of service interfaces having the same function and configured at different service nodes and resource consumption data of each of the service nodes, wherein the interface information at least includes response time and requested data of the service interface; Determining an abnormal interface and a normal interface from the plurality of service interfaces according to the response time; Determine a target service node from the second service node according to first resource consumption data of the first service node and second resource consumption data of the second service node, wherein the first service node corresponds to the abnormal interface and the second service node corresponds to the normal interface; Calculating the allocated traffic to be migrated to each of the target service nodes according to the requested data of the abnormal interface and the target resource consumption data of the target service node; According to the allocated traffic, part or all of the requested data on the first service node is migrated to the target service node.
2. The method according to claim 1, characterized in that The resource consumption data at least includes resource consumption, and determining a target service node from the second service node according to the first resource consumption data of the first service node and the second resource consumption data of the second service node includes: Calculating resource consumption corresponding to each service node according to the resource consumption data; When the average value of the first resource consumption is greater than a first threshold and the first resource consumption is greater than the second resource consumption, a second service node whose second resource consumption is less than or equal to the first threshold is determined as a target service node from among the second service nodes.
3. The method according to claim 1, characterized in that Calculating the allocated traffic to be migrated to each of the target service nodes according to the requested data of the abnormal interface and the target resource consumption data of the target service node, including: Determine, according to the requested data of the abnormal interface, the allocation ratio to be migrated to the target service node; The allocated traffic to be migrated to each of the target service nodes is calculated according to the allocated proportion and the second resource consumption data.
4. The method according to claim 3, characterized in that Calculating the allocated traffic to be migrated to each of the target service nodes according to the allocated proportion and the second resource consumption data, including: Calculating the resource proportion of each target service node among the multiple target service nodes according to the target resource consumption data; The allocated traffic to be migrated to each of the target service nodes is determined according to the allocated proportion and the resource proportion.
5. The method according to claim 1, characterized in that: Determining an abnormal interface and a normal interface from the plurality of service interfaces according to the response time includes: According to the response time, the service interface that meets the first predetermined judgment condition is determined as the abnormal interface, and the service interface that does not meet the first predetermined judgment condition is determined as the normal interface, The first predetermined judgment condition includes: under a predetermined time condition, the first response time of the abnormal interface is greater than a second threshold, and the first response time is greater than or equal to the second response time of each of the normal interfaces.
6. The method according to any one of claims 1 to 5, after migrating part or all of the requested data on the first service node to the target service node, the method further comprises: Monitoring the response time of the abnormal interface; When the abnormal interface fails to recover to the normal interface, recalculating the allocated traffic to be migrated to each of the target service nodes; When the abnormal interface is restored to the normal interface, part or all of the requested data is switched back to the first service node.
7. The method according to claim 6, characterized in that When the abnormal interface is restored to the normal interface, switching back part or all of the requested data to the first service node includes: Switching back part or all of the requested data that has been migrated from the first service node to the first service node in batches, and generating a switchback result; According to the switchback result, it is determined that the abnormal interface maintains a normal interface state.
8. A service interface flow control device, characterized in that: The device comprises: An acquisition module, used to acquire interface information of each of a plurality of service interfaces having the same function configured at different service nodes and resource consumption data of each of the service nodes, wherein the interface information at least includes the response time and requested data of the service interface; A first determining module, configured to determine an abnormal interface and a normal interface from the plurality of service interfaces according to the response duration; A second determining module, configured to determine a target service node from the second service node according to first resource consumption data of the first service node and second resource consumption data of the second service node, wherein the first service node corresponds to the abnormal interface and the second service node corresponds to the normal interface; A first calculation module, configured to calculate the allocated traffic to be migrated to each of the target service nodes according to the requested data of the abnormal interface and the target resource consumption data of the target service node; A migration module is used to migrate part or all of the requested data on the first service node to the target service node according to the allocated traffic.
9. An electronic device, comprising: one or more processors; a memory for storing one or more computer programs, It is characterized in that the one or more processors execute the one or more computer programs to implement the steps of the method according to any one of claims 1 to 7.
10. A computer-readable storage medium having a computer program or instruction stored thereon, characterized in that: When the computer program or instruction is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.
11. A computer program product comprising a computer program or instructions, characterized in that When the computer program or instruction is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.
Citation Information
Patent Citations
Flow control method and video monitoring system
CN106059945A
Inter-cluster service migration method and device
CN111444008A
Micro-service network state detection method and device and electronic equipment
CN112039723A
Server interface calling index monitoring statistical method and system
CN115426414A
Service data node migration method and device, electronic equipment and storage medium
CN117389725A
Cited By
Resource management method and device, equipment, medium and program product
CN119718684A
Resource management method and apparatus, and device, medium and program product
WO2026179812A1
