WO2021147304A1 - 一种基于异步应答的传输数据的方法及系统 - Google Patents
一种基于异步应答的传输数据的方法及系统 Download PDFInfo
- Publication number
- WO2021147304A1 WO2021147304A1 PCT/CN2020/109083 CN2020109083W WO2021147304A1 WO 2021147304 A1 WO2021147304 A1 WO 2021147304A1 CN 2020109083 W CN2020109083 W CN 2020109083W WO 2021147304 A1 WO2021147304 A1 WO 2021147304A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- flow rate
- data
- loading
- rate
- module
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
Definitions
- the present invention relates to the field of data transmission, in particular to a method and system for transmitting data based on asynchronous response.
- an ETL (Extract-Transform-Load) system that can extract data, transform the format of the data, and load the data to the data destination is usually used. Since the ETL system needs to run frequently occurring tasks (for example, processing batch data) in a fixed cycle and the ETL system does not require high real-time data, it is difficult to use the traditional ETL system in scenarios that require high real-time data.
- a commonly used method of adjusting the flow rate is to use the system load of the data transmission system as a hard indicator for adjustment. For example, when the system load is higher than a certain threshold, the flow rate is prohibited or reduced, and when the system load starts to decrease, the flow rate is restored.
- Another commonly used method of adjusting the flow rate is the adaptive current limiting protection method. This method uses the system load of the data transmission system as the starting value of the controlled flow rate, and is determined by the current request response time of the data transmission system and the processing request rate. Determine the current allowable flow rate, so as to increase the flow rate without the data transmission system being worn down, rather than having to go below a certain threshold.
- the asynchronous response mode can also be used, that is, the module responsible for data loading in the data transmission system only sends the data to the downstream data destination without waiting for the specific loading result.
- the data transmission system can pass another The module processes the execution results of data loading. In other words, the data loaded in a cycle may not be able to know whether the data is successfully loaded in the current cycle.
- the first method mentioned above takes the system load of the data transmission system as a hard indicator, and data transmission is not allowed if the system load exceeds the system load, thus limiting the processing capacity of the data transmission system and the data destination.
- the data transmission volume of the data transmission system is reduced; in addition, when the downstream data destination fails or expands and other events that affect the processing capacity, this method cannot detect and adjust the flow rate in time, which may result in idle or large data transmission systems. Abnormal situations such as loss of bulk data.
- the method adjusts the flow rate according to the processing capacity of the data transmission system, and cannot dynamically control the flow rate according to the processing capacity of the downstream data destination. It is not applicable to the data destination.
- the processing capacity is weaker than that of the data transmission system. Ability situation.
- An aspect of the present invention provides a method for transmitting data based on an asynchronous response, including: extracting step: extracting and storing the data from a first data terminal in a period; flow rate adjusting step: based on the previous period of the period The loading result fed back by the second data terminal in the cycle and the first flow rate at which the data was transmitted in the previous cycle determine the second flow rate at which the data is transmitted in the cycle; and the loading step: in the cycle Load the data to the second data terminal according to the second flow rate.
- Another aspect of the present invention provides a method for transmitting data based on an asynchronous response, including: an extracting step: extracting first data from a first data terminal in a cycle, and storing the first data in a first queue; Flow rate adjustment step: determining to transmit the data in the cycle based on the first loading result fed back by the second data terminal in the previous cycle of the cycle and the first flow rate at which the data was transmitted in the previous cycle And the loading step: load the first data in the first queue and the second data in the second queue to the second data terminal in the cycle according to the second flow rate .
- Another aspect of the present invention provides a system for transmitting data based on an asynchronous response, including: a data extraction module for extracting and storing the data from a first data terminal in a cycle; and a flow rate adjusting module for Determining the second flow rate for transmitting the data in the period based on the loading result fed back by the second data terminal in the previous period of the period and the first flow rate for transmitting the data in the previous period; And a data loading module, which is used to load the data to the second data terminal according to the second flow rate in the cycle.
- Another aspect of the present invention provides a system for transmitting data based on an asynchronous response, including: a data extraction module, which is used to extract first data from a first data terminal in a cycle, and store the first data in the first data In a queue; a flow rate adjustment module, which is used to determine the location based on the first loading result fed back by the second data terminal in the previous cycle of the cycle and the first flow rate at which the data was transmitted in the previous cycle The second flow rate for transmitting the data in the period; and a data loading module configured to combine the first data in the first queue and the data in the second queue according to the second flow rate in the period The second data is loaded into the second data terminal.
- a data extraction module which is used to extract first data from a first data terminal in a cycle, and store the first data in the first data In a queue
- a flow rate adjustment module which is used to determine the location based on the first loading result fed back by the second data terminal in the previous cycle of the cycle and the first flow rate at which the data was transmitted
- Another aspect of the present invention provides a computer-readable medium having computer-readable instructions stored thereon, and the computer-readable instructions can execute the method according to the embodiments of the present invention when the computer-readable instructions are executed by a computer.
- the embodiment of the present invention can automatically adjust the flow rate of the data transmission system according to the feedback loading result in the case of asynchronous response, thereby improving the data transmission as much as possible under the precondition of ensuring that the data destination is not overwhelmed and reducing data loss.
- System throughput can automatically adjust the flow rate of the data transmission system according to the feedback loading result in the case of asynchronous response, thereby improving the data transmission as much as possible under the precondition of ensuring that the data destination is not overwhelmed and reducing data loss.
- Fig. 1 shows a schematic diagram of a data transmission system according to an embodiment of the present invention.
- Fig. 2 shows a flowchart of a method for extracting data according to an embodiment of the present invention.
- Fig. 3 shows a sequence diagram of a method for loading data according to an embodiment of the present invention.
- Fig. 4 shows a timing diagram of a method for adjusting a flow rate according to an embodiment of the present invention.
- Fig. 5 shows a flowchart of a method for processing abnormal data according to an embodiment of the present invention.
- Fig. 1 shows a schematic diagram of a data transmission system according to an embodiment of the present invention.
- the system includes five modules: a data extraction module, a data loading module, an asynchronous response processing module, a timing scan module, and a flow rate adjustment module.
- the system also includes a data queue to be loaded, a data queue to be reloaded, and a data map to be confirmed.
- the data extraction module can extract data from the data source, convert the format of the data and store it in the data queue to be loaded, and wait if the queue is full.
- one piece of data can represent one piece of business, and the size of each piece of data can be different.
- the data loading module can take out the data from the data queue to be loaded, and judge whether the data can be loaded to the data destination through the flow rate adjustment module.
- the data loading module may also include a normal data loading module and a failed data loading module, which are respectively used to load the data in the data queue to be loaded and the data queue to be reloaded. Every time data is loaded, the data loading module can simultaneously store the data in the to-be-confirmed data Map.
- the data map to be confirmed is a data storage structure that can be used to temporarily store data dumped from the data loading module.
- the Key field in the data map to be confirmed stores the identity of the data
- the Value field stores the value of the data.
- the asynchronous response processing module can process the processing result fed back by the data destination (ie, the loading result of the loaded data, the result is success or failure), and count the amount of successful or failed data. For data whose processing result is successful, the asynchronous response processing module can directly delete the data from the to-be-confirmed data Map. For the data whose processing result is a failure, the asynchronous response processing module can send the failed data from the data map to be confirmed to the data queue to be reloaded to be loaded by the data loading module. If the number of failures to load certain data exceeds the predetermined number (ie, the upper limit of the number of reloads), the data is discarded.
- the predetermined number ie, the upper limit of the number of reloads
- the timing scanning module can count the data that has not received the processing result of the data destination after a certain period of time by scanning the to-be-confirmed data map (that is, the timeout data that has not received the response), and send the data from the to-be-confirmed data map to the Load data queue.
- the timing scan module can also calculate the statistical data loading success rate in the current cycle by scanning the processing results from the data destination saved in the asynchronous response processing module, and send the success rate to the flow rate adjustment module.
- the flow rate adjustment module can achieve flow rate control by adjusting the TPS (Transaction Per Second, the transaction volume per second, such as the number of transactions processed per second) of the data transmission system.
- TPS Transaction Per Second
- the TPS value the flow rate of the data transmission system according to the success rate of data loading in the current cycle, so as to realize the flow rate adjustment of the system.
- FIG 2 shows the data extraction method that can be used by the data extraction module. As shown in Figure 2, the method includes the following steps:
- the data extraction module extracts data from the data source and converts the data in a unified format
- step (3) If the queue to be loaded is not full at this time, store the converted format data directly into it, and then continue to perform step (1), otherwise perform step (3);
- step (1) If the queue to be loaded is full at this time, the number of transmission failures is accumulated for the current data. If the number of transmission failures does not exceed the upper limit of the number of transmission failures, the data extraction module will sleep for a predetermined time and re-execute step (2), otherwise it will The data is discarded, and step (1) is executed again.
- Fig. 3 shows a sequence diagram of a method of loading data that can be used by the data loading module.
- the data loading module can obtain data in the converted format from the data queue to be loaded. After acquiring the data to be loaded, in order to ensure that the current flow rate of the data transmission system does not exceed the allowable upper limit of the flow rate, the data loading module needs to apply to the flow rate adjustment module for a token that allows data to be loaded. The data to be loaded can be sent to the data destination.
- the flow rate adjustment module When the flow rate adjustment module receives an application for a token, it checks whether there is still an available token, and if there is no available token temporarily, the application is suspended and waits for a new token to be generated.
- the flow rate adjustment module can periodically generate or clear tokens, for example, empty the remaining tokens at the end of each cycle, and generate a number of tokens corresponding to the upper limit of the flow rate allowed by the current system (for example, the upper limit of the flow rate is 1000, for example, this means that a maximum of 1000 data can be processed per second (for example, 1000 transactions), and the flow rate adjustment module can generate 1000 tokens to allow processing of 1000 data).
- the upper limit of the flow rate will be updated according to the data loading status of the data destination. By modifying the number of tokens allowed in a cycle, dynamic adjustment of the system flow rate can be achieved.
- Fig. 4 shows a timing diagram of a method for adjusting a flow rate according to an embodiment of the present invention.
- the method involves an asynchronous response processing module, a timing scanning module, and a flow rate adjustment module.
- the operations that can be performed by the method include counting the processing results of the data destination, counting the data that has not responded to timeout, calculating the loading success rate in the current cycle, and updating the upper limit of the flow rate allowed by the system.
- the asynchronous response processing module is used to receive the loading result fed back by the data destination, and process the corresponding data (that is, delete the successfully loaded data from the data map to be confirmed, or delete the failed data or the timeout when the response is not received.
- the data is sent to the data queue to be reloaded), and the value of the loading success counter or the loading failure counter is updated according to the feedback loading result.
- the timing scan module can scan in each cycle to calculate the success rate of the data that the data destination loads in the current cycle (the data is the data that should be loaded by the data destination in the previous cycle, and can also be called historical data), to This triggers the flow rate adjustment module to adjust the flow rate.
- the timing scan module can first count the amount of timeout data that has not received a response in the current period (for example, stored in the timeout data counter), and then obtain the current time data load success counter and load failure counter values, according to the following Formula to calculate the success rate:
- S is the success rate of data loading in the current cycle
- C s and C f are the values of the current load success counter and the load failure counter, respectively
- C t is the value of the timeout data counter for which no response is currently received. The value of each counter is cleared immediately after the calculation of S is completed to ensure that it will not interfere with the calculation of the next cycle.
- the flow rate of the data transmission system is lowered according to a fixed step. If the flow rate is lower than the lower limit of the flow rate, The lower limit of the flow rate is taken as the actual flow rate (the number of tokens corresponding to it is generated according to the determined flow rate value). If the flow rate before the reduction has reached the acceptable lower limit of the flow rate, the system flow rate is no longer lowered, and manual intervention is required;
- the flow rate can be increased according to a fixed step, if the flow rate is higher than the flow rate Upper limit, the upper limit of the flow rate is taken as the actual flow rate (the number of tokens corresponding to it is generated according to the determined flow rate value), if the flow rate before the increase has reached T max , the system flow rate value is no longer adjusted;
- T max can be manually modified to the upper limit of the flow rate that is compatible with the expanded processing capacity
- the calculated success rate is greater than or equal to the success rate adjustment threshold and the data transmission system increases the flow rate, the calculated success rate is lower than the lower limit of the success rate, causing the data transmission system to lower the flow rate, and first adjust the flow rate and then decrease it.
- the flow rate process continues for many times, so this may mean that the calculated T max does not meet the current status quo, and manual intervention is required, for example, the value of T max can be manually reduced.
- T max In an ideal state, the maximum TPS (that is, the upper limit of the flow rate) that the data destination can carry, which can be manually configured and modified by the system operation and maintenance personnel;
- T min The lowest TPS acceptable to the data destination, if it is lower than this value, manual intervention is required for investigation;
- S adp The lowest acceptable success rate (ie, the success rate adjustment threshold) when TPS is increased, and only the current success rate is greater than or equal to this value can try to increase the value of TPS;
- TPS adjustment step length that is, the value of TPS is adjusted up or down in a single time
- T cur The currently allowed TPS value of the data destination.
- T cur can be arbitrarily configured when the data transmission system is started, so that T cur is not greater than T max .
- this article defines a continuous TPS up-regulation and down-regulation or a continuous TPS down-regulation and up-regulation as an oscillation process. If oscillations occur continuously, it means that the value of T max does not match the current state of the data destination, and operation and maintenance personnel need to be reminded. Perform investigation and confirmation, and modify the value of T max if necessary.
- the flag bit UD can be used to record each adjustment operation:
- UD p to record the last flow rate adjustment operation. For example, you can calculate UD
- UD p 11, indicating that an oscillation has occurred), use C con to record the number of consecutive oscillations, and use M con to indicate acceptable Maximum number of consecutive oscillations.
- the corresponding token number is first generated according to the TPS value allowed by the updated data destination, and C con is checked at the same time. If C con ⁇ M con , it means that the number of continuous oscillations of the data transmission system exceeds the upper limit, that is, the value of T max is not suitable for the current data destination, so the data transmission system will issue an alarm to remind operation and maintenance personnel to intervene in the investigation.
- Fig. 5 shows a flowchart of a method for processing abnormal data according to an embodiment of the present invention. The methods used to handle abnormal data are as follows:
- the asynchronous response processing module judges after receiving the processing result. When the result is successful, it directly removes the data from the to-be-confirmed data Map, and the process ends; otherwise, it proceeds to step (2);
- step (3) When the result is not a success, update the number of failures. If the number of failures exceeds the upper limit, remove the data from the data map to be confirmed and report an exception (such as an alarm), otherwise go to step (3);
- the method of handling abnormal data can also reduce the impact of abnormal data on the system by loading isolation, that is, using the normal data loading module to be responsible for the processing of the data in the data queue to be loaded, and the use of failed data
- the loading module is responsible for processing the data in the data queue to be reloaded, and the two modules are executed in parallel. Based on this, the current system or data destination allowable TPS value T cur calculated by the flow rate adjustment module can be subdivided into normal data loading TPS (denoted as T nor ) and abnormal data loading TPS (denoted as Tuno ), which are different
- the loading modules request their respective loading tokens to realize the loading isolation of normal data and abnormal data.
- the specific methods are as follows:
- T nor T cur *S
- T uno T cur *(1-S)
- update R p T uno /T cur .
- the flow rate of abnormal data loading is the minimum value of the number of data in the data queue to be reloaded and the product of the above-mentioned proportion and the current flow rate. Therefore, the flow rate of the normal data load is the difference between the current flow rate and the flow rate of the abnormal data load.
- the percentage of the flow rate of abnormal data in the current flow rate can be updated for the data transmission system to use in subsequent cycles.
- the specific implementation method can be, for example:
- S is the data loading success rate in the current cycle
- R p is the percentage of abnormal data loading TPS in the total TPS of the system during the previous week
- Lu is the number of data in the data queue to be reloaded (for example, transaction Number of transactions).
- the program code used to perform the operations of the present invention can be written in any combination of one or more programming languages.
- the programming languages include object-oriented programming languages—such as Java, C++, etc., as well as conventional procedural styles. Programming language-such as "C" language or similar programming language.
- the program code can be executed entirely on the user's computing device, partly executed on the user's equipment, partly executed on the user's computing device, or entirely executed on the remote computing device or server.
- the remote computing device can be connected to the user computing device through any kind of network-including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computing device (for example, using Internet services). Provider to connect via the Internet).
- LAN local area network
- WAN wide area network
- Internet services for example, using Internet services
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明提供了一种基于异步应答的传输数据的方法,包括:抽取步骤:在一周期中从第一数据端抽取并存储所述数据;流速调节步骤:基于在所述周期的上一周期中由第二数据端反馈的装载结果和在所述上一周期中传输所述数据的第一流速确定在所述周期中传输所述数据的第二流速;以及装载步骤:在所述周期中根据所述第二流速将所述数据装载到所述第二数据端。
Description
本发明涉及数据传输领域,尤其涉及一种基于异步应答的传输数据的方法及系统。
在将数据从数据源传输至的数据目的端的过程中,通常使用能够抽取数据、转换数据的格式并将数据装载到数据目的端的ETL(Extract-Transform-Load)系统。由于ETL系统需要按照固定周期运行的经常发生的任务(例如,处理批量数据)并且ETL系统对数据实时性要求不高,因此在对数据实时性要求很高的场景下难以使用传统的ETL系统。
在传输数据的过程中,存在调节数据传输的流速的需求。一种常用的调节流速的方法是使用数据传输系统的系统负载作为硬指标进行调节,例如当系统负载高于某个阈值时,即禁止或降低流速,当系统负载开始降低时,则恢复流速。另一种常用的调节流速的方法是自适应限流保护方法,该方法使用数据传输系统的系统负载作为所控制的流速的启动值,通过数据传输系统的当前请求响应时间以及处理的请求速率来决定当前允许的流速,从而在数据传输系统不被拖垮的情况下提高流速,而不是一定要低于某个阈值。
为了尽可能地提高流速,还可以使用异步应答的模式,即数据传输系统中的负责数据装载的模块仅将数据发送至下游的数据目的端,无需等待具体的装载结果,数据传输系统可以通过另外的模块对数据装载的执行结果进行处理。换言之,在一个周期内装载的数据不一定在当前周期内就能获知该数据是否装载成功。
然而,在使用异步应答的模式的情况下,上述第一种方法由于将数据传输系统的系统负载作为硬指标,超过系统负载则不允许传输数据,因此 限制了数据传输系统和数据目的端的处理能力,降低了数据传输系统的的数据传输量;此外,当下游的数据目的端发生故障或扩容等影响处理能力的事件时,该方法无法及时地感知并调整流速,可能导致数据传输系统的空闲或大批量数据丢失等异常情况。另外,对于上述第二种方法,该方法根据数据传输系统的处理能力来调节流速,无法根据下游的数据目的端的处理能力来动态地控制流速,不适用数据目的端处理能力弱于数据传输系统处理能力的情况。
发明内容
本发明的一方面提供一种基于异步应答的传输数据的方法,包括:抽取步骤:在一周期中从第一数据端抽取并存储所述数据;流速调节步骤:基于在所述周期的上一周期中由第二数据端反馈的装载结果和在所述上一周期中传输所述数据的第一流速确定在所述周期中传输所述数据的第二流速;以及装载步骤:在所述周期中根据所述第二流速将所述数据装载到所述第二数据端。
本发明的另一方面提供一种基于异步应答的传输数据的方法,包括:抽取步骤:在一周期中从第一数据端抽取第一数据,将所述第一数据存储在第一队列中;流速调节步骤:基于在所述周期的上一周期中由第二数据端反馈的第一装载结果和在所述上一周期传输所述数据的第一流速确定在所述周期中传输所述数据的第二流速;以及装载步骤:在所述周期中根据所述第二流速将所述第一队列内的所述第一数据和第二队列内的第二数据装载到所述第二数据端。
本发明的又一方面提供一种基于异步应答的传输数据的系统,包括:数据抽取模块,其用于在一周期中从第一数据端抽取并存储所述数据;流速调节模块,其用于基于在所述周期的上一周期中由第二数据端反馈的装载结果和在所述上一周期中传输所述数据的第一流速确定在所述周期中传输所述数据的第二流速;和数据装载模块,其用于在所述周期中根据所述第二流速将所述数据装载到所述第二数据端。
本发明的又一方面提供一种基于异步应答的传输数据的系统,包括: 数据抽取模块,其用于在一周期中从第一数据端抽取第一数据,将所述第一数据存储在第一队列中;流速调节模块,其用于基于在所述周期的上一周期中由第二数据端反馈的第一装载结果和在所述上一周期传输所述数据的第一流速确定在所述周期中传输所述数据的第二流速;以及数据装载模块,其用于在所述周期中根据所述第二流速将所述第一队列内的所述第一数据和第二队列内的第二数据装载到所述第二数据端。
本发明的又一方面提供了一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令被计算机执行时能够执行根据本发明实施例所述的方法。
本发明的实施例能够在异步应答的情况下、根据反馈的装载结果自动调节数据传输系统的流速,从而在保证数据目的端不被压垮且减少数据丢失的前提条件下尽可能地提高数据传输系统的吞吐量。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
在附图中,相同或对应的标号表示相同或对应的部分。
图1示出了根据本发明的实施例的数据传输系统的示意图。
图2示出了根据本发明的实施例的用于抽取数据的方法的流程图。
图3示出了根据本发明的实施例的用于装载数据的方法的时序图。
图4示出了根据本发明的实施例的用于调节流速的方法的时序图。
图5示出了根据本发明的实施例的用于处理异常数据的方法的流程图。
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
下面结合附图对本发明的具体实施方式进行详细描述。
图1示出了根据本发明的实施例的数据传输系统的示意图。
如图1所示,该系统包括五个模块:数据抽取模块、数据装载模块、异步应答处理模块、定时扫描模块以及流速调节模块。该系统还包括待装载数据队列、待重载数据队列和待确认数据Map。
数据抽取模块可以从数据源抽取数据,将数据转换格式后存入待装载数据队列,若队列已满则等待。在本文中,一个数据能够代表一个业务,每个数据的大小可以不同。
数据装载模块可以从待装载数据队列中取出数据,并通过流速调节模块判断当前是否可以向数据目的端装载数据。数据装载模块还可以包括正常数据装载模块和失败数据装载模块,其分别用于装载待装载数据队列和待重载数据队列中的数据。在每次装载数据时,数据装载模块可以同时将数据存储在待确认数据Map中。在一些实施例中,待确认数据Map是一种数据存储结构,其可以用于临时存储从数据装载模块转存的数据。待确认数据Map中的Key字段存储数据的身份标识,Value字段存储数据的值。
异步应答处理模块可以处理数据目的端反馈的处理结果(即被装载的数据的装载结果,该结果为成功或失败),并统计成功或失败的数据的量。对于处理结果为成功的数据,异步应答处理模块可以直接从待确认数据Map删除该数据。对于处理结果为失败的数据,异步应答处理模块可以将装载失败的数据从待确认数据Map发送到待重载数据队列,以待被数据装载模块装载。如果某数据装载失败的次数超过预定次数(即,重装载次数上限),则丢弃该数据。
定时扫描模块可以通过扫描待确认数据Map来统计超过一定时长仍未收到数据目的端的处理结果的数据(即未收到应答的超时数据),并将该数据从待确认数据Map发送到待重载数据队列。定时扫描模块还可以通 过扫描异步应答处理模块中保存的、来自数据目的端的处理结果来计算当前周期内所统计的数据装载的成功率,并将成功率发送到流速调节模块。
流速调节模块可以通过调整数据传输系统的TPS(Transaction Per Second,每秒业务处理量,例如每秒处理的交易的笔数)来实现流速控制。首先,可以设置一个最理想情况下的最大TPS值作为流速上限值,根据当前周期内数据装载的成功率提高或降低数据传输系统的流速(TPS值),从而实现系统的流速调节。
在图2中示出了数据抽取模块可以采用的用于抽取数据的方法。如图2所示,该方法包括如下步骤:
(1)数据抽取模块从数据源抽取数据,并将数据按统一格式进行转换;
(2)若此时待装载队列未满,则将转换完格式的数据直接存入其中,然后继续执行步骤(1),否则执行步骤(3);
(3)若待装载队列此时已满,针对当前数据累加一次发送失败次数,如发送失败次数未超过发送失败次数的上限,则数据抽取模块休眠预定时间后重新执行步骤(2),否则将数据丢弃,开始重新执行步骤(1)。
在图3中示出了数据装载模块可以采用的装载数据的方法的时序图。如图3所示,数据装载模块可以从待装载数据队列中获取转换完格式的数据。在获取到待装载的数据后,为保证当前数据传输系统的流速不超过允许的流速上限值,数据装载模块需要向流速调节模块申请允许装载数据的令牌,只有获取到令牌后,才能够向数据目的端发送待被装载的数据。
流速调节模块在接收到关于令牌的申请时,检查当前是否仍有可用的令牌,若暂无可用令牌则挂起该申请,等待新令牌生成。流速调节模块可以周期性地生成或清除令牌,例如,在每个周期结束时清空剩余令牌,同时生成数量与当前系统允许的流速上限值对应的令牌(例如,流速上限值是1000,这例如意味着每秒最多可以处理1000个数据(例如,1000笔交易),则流速调节模块可以生成1000个令牌以允许处理1000个数据)。该流速上限值会根据数据目的端的数据装载的状态进行更新。通过修改一个周期内允许的令牌数,可以实现系统流速的动态调整。
图4示出了根据本发明的实施例的用于调节流速的方法的时序图。该 方法涉及异步应答处理模块、定时扫描模块以及流速调节模块。该方法可以执行的操作包括统计数据目的端的处理结果、统计超时未应答的数据、计算当前周期内装载成功率以及更新系统允许的流速上限。
异步应答处理模块用于接收数据目的端反馈的装载结果,对相应的数据进行处理(即,将装载成功的数据从待确认数据Map中删除,或将装载失败的数据或未收到应答的超时数据发送到待重载数据队列中),同时根据反馈的装载结果更新装载成功计数器或装载失败计数器的值。
定时扫描模块可以在每个周期进行扫描,计算当前周期内数据目的端装载数据(该数据是在之前的周期中应当由数据目的端装载的数据,也可以称为历史数据)的成功率,以此触发流速调节模块来调节流速。对于计算成功率,定时扫描模块可以首先统计当前周期内所有未收到应答的超时数据量(例如存储在超时数据计数器中),然后获取当前时刻数据装载成功计数器与装载失败计数器的值,根据如下公式来计算成功率:
其中,S为当前周期内数据装载的成功率,C
s与C
f分别为当前装载成功计数器和装载失败计数器的值,C
t为当前未收到应答的超时数据计数器的值。在S计算完成后立刻清空各计数器的值,以确保不会对下个周期的计算产生干扰。
该调节流速的方法可以归纳如下:
(1)根据数据目的端的处理能力,配置可接受的流速上限T
max;
(2)如果在当前周期内、从数据目的端反馈的数据装载的成功率低于可接受的成功率下限值,则根据固定步长下调数据传输系统的流速,如果流速低于流速下限,则将流速下限作为实际的流速(根据确定的流速值生成与其对应的令牌的数量),若下调前的流速已达到可接受的流速下限,不再下调系统流速,需人工介入排查;
(3)如果在当前周期内的数据装载的成功率大于成功率调整阈值(其大于成功率下限值)且当前系统流速小于T
max,那么可以根据固定步长上调流速,如果流速高于流速上限,则将流速上限作为实际的流速(根据确定的流速值生成与其对应的令牌的数量),若上调前的流速已达到T
max, 不再上调系统流速值;
(4)如果成功率大于成功率下限值且小于成功率调整阈值,并且流速小于T
max,则认为数据传输系统与下游系统(即数据目的端)均处于稳定状态,无需调整数据传输系统的流速;
(5)若数据传输系统的流速维持在T
max,且计算出的成功率始终大于等于成功率调整阈值,尝试上调T
max;若上调T
max后成功率立刻下降,则恢复先前的T
max值,在一定周期内(例如,当天)不再尝试上调T
max;
(6)若数据目的端发生扩容时,可以通过人工将T
max修改为与扩容后的处理能力相适应的流速上限值;
(7)若计算出的成功率大于等于成功率调整阈值并且数据传输系统上调流速后,计算出的成功率又低于成功率下限值,使得数据传输系统下调流速,而且先上调流速又下调流速的过程又持续多次,那么这可能代表计算得出的T
max不符合当前现状,需人工介入排查,例如可以人工降低T
max的值。
下面将描述实现上述调节流速的方法的一个实施例。首先,定义各参数,其含义如下:
T
max:理想状态下,数据目的端可承载的最大TPS(即流速上限),其可由系统运维人员手动配置与修改;
T
min:数据目的端可接受的最低TPS,低于此值时需人工介入排查;
S
min:数据目的端允许的数据装载的最小成功率;
S
adp:TPS上调时可接受的最低成功率(即成功率调整阈值),仅当前成功率大于或等于该值时可尝试上调TPS的值;
st:TPS调节步长,即单次上调或下调TPS的值;
T
cur:数据目的端当前允许的TPS值,其数据传输系统启动时可以任意配置T
cur,使得T
cur不大于T
max。
此外,本文将一次连续的TPS上调和下调或一次连续的TPS下调和上调定义为一次震荡过程,若持续地发生震荡,说明T
max取值与数据目的端的当前状态不符合,需提醒运维人员进行排查和确认,必要时需要修改T
max的取值。
基于此,可以例如使用标志位UD记录各个调节操作:
UD=00:未调节;UD=10:上调TPS;UD=01:下调TPS
另外使用UD
p记录上一次流速调节操作。例如,可以通过计算UD|UD
p(或运算)来表示是否发生震荡现象(比如UD|UD
p=11,表示发生了一次震荡),使用C
con记录连续震荡次数,使用M
con表示可接受的最大连续震荡次数。
基于上述定义,调节流速的方法的具体实现方式如下:
●当S≥S
adp且T
cur<T
max时,此时UD=10,那么更新T
cur+=st,计算UD|UD
p:
若UD|UD
p=11,修改C
con+=1,UD
p=10;
若UD|UD
p!=11,修改C
con=0,UD
p=10。
●当S≥S
adp且T
cur=T
max时,T
cur保持不变,修改C
con=0,UD
p=00
●当S≤S
min且T
cur>T
min时,此时UD=01,更新T
cur-=st,计算UD|UD
p:
若UD|UD
p=11,修改C
con+=1,UD
p=01;
若UD|UD
p!=11,修改C
con=0,UD
p=01。
●当S≤S
min且T
cur=T
min时,T
cur保持不变,修改C
con=0,UD
p=00,需发出告警,以提示人工介入排查;
●当S
min<S<S
adp时,T
cur保持不变,修改C
con=0,UDp=00。
每次调节流速的算法执行完成时,首先根据更新后的数据目的端允许的TPS值生成对应的令牌数,同时检查C
con。若C
con≥M
con,则说明数据传输系统连续震荡次数超过上限值,即T
max的取值不适合当前的数据目的端,因此数据传输系统会发出告警以提醒运维人员介入排查。
为了减少异常数据(其包括装载失败的数据和未收到应答的超时数据),异步应答处理模块或定时扫描模块会将异常数据发送至待重载数据队列中,并通过数据装载模块中的失败数据重装模块重新装载该异常数据。图5示出了根据本发明的实施例的用于处理异常数据的方法的流程图。用于处理异常数据的方法如下:
(1)异步应答处理模块在接收到处理结果后进行判断,结果为成功时,直接从待确认数据Map中移除该数据,流程结束;否则进入步骤(2);
(2)结果不为成功时,更新失败次数,如果失败次数超过上限值,直接从待确认数据Map中移除该数据,并报出异常(例如发出告警),否 则进入步骤(3);
(3)如果此时待重载数据队列不满,则将数据直接转存入待重载数据队列中,否则记作转存失败,直接更新其失败次数,继续执行步骤(4);
(4)如果数据失败次数超过失败上限,直接丢弃该数据并报出异常。否则将其继续存放在待确认数据Map中,等待一段时间后进入步骤(3)。
从图1和图5可以看出,处理异常数据的方法还可以通过装载隔离来降低异常数据对系统的影响性,即使用正常数据装载模块负责待装载数据队列中的数据的处理,使用失败数据装载模块负责待重载数据队列中的数据的处理,两个模块并行执行。基于此,可以将流速调节模块计算出的当前系统或数据目的端允许的TPS值T
cur细分成正常数据装载TPS(记为T
nor)和异常数据装载TPS(记为T
uno),不同的装载模块请求各自的装载令牌,从而实现正常数据和异常数据的装载隔离,具体的方法如下:
(1)如果成功率不为100%,则将成功率与当前流速相乘以作为正常数据装载的流速,将当前流速的剩余部分作为异常数据装载的流速,并更新异常数据的流速在当前流速中的占比,以供数据传输系统在后续周期中使用。具体实现方法可以例如是:
S≠100%时,T
nor=T
cur*S,T
uno=T
cur*(1-S);更新R
p=T
uno/T
cur。
(2)如果成功率为100%,则异常数据装载的流速是待重载数据队列中的数据的个数、和上述占比与当前流速的乘积中的最小值。因此,正常数据装载的流速是当前流速与异常数据装载的流速的差。可以更新异常数据的流速在当前流速中的占比,以供数据传输系统在后续周期中使用。具体实现方法可以例如是:
S=100%时,T
uno=min(L
u,R
p*T
cur),T
nor=T
cur-T
uno,更新R
p=T
uno/T
cur。
其中,S为当前周期内数据装载成功率,R
p为上一周期内异常数据装载TPS在系统总TPS中的占比,L
u为待重载数据队列中数据的个数(例如,交易的笔数)。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如 Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在用户计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
应当注意,尽管在上文的详细描述中提及了实现上述方法的若干软件装置/模块及子装置/模块,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置/模块中具体化。反之,上文描述的一个装置/模块的特征和功能可以进一步划分为由多个装置/模块来具体化。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (39)
- 一种基于异步应答的传输数据的方法,包括:抽取步骤:在一周期中从第一数据端抽取并存储所述数据;流速调节步骤:基于在所述周期的上一周期中由第二数据端反馈的装载结果和在所述上一周期中传输所述数据的第一流速确定在所述周期中传输所述数据的第二流速;和装载步骤:在所述周期中根据所述第二流速将所述数据装载到所述第二数据端。
- 根据权利要求1所述的方法,所述抽取步骤包括:(a)从所述第一数据端抽取所述数据,并按预定格式转换所述数据;(b)判断队列是否已满,如果未满,则将经转换的数据存储所述队列中并进入步骤(a),否则进入步骤(c);(c)针对所述经转换的数据累加一次发送失败次数,如所述发送失败次数未超过发送失败次数的上限,则等待预定时间后重新进入步骤(b),否则丢弃所述经转换的数据并进入步骤(a)。
- 根据权利要求1所述的方法,其中,所述装载结果是在所述上一周期中由所述第二数据端反馈的装载成功的历史数据的数量、在所述上一周期中由所述第二数据端反馈的装载失败的历史数据的数量,其中,所述流速调节步骤还包括:统计在所述上一周期中已超过预定时间仍未收到所述第二数据端反馈的超时历史数据的数量,和计算在所述上一周期中由所述第二数据端反馈的装载历史数据的成功率,所述成功率用于确定所述第二流速,其中,所述成功率通过如下公式来计算:其中,S为所述成功率,C s为在所述上一周期中由所述第二数据端反馈的装载成功的历史数据的数量,C f为在所述上一周期中由所述第二数据 端反馈的装载失败的历史数据的数量,C t为在所述上一周期中已超过预定时间仍未收到所述第二数据端反馈的超时历史数据的数量。
- 根据权利要求3所述的方法,其中,所述流速调节步骤包括:(a)如果所述成功率小于等于成功率下限且所述第一流速高于流速下限,则按照第一预定数值减少所述第一流速以获得所述第二流速,如果减少后的第一流速小于所述流速下限,则将所述流速下限作为所述第二流速;(b)如果所述成功率小于等于成功率下限且所述第一流速等于所述流速下限,则将所述流速下限作为所述第二流速;(c)如果所述成功率高于成功率调整阈值且所述流速低于流速上限,则按照第二预定数值增加所述第一流速以获得所述第二流速,如果增加后的第一流速大于所述流速上限,则将所述流速上限作为所述第二流速;(d)如果所述成功率高于成功率调整阈值且所述第一流速达到流速上限,则将所述流速上限作为所述第二流速;或(e)如果所述成功率在所述成功率下限和所述成功率调整阈值之间,则将所述第一流速作为所述第二流速。
- 根据权利要求4所述的方法,其中,所述流速调节步骤还包括:当所述第二流速在第一预定数量的周期内保持在所述流速上限,并且所述成功率大于所述成功率调整阈值时,按照第二预定数值增加所述流速上限和所述第二流速。
- 根据权利要求5所述的方法,其中,在所述按照第二预定数值增加所述流速上限和所述第二流速的步骤后,如果在所述周期的下一周期中所述成功率下降,则将增加后的流速上限和增加后的第二流速恢复到所述流速上限和所述第二流速并在第二预定数量的周期内不再增加所述流速上限。
- 根据权利要求4所述的方法,其中,所述方法还包括:如果在多个周期中重复执行如下步骤并且实施所述重复执行操作的次数达到预设次数,则确定所述流速上限设置错误并发出告警信息:在执行所述步骤(c)之后直接执行所述步骤(a),或在执行所述步骤(a)之后直接执行所述步骤(c)。
- 根据权利要求3所述的方法,其中,所述装载步骤包括:在所述周期中根据所述第二流速和所述成功率生成用于装载所述数据的令牌;根据所述令牌提取队列中的数据;和将所提取的所述队列中的数据装载到所述第二数据端。
- 一种基于异步应答的传输数据的方法,包括:抽取步骤:在一周期中从第一数据端抽取第一数据,将所述第一数据存储在第一队列中;流速调节步骤:基于在所述周期的上一周期中由第二数据端反馈的第一装载结果和在所述上一周期传输所述数据的第一流速确定在所述周期中传输所述数据的第二流速;和装载步骤:在所述周期中根据所述第二流速将所述第一队列内的所述第一数据和第二队列内的第二数据装载到所述第二数据端。
- 根据权利要求9所述的方法,所述方法还包括:将所述第一数据和所述第二数据存储在数据结构中以作为候选数据。
- 根据权利要求10所述的方法,所述方法还包括:基于所述第二数据端在所述周期或所述周期后的至少一个周期中反馈的第二装载结果确定所述数据结构中的候选数据是否装载成功,如果成功,则在所述数据结构中删除所述候选数据,如果不成功,则判断所述候选数据被装载的次数是否超过预定次数,如果超过所述预定次数,则在所述数据结构中删除所述候选数据,如果未超过所述预定次数,则在将所述候选数据发送至所述第二队列以作为所述第二数据。
- 根据权利要求9所述的方法,所述抽取步骤包括:(a)从所述第一数据端抽取所述第一数据,并按预定格式转换所述第一数据;(b)判断第一队列是否已满,如果未满,则将经转换的第一数据存入所述第一队列中并进入步骤(a),否则进入步骤(c);(c)针对所述经转换的第一数据累加一次发送失败次数,如所述发送失败次数未超过发送失败次数的上限,则等待预定时间后重新进入步骤 (b),否则丢弃所述经转换的第一数据并进入步骤(a)。
- 根据权利要求9所述的方法,其中,所述第一装载结果是在所述上一周期中由所述第二数据端反馈的装载成功的历史数据的数量、在所述上一周期中由所述第二数据端反馈的装载失败的历史数据的数量,其中,所述流速调节步骤还包括:统计在所述上一周期中已超过预定时间仍未收到所述第二数据端反馈的超时历史数据的数量,和计算在所述上一周期中由所述第二数据端反馈的装载历史数据的成功率,所述成功率用于确定所述第二流速,其中,所述成功率通过如下公式来计算:其中,S为所述成功率,C s为在所述上一周期中由所述第二数据端反馈的装载成功的历史数据的数量,C f为在所述上一周期中由所述第二数据端反馈的装载失败的历史数据的数量,C t为在所述上一周期中已超过预定时间仍未收到所述第二数据端反馈的超时历史数据的数量。
- 根据权利要求13所述的方法,其中,所述流速调节步骤包括:(a)如果所述成功率小于等于成功率下限且所述第一流速高于流速下限,则按照第一预定数值减少所述第一流速以获得所述第二流速,如果减少后的第一流速小于所述流速下限,则将所述流速下限作为所述第二流速;(b)如果所述成功率小于等于成功率下限且所述第一流速等于所述流速下限,则将所述流速下限作为所述第二流速;(c)如果所述成功率高于成功率调整阈值且所述流速低于流速上限,则按照第二预定数值增加所述第一流速以获得所述第二流速,如果增加后的第一流速大于所述流速上限,则将所述流速上限作为所述第二流速;(d)如果所述成功率高于成功率调整阈值且所述第一流速达到流速上限,则将所述流速上限作为所述第二流速;或(e)如果所述成功率在所述成功率下限和所述成功率调整阈值之间,则将所述第一流速作为所述第二流速。
- 根据权利要求14所述的方法,其中,所述流速调节步骤还包括:当所述第二流速在第一预定数量的周期内保持在所述流速上限,并且所述成功率大于所述成功率调整阈值时,按照第二预定数值增加所述流速上限和所述第二流速。
- 根据权利要求15所述的方法,其中,在所述按照第二预定数值增加所述流速上限和所述第二流速的步骤后,如果在所述周期的下一周期中所述成功率下降,则将增加后的流速上限和增加后的第二流速恢复到所述流速上限和所述第二流速并在第二预定数量的周期内不再增加所述流速上限。
- 根据权利要求14所述的方法,其中,所述方法还包括:如果在多个周期中重复执行如下步骤并且实施所述重复执行操作的次数达到预设次数,则确定所述流速上限设置错误并发出告警信息:在执行所述步骤(c)之后直接执行所述步骤(a),或在执行所述步骤(a)之后直接执行所述步骤(c)。
- 根据权利要求13所述的方法,其中,所述装载步骤包括:(a)在所述周期中根据所述第二流速和所述成功率生成用于装载所述第一数据的第一令牌和用于装载所述第二数据的第二令牌;(b)根据所述第一令牌提取第一队列中的第一数据并且根据所述第二令牌提取第二队列中的第二数据;和(c)将所提取的第一数据和所提取的第二数据装载到所述第二数据端。
- 根据权利要求18所述的方法,其中,所述步骤(a)包括:当所述成功率小于100%时,将所述成功率与所述第二流速相乘以作为装载所述第一数据的流速,将所述第二流速减去所述装载所述第一数据的流速之间的差值以得到装载所述第二数据的流速,更新所述装载所述第二数据的流速与所述第二流速的比值,并且根据所述装载所述第一数据的流速生成所述第一令牌且根据所述装载所述第二数据的流速生成所述第二令牌;或当所述成功率等于100%时,将所述第二队列中的数据的个数、与所述 比值和所述第二流速的乘积中的最小值作为所述装载所述第二数据的流速,将所述第二流速减去所述装载所述第二数据的流速之间的差值以得到装载所述第一数据的流速,更新所述比值,并且根据所述装载所述第一数据的流速生成所述第一令牌且根据所述装载所述第二数据的流速生成所述第二令牌。
- 一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令被计算机执行时能够执行如权利要求1-19中任意之一所述的方法。
- 一种基于异步应答的传输数据的系统,包括:数据抽取模块,其用于在一周期中从第一数据端抽取并存储所述数据;流速调节模块,其用于基于在所述周期的上一周期中由第二数据端反馈的装载结果和在所述上一周期中传输所述数据的第一流速确定在所述周期中传输所述数据的第二流速;和数据装载模块,其用于在所述周期中根据所述第二流速将所述数据装载到所述第二数据端。
- 根据权利要求21所述的系统,所述数据抽取模块还能够执行如下步骤:(a)从所述第一数据端抽取所述数据,并按预定格式转换所述数据;(b)判断队列是否已满,如果未满,则将经转换的数据存储所述队列中并进入步骤(a),否则进入步骤(c);(c)针对所述经转换的数据累加一次发送失败次数,如所述发送失败次数未超过发送失败次数的上限,则等待预定时间后重新进入步骤(b),否则丢弃所述经转换的数据并进入步骤(a)。
- 根据权利要求21所述的系统,其中,所述装载结果是在所述上一周期中由所述第二数据端反馈的装载成功的历史数据的数量、在所述上一周期中由所述第二数据端反馈的装载失败的历史数据的数量,其中,所述系统还包括定时扫描模块,其用于统计在所述上一周期中已超过预定时间仍未收到所述第二数据端反馈的超时历史数据的数量,计算在所述上一周期中由所述第二数据端反馈的装载历史数据的成功率,并 且将所述成功率发送至所述流速调节模块,其中,所述成功率通过如下公式来计算:其中,S为所述成功率,C s为在所述上一周期中由所述第二数据端反馈的装载成功的历史数据的数量,C f为在所述上一周期中由所述第二数据端反馈的装载失败的历史数据的数量,C t为在所述上一周期中已超过预定时间仍未收到所述第二数据端反馈的超时历史数据的数量。
- 根据权利要求23所述的系统,其中,所述流速调节模块还包括:第一模块,其用于在所述成功率小于等于成功率下限且所述第一流速高于流速下限的情况下,按照第一预定数值减少所述第一流速以获得所述第二流速,在减少后的第一流速小于所述流速下限的情况下,将所述流速下限作为所述第二流速;第二模块,其用于在所述成功率小于等于成功率下限且所述第一流速等于所述流速下限的情况下,将所述流速下限作为所述第二流速;第三模块,其用于在所述成功率高于成功率调整阈值且所述流速低于流速上限的情况下,按照第二预定数值增加所述第一流速以获得所述第二流速,在增加后的第一流速大于所述流速上限的情况下,将所述流速上限作为所述第二流速;第四模块,其用于在所述成功率高于成功率调整阈值且所述第一流速达到流速上限的情况下,将所述流速上限作为所述第二流速;或第五模块,其用于在所述成功率在所述成功率下限和所述成功率调整阈值之间的情况下,将所述第一流速作为所述第二流速。
- 根据权利要求24所述的系统,其中,所述流速调节模块还包括:第六模块,其用于当所述第二流速在第一预定数量的周期内保持在所述流速上限,并且所述成功率大于所述成功率调整阈值时,按照第二预定数值增加所述流速上限和所述第二流速。
- 根据权利要求25所述的系统,其中,在按照第二预定数值增加所述流速上限和所述第二流速后,所述流速调节模块还能够在所述周期的下 一周期中所述成功率下降的情况下,将增加后的流速上限和增加后的第二流速恢复到所述流速上限和所述第二流速并在第二预定数量的周期内不再增加所述流速上限。
- 根据权利要求24所述的系统,其中,所述流速调节模块还用于在多个周期中重复执行如下步骤并且实施所述重复执行操作的次数达到预设次数的情况下,确定所述流速上限设置错误并发出告警信息:在使用所述第三模块之后直接使用所述第一模块;或在使用所述第一模块之后直接使用所述第三模块。
- 根据权利要求23所述的系统,其中,所述流速调节模块还包括:用于在所述周期中根据所述第二流速和所述成功率生成用于装载所述数据的令牌的模块;所述数据装载模块还包括:用于根据所述令牌提取队列中的数据的模块;和用于将所提取的所述队列中的数据装载到所述第二数据端的模块。
- 一种基于异步应答的传输数据的系统,包括:数据抽取模块,其用于在一周期中从第一数据端抽取第一数据,将所述第一数据存储在第一队列中;流速调节模块,其用于基于在所述周期的上一周期中由第二数据端反馈的第一装载结果和在所述上一周期传输所述数据的第一流速确定在所述周期中传输所述数据的第二流速;和数据装载模块,其用于在所述周期中根据所述第二流速将所述第一队列内的所述第一数据和第二队列内的第二数据装载到所述第二数据端。
- 根据权利要求29所述的系统,其中,所述数据装载模块还用于将所述第一数据和所述第二数据存储在数据结构中以作为候选数据。
- 根据权利要求30所述的系统,所述系统还包括:异步应答处理模块,其用于基于所述第二数据端在所述周期或所述周期后的至少一个周期中反馈的第二装载结果确定所述数据结构中的候选数据是否装载成功,如果成功,则在所述数据结构中删除所述候选数据,如 果不成功,则判断所述候选数据被装载的次数是否超过预定次数,如果超过所述预定次数,则在所述数据结构中删除所述候选数据,如果未超过所述预定次数,则在将所述候选数据发送至所述第二队列以作为所述第二数据。
- 根据权利要求29所述的系统,所述数据抽取模块还能够执行如下步骤:(a)从所述第一数据端抽取所述第一数据,并按预定格式转换所述第一数据;(b)判断第一队列是否已满,如果未满,则将经转换的第一数据存入所述第一队列中并进入步骤(a),否则进入步骤(c);(c)针对所述经转换的第一数据累加一次发送失败次数,如所述发送失败次数未超过发送失败次数的上限,则等待预定时间后重新进入步骤(b),否则丢弃所述经转换的第一数据并进入步骤(a)。
- 根据权利要求29所述的系统,其中,所述第一装载结果是在所述上一周期中由所述第二数据端反馈的装载成功的历史数据的数量、在所述上一周期中由所述第二数据端反馈的装载失败的历史数据的数量,其中,所述系统还包括定时扫描模块,其用于统计在所述上一周期中已超过预定时间仍未收到所述第二数据端反馈的超时历史数据的数量,并且计算在所述上一周期中由所述第二数据端反馈的装载历史数据的成功率,并且将所述成功率发送至所述流速调节模块,其中,所述成功率通过如下公式来计算:其中,S为所述成功率,C s为在所述上一周期中由所述第二数据端反馈的装载成功的历史数据的数量,C f为在所述上一周期中由所述第二数据端反馈的装载失败的历史数据的数量,C t为在所述上一周期中已超过预定时间仍未收到所述第二数据端反馈的超时历史数据的数量。
- 根据权利要求33所述的系统,其中,所述流速调节模块还包括:第一模块,其用于在所述成功率小于等于成功率下限且所述第一流速 高于流速下限的情况下,按照第一预定数值减少所述第一流速以获得所述第二流速,在减少后的第一流速小于所述流速下限的情况下,将所述流速下限作为所述第二流速;第二模块,其用于在所述成功率小于等于成功率下限且所述第一流速等于所述流速下限的情况下,将所述流速下限作为所述第二流速;第三模块,其用于在所述成功率高于成功率调整阈值且所述流速低于流速上限的情况下,按照第二预定数值增加所述第一流速以获得所述第二流速,在增加后的第一流速大于所述流速上限的情况下,将所述流速上限作为所述第二流速;第四模块,其用于在所述成功率高于成功率调整阈值且所述第一流速达到流速上限的情况下,将所述流速上限作为所述第二流速;或第五模块,其用于在所述成功率在所述成功率下限和所述成功率调整阈值之间的情况下,将所述第一流速作为所述第二流速。
- 根据权利要求34所述的系统,其中,所述流速调节模块还包括:第六模块,其用于当所述第二流速在第一预定数量的周期内保持在所述流速上限,并且所述成功率大于所述成功率调整阈值时,按照第二预定数值增加所述流速上限和所述第二流速。
- 根据权利要求35所述的系统,其中,在所述按照第二预定数值增加所述流速上限和所述第二流速后,所述流速调节模块还能够在所述周期的下一周期中所述成功率下降的情况下,将增加后的流速上限和增加后的第二流速恢复到所述流速上限和所述第二流速并在第二预定数量的周期内不再增加所述流速上限。
- 根据权利要求34所述的系统,其中,所述流速调节模块还用于在多个周期中重复执行如下步骤并且实施所述重复执行操作的次数达到预设次数的情况下,确定所述流速上限设置错误并发出告警信息:在使用所述第三模块之后直接使用所述第一模块;或在使用所述第一模块之后直接使用所述第三模块。
- 根据权利要求33所述的系统,其中,所述流速调节模块还包括:用于在所述周期中根据所述第二流速和所述成功率生成用于装载所述第一数据的第一令牌和用于装载所述第二数据的第二令牌的模块;所述数据装载模块还包括:用于根据所述第一令牌提取第一队列中的第一数据并且根据所述第二令牌提取第二队列中的第二数据的模块;和用于将所提取的第一数据和所提取的第二数据装载到所述第二数据端的模块。
- 根据权利要求38所述的系统,其中,所述用于在所述周期中根据所述第二流速和所述成功率生成用于装载所述第一数据的第一令牌和用于装载所述第二数据的第二令牌的模块还包括:用于当所述成功率小于100%时,将所述成功率与所述第二流速相乘以作为装载所述第一数据的流速,将所述第二流速减去所述装载所述第一数据的流速之间的差值以得到装载所述第二数据的流速,更新所述装载所述第二数据的流速与所述第二流速的比值,并且根据所述装载所述第一数据的流速生成所述第一令牌且根据所述装载所述第二数据的流速生成所述第二令牌的模块;和用于当所述成功率等于100%时,将所述第二队列中的数据的个数、与所述比值和所述第二流速的乘积中的最小值作为所述装载所述第二数据的流速,将所述第二流速减去所述装载所述第二数据的流速之间的差值以得到装载所述第一数据的流速,更新所述比值,并且根据所述装载所述第一数据的流速生成所述第一令牌且根据所述装载所述第二数据的流速生成所述第二令牌的模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SG11202113121TA SG11202113121TA (en) | 2020-01-20 | 2020-08-14 | Data transmission method and system employing asynchronous response |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010065609.2A CN111291104B (zh) | 2020-01-20 | 2020-01-20 | 一种基于异步应答的传输数据的方法及系统 |
CN202010065609.2 | 2020-01-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021147304A1 true WO2021147304A1 (zh) | 2021-07-29 |
Family
ID=71025480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/109083 WO2021147304A1 (zh) | 2020-01-20 | 2020-08-14 | 一种基于异步应答的传输数据的方法及系统 |
Country Status (4)
Country | Link |
---|---|
CN (1) | CN111291104B (zh) |
SG (1) | SG11202113121TA (zh) |
TW (1) | TWI818188B (zh) |
WO (1) | WO2021147304A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291104B (zh) * | 2020-01-20 | 2023-07-28 | 中国银联股份有限公司 | 一种基于异步应答的传输数据的方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1169224A (zh) * | 1994-12-09 | 1997-12-31 | 英国电讯有限公司 | 多处理器环境 |
CN101174986A (zh) * | 2007-11-07 | 2008-05-07 | 中兴通讯股份有限公司 | 动态反馈负载分发方法和装置 |
WO2017192342A1 (en) * | 2016-05-04 | 2017-11-09 | Microsoft Technology Licensing, Llc | Initial and periodic slowdowns for background connections |
CN110191060A (zh) * | 2018-02-22 | 2019-08-30 | 中兴通讯股份有限公司 | 一种调整数据包发送码率的方法、装置、设备及系统 |
CN111291104A (zh) * | 2020-01-20 | 2020-06-16 | 中国银联股份有限公司 | 一种基于异步应答的传输数据的方法及系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3309020B2 (ja) * | 1994-06-20 | 2002-07-29 | 富士通株式会社 | 送信スループット制御装置及び方法 |
TW200537314A (en) * | 2004-05-03 | 2005-11-16 | Acer Inc | Transmission rate auto-adjusted bus system and method |
JP4499162B2 (ja) * | 2004-12-30 | 2010-07-07 | メッシュネットワークス インコーポレイテッド | 無線通信ネットワークにおけるノード間の通信リンクを管理するシステムおよび方法 |
CN1917413A (zh) * | 2005-08-18 | 2007-02-21 | 英业达股份有限公司 | 自动调整传输速率的方法 |
CN105900061B (zh) * | 2014-10-22 | 2018-01-16 | 华为技术有限公司 | 对象存储系统中的业务流控制方法、控制器和系统 |
CN107920027B (zh) * | 2016-10-08 | 2019-03-15 | 腾讯科技(深圳)有限公司 | 一种流量控制方法及装置 |
US10284480B2 (en) * | 2016-12-27 | 2019-05-07 | Netflix, Inc. | Packet loss tolerant transmission control protocol congestion control |
CN106850153B (zh) * | 2017-03-27 | 2020-05-22 | 网宿科技股份有限公司 | 数据重传方法及系统 |
-
2020
- 2020-01-20 CN CN202010065609.2A patent/CN111291104B/zh active Active
- 2020-08-11 TW TW109127142A patent/TWI818188B/zh active
- 2020-08-14 SG SG11202113121TA patent/SG11202113121TA/en unknown
- 2020-08-14 WO PCT/CN2020/109083 patent/WO2021147304A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1169224A (zh) * | 1994-12-09 | 1997-12-31 | 英国电讯有限公司 | 多处理器环境 |
CN101174986A (zh) * | 2007-11-07 | 2008-05-07 | 中兴通讯股份有限公司 | 动态反馈负载分发方法和装置 |
WO2017192342A1 (en) * | 2016-05-04 | 2017-11-09 | Microsoft Technology Licensing, Llc | Initial and periodic slowdowns for background connections |
CN110191060A (zh) * | 2018-02-22 | 2019-08-30 | 中兴通讯股份有限公司 | 一种调整数据包发送码率的方法、装置、设备及系统 |
CN111291104A (zh) * | 2020-01-20 | 2020-06-16 | 中国银联股份有限公司 | 一种基于异步应答的传输数据的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
TWI818188B (zh) | 2023-10-11 |
CN111291104A (zh) | 2020-06-16 |
TW202129516A (zh) | 2021-08-01 |
CN111291104B (zh) | 2023-07-28 |
SG11202113121TA (en) | 2021-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160285812A1 (en) | Method of issuing messages of a message queue and a message issuing device | |
US20180375783A1 (en) | Retry handling in messaging queues | |
CN109584072B (zh) | 一种平行链共识的交易发送方法、设备和存储介质 | |
WO2017181872A1 (zh) | 数据处理系统以及方法 | |
CN107995127A (zh) | 一种过载保护方法及装置 | |
WO2021147304A1 (zh) | 一种基于异步应答的传输数据的方法及系统 | |
CN114095438B (zh) | 数据传输方法、装置、设备、存储介质及计算机程序产品 | |
CN113407347B (zh) | 资源调度方法、装置、设备和计算机存储介质 | |
CN112527530B (zh) | 消息处理方法、装置、设备、存储介质及计算机程序产品 | |
CN115883077B (zh) | 请求处理方法、装置及电子设备 | |
JP4834622B2 (ja) | ビジネスプロセス運用管理システム、方法、プロセス運用管理装置およびそのプログラム | |
CN110825505A (zh) | 任务调度方法、装置、计算机设备及存储介质 | |
CN110708234A (zh) | 消息发送的处理方法、消息发送的处理装置及存储介质 | |
JP2009025971A (ja) | 情報処理装置、ログデータ収集システム | |
WO2019153482A1 (zh) | 一种反洗钱作业中数据包的生成方法、存储介质和服务器 | |
JP2011182115A (ja) | 通信方法、通信システム及びサーバ | |
CN116828044A (zh) | 基于数据平面开发套件的消息队列遥感传输方法和系统 | |
JP2016012801A (ja) | 通信装置、通信システム及び通信装置制御方法 | |
JP2008210110A (ja) | 業務システム及びその実行要求管理方法 | |
CN114567536A (zh) | 异常数据处理方法、装置、电子设备和存储介质 | |
JP5378847B2 (ja) | 監視装置 | |
CN113268365A (zh) | 实现分布式系统中延时消息的方法和装置、设备及存储介质 | |
US10135971B2 (en) | Congestion detection and dynamic throttling of automated telephone call attempts during mass call events | |
US7908546B2 (en) | Methods and apparatus for detection of performance conditions in processing system | |
US10148585B2 (en) | Communication control method, information processing apparatus, and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20915536 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20915536 Country of ref document: EP Kind code of ref document: A1 |