CN114138472A - 业务数据处理方法、装置和系统 - Google Patents
业务数据处理方法、装置和系统 Download PDFInfo
- Publication number
- CN114138472A CN114138472A CN202111382812.3A CN202111382812A CN114138472A CN 114138472 A CN114138472 A CN 114138472A CN 202111382812 A CN202111382812 A CN 202111382812A CN 114138472 A CN114138472 A CN 114138472A
- Authority
- CN
- China
- Prior art keywords
- message
- service data
- data processing
- node server
- tenant
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种业务数据处理方法、装置和系统,该方法可以通过多个节点服务器在设定时刻一起抢占分布式锁,且由抢锁成功的目标节点服务器获取与系统绑定的多个租户,产生与多个组合对应的多个消息,目标节点服务器可以将多个消息发送给消息中心,以使消息中心将多个消息分发给多个节点服务器,且每个节点服务器在接收到消息后,可以根据消息包括的数据要求信息生成多条业务数据,并对多条业务数据进行处理,将得到的数据处理结果存储到与该消息对应的租户中。由于通过消息中心按租户维度将业务数据合理划分至多个节点服务器,从而可以分摊单个节点服务器处理大量业务数据的压力,提高数据处理效率,维持了系统的稳定。
Description
技术领域
本申请涉及数据处理领域,具体涉及一种业务数据处理方法、装置和系统。
背景技术
在对数据进行处理的过程中通常会涉及到某一时刻大量数据来源计算生成大量数据的业务,此问题在数据量小的情况下,对处理数据的系统的影响较小,然而随着数据量的增长,对系统的影响就会越来越大。如果不对该问题加以解决,可能会因为对数据进行一次处理需要占用的服务器内存过大而导致系统的压力增大,从而造成系统的不可用,甚至造成系统崩溃,同时也会影响服务器上其他程序的运行,使得与该服务器有关的程序都会发生卡顿,进而影响用户的体验。
发明内容
为解决现有存在的技术问题,本申请实施例提供一种业务数据处理方法、装置和系统,可以在系统处理大量数据时,合理均衡地使用服务器内存,减小系统压力,保持系统的稳定。
为达到上述目的,本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种业务数据处理方法,应用于位于业务数据处理系统的节点服务器,所述业务数据处理系统包括多个节点服务器,所述方法包括:
所述节点服务器在设定时刻与所述业务数据处理系统中的其他节点服务器一起抢占分布式锁,且在抢占所述分布式锁成功后,获取与所述业务数据处理系统绑定的多个租户的租户标识以及所述多个租户对应的业务场景;其中,所述租户用于存储数据处理结果,每个租户分别对应一个租户标识;
所述节点服务器根据所述多个租户产生多个消息,并将所述多个消息发送给消息中心,以使所述消息中心将多个所述消息分发给所述业务数据处理系统中的节点服务器;其中,每个消息包括所述租户的租户标识以及所述租户对应的数据要求信息,所述数据要求信息是根据所述租户对应的业务场景确定的,且不同的消息包含的租户标识不同,所述消息的数量与所述租户标识的数量相同;
所述节点服务器在接收到所述消息中心发送的至少一个所述消息后,根据所述消息包括的数据要求信息生成所述消息对应的多条业务数据,并对所述多条业务数据进行处理,将得到的数据处理结果存储到所述消息包括的租户标识对应的租户中。
本申请实施例提供的业务数据处理方法,应用于位于业务数据处理系统的节点服务器,且业务数据处理系统可以包括多个节点服务器。该节点服务器在设定时刻可以与业务数据处理系统中的其他节点服务器一起抢占分布式锁,在抢占分布式锁成功后,获取与业务数据处理系统绑定的多个租户的租户标识以及多个租户对应的业务场景。其中,租户用于存储数据处理结果,每个租户分别对应一个租户标识。节点服务器可以根据该多个租户产生多个消息,并将多个消息发送给消息中心,以使消息中心将多个消息分发给业务数据处理系统中的节点服务器。其中,每个消息包括租户的租户标识以及租户对应的数据要求信息,数据要求信息是根据租户对应的业务场景确定的,且不同的消息包含的租户标识不同,消息的数量与租户标识的数量相同。节点服务器在接收到消息中心发送的至少一个消息后,根据消息包括的数据要求信息生成消息对应的多条业务数据,并对多条业务数据进行处理,将得到的数据处理结果存储到消息包括的租户标识对应的租户中。由于可以按照租户的维度对抢到分布式锁的节点服务器所产生的消息进行划分,且通过消息中心异步均衡地将各个消息发送到各个节点服务器,进而单个节点服务器可以根据接收到的消息生成对应的业务数据,从而分摊了单个节点服务器一次处理大量业务数据的压力且提高了对数据进行处理的处理效率,以及解决了多个节点服务器在处理数据时的资源无法合理均衡的问题,维持了系统的稳定性。
在一种可选的实施例中,所述节点服务器将所述多个消息发送给消息中心之后,所述方法还包括:
所述节点服务器接收所述消息中心返回的消息发送结果,若所述消息发送结果指示所述消息发送失败,则所述节点服务器将所述消息重新发送给所述消息中心,直至接收到所述消息中心返回的消息发送结果指示所述消息发送成功。
在该实施例中,节点服务器在将多个消息发送给消息中心之后,还可以接收消息中心返回的消息发送结果,若消息发送结果指示消息发送失败,则节点服务器可以将消息重新发送给消息中心,直至接收到消息中心返回的消息发送结果指示消息发送成功。从而可以保证节点服务器产生的多条消息均被成功地发送给消息中心,提高了对消息进行消费的可靠性和准确性。
在一种可选的实施例中,所述节点服务器根据所述多个租户产生多个消息之后,接收到所述消息中心发送的至少一个所述消息之前,所述方法还包括:
所述节点服务器对所述多个消息进行幂等处理。
在该实施例中,节点服务器在根据多个租户产生多个消息之后,且接收到消息中心发送的至少一个消息之前,还可以对多个消息进行幂等处理。从而可以防止消息的重复发送,保证消息发送的唯一性,同时也可以提高节点服务器的处理效率。
在一种可选的实施例中,所述节点服务器在接收到所述消息中心发送的至少一个所述消息后,根据所述消息包括的数据要求信息生成所述消息对应的多条业务数据之前,所述方法还包括:
所述节点服务器对接收到的至少一个所述消息进行幂等处理。
在该实施例中,节点服务器在接收到消息中心发送的至少一个消息后,且根据消息包括的数据要求信息生成消息对应的多条业务数据之前,还可以对接收到的至少一个消息进行幂等处理。从而可以防止消息的重复消费,保证对消息进行处理的准确性和可靠性,同时也可以提高节点服务器的处理效率。
在一种可选的实施例中,所述方法还包括:
若所述节点服务器生成所述消息对应的多条业务数据失败,或者所述节点服务器对所述消息对应的多条业务数据进行处理时出现错误,则所述节点服务器将所述消息发送给消息中心,以使所述消息中心重新将所述消息分发给所述业务数据处理系统中的任一节点服务器。
在该实施例中,若节点服务器生成消息对应的多条业务数据失败,或者节点服务器对消息对应的多条业务数据进行处理时出现错误,则节点服务器将消息发送给消息中心,以使消息中心重新将消息分发给业务数据处理系统中的任一节点服务器。从而可以保证对数据进行处理的准确性,以及保证进行处理的数据不多不少,满足业务要求,提高对数据进行处理的可靠性。
第二方面,本申请实施例还提供了一种业务数据处理方法,应用于位于业务数据处理系统的节点服务器,所述业务数据处理系统包括多个节点服务器,所述方法包括:
所述节点服务器在设定时刻与所述业务数据处理系统中的其他节点服务器一起抢占分布式锁,且在抢占所述分布式锁失败后,接收消息中心分发的至少一个消息;其中,所述至少一个消息为抢占所述分布式锁成功的其他节点服务器根据与所述业务数据处理系统绑定的多个租户产生,并发送给所述消息中心的;所述租户用于存储数据处理结果,每个租户分别对应一个租户标识;每个消息包括租户标识以及所述租户对应的数据要求信息,且不同的消息包含的租户标识不同,所述消息的数量与所述租户标识的数量相同;
所述节点服务器根据所述消息包括的数据要求信息生成所述消息对应的多条业务数据,并对所述多条业务数据进行处理,将得到的数据处理结果存储到所述消息包括的租户标识对应的租户中。
本申请实施例提供的业务数据处理方法,应用于位于业务数据处理系统的节点服务器,且业务数据处理系统包括多个节点服务器。该节点服务器在设定时刻与业务数据处理系统中的其他节点服务器一起抢占分布式锁,且在抢占分布式锁失败后,接收消息中心分发的至少一个消息。其中,至少一个消息为抢占分布式锁成功的其他节点服务器根据与业务数据处理系统绑定的多个租户产生,并发送给消息中心的,租户用于存储数据处理结果,每个租户分别对应一个租户标识,每个消息包括租户标识以及租户对应的数据要求信息,且不同的消息包含的租户标识不同,消息的数量与租户标识的数量相同。节点服务器根据消息包括的数据要求信息生成消息对应的多条业务数据,并对多条业务数据进行处理,将得到的数据处理结果存储到消息包括的租户标识对应的租户中。由于可以按照租户维度通过消息中心将大量的业务数据均衡地分摊到多个节点服务器中进行处理,从而降低了单个节点服务器单独处理大量业务数据的压力,提高了对数据进行处理的处理效率,维持了系统的稳定性。
在一种可选的实施例中,所述节点服务器接收消息中心分发的至少一个消息之后,根据所述消息包括的数据要求信息生成所述消息对应的多条业务数据之前,所述方法还包括:
所述节点服务器对接收到的所述至少一个消息进行幂等处理。
在该实施例中,节点服务器在接收消息中心分发的至少一个消息之后,且根据消息包括的数据要求信息生成消息对应的多条业务数据之前,还可以对接收到的至少一个消息进行幂等处理。从而可以防止消息的重复消费,保证对消息进行处理的准确性和可靠性,同时也可以提高节点服务器的处理效率。
在一种可选的实施例中,所述方法还包括:
若所述节点服务器生成所述消息对应的多条业务数据失败,或者所述节点服务器对所述消息对应的多条业务数据进行处理时出现错误,则所述节点服务器将所述消息发送给消息中心,以使所述消息中心重新将所述消息分发给所述业务数据处理系统中的任一节点服务器。
在该实施例中,若节点服务器生成消息对应的多条业务数据失败,或者节点服务器对消息对应的多条业务数据进行处理时出现错误,则节点服务器将消息发送给消息中心,以使消息中心重新将消息分发给业务数据处理系统中的任一节点服务器。从而可以保证对数据进行处理的准确性,以及保证进行处理的数据不多不少,满足业务要求,提高对数据进行处理的可靠性。
第三方面,本申请实施例还提供了一种业务数据处理方法,应用于位于业务数据处理系统的消息中心,所述方法包括:
所述消息中心接收所述业务数据处理系统的多个节点服务器中的目标节点服务器发送的多个消息;其中,所述目标节点服务器为在设定时刻与所述业务数据处理系统中的其他节点服务器一起抢占分布式锁,且抢占所述分布式锁成功的节点服务器;所述多个消息为所述目标节点服务器根据与所述业务数据处理系统绑定的多个租户产生的;所述租户用于存储数据处理结果,每个租户分别对应一个租户标识;每个消息包括租户标识以及所述租户对应的数据要求信息,且不同的消息包含的租户标识不同,所述消息的数量与所述租户标识的数量相同;
所述消息中心将多个所述消息分发给所述业务数据处理系统中的多个节点服务器,以使所述多个节点服务器分别根据接收到的所述消息包括的数据要求信息生成所述消息对应的多条业务数据,并对所述多条业务数据进行处理,将得到的数据处理结果存储到所述消息包括的租户标识对应的租户中。
本申请实施例提供的业务数据处理方法,应用于位于业务数据处理系统的消息中心。消息中心可以接收业务数据处理系统的多个节点服务器中的目标节点服务器发送的多个消息。其中,目标节点服务器为在设定时刻与业务数据处理系统中的其他节点服务器一起抢占分布式锁,且抢占分布式锁成功的节点服务器,多个消息为目标节点服务器根据与业务数据处理系统绑定的多个租户产生的,租户用于存储数据处理结果,每个租户分别对应一个租户标识,每个消息包括租户标识以及租户对应的数据要求信息,且不同的消息包含的租户标识不同,消息的数量与租户标识的数量相同。消息中心可以将多个消息分发给业务数据处理系统中的多个节点服务器,以使多个节点服务器分别根据接收到的消息包括的数据要求信息生成消息对应的多条业务数据,并对多条业务数据进行处理,将得到的数据处理结果存储到消息包括的租户标识对应的租户中。由于抢到分布式锁的节点服务器可以将产生的多个消息通过消息中心异步均衡地发送到各个节点服务器,且产生的多个消息是根据租户维度得到的,进而可以使得各个节点服务器可以分别根据接收到的消息生成对应的业务数据,从而分摊了单个节点服务器一次处理大量业务数据的压力且提高了对数据进行处理的处理效率,以及解决了多个节点服务器在处理数据时的资源无法合理均衡的问题,维持了系统的稳定性。
在一种可选的实施例中,所述消息中心将多个所述消息分发给所述业务数据处理系统中的多个节点服务器之后,所述方法还包括:
若所述消息中心接收到所述节点服务器发送的所述消息,则所述消息中心重新将所述消息分发给所述业务数据处理系统中的任一节点服务器;其中,所述消息为所述节点服务器生成所述消息对应的多条业务数据失败,或者所述节点服务器对所述消息对应的多条业务数据进行处理时出现错误的消息。
在该实施例中,消息中心在将多个消息分发给业务数据处理系统中的多个节点服务器之后,若消息中心接收到节点服务器发送的消息,则消息中心重新将消息分发给业务数据处理系统中的任一节点服务器。其中,消息为节点服务器生成消息对应的多条业务数据失败,或者节点服务器对消息对应的多条业务数据进行处理时出现错误的消息。从而可以保证对数据进行处理的准确性,以及保证进行处理的数据不多不少,满足业务要求,提高对数据进行处理的可靠性。
第四方面,本申请实施例还提供了一种业务数据处理装置,应用于位于业务数据处理系统的节点服务器,所述业务数据处理系统包括多个节点服务器,所述装置包括:
租户获取单元,用于在设定时刻与所述业务数据处理系统中的其他节点服务器一起抢占分布式锁,且在抢占所述分布式锁成功后,获取与所述业务数据处理系统绑定的多个租户的租户标识以及所述多个租户对应的业务场景;其中,所述租户用于存储数据处理结果,每个租户分别对应一个租户标识;
消息发送单元,用于根据所述多个租户产生多个消息,并将所述多个消息发送给消息中心,以使所述消息中心将多个所述消息分发给所述业务数据处理系统中的节点服务器;其中,每个消息包括所述租户的租户标识以及所述租户对应的数据要求信息,所述数据要求信息是根据所述租户对应的业务场景确定的,且不同的消息包含的租户标识不同,所述消息的数量与所述租户标识的数量相同;
数据处理单元,用于在接收到所述消息中心发送的至少一个所述消息后,根据所述消息包括的数据要求信息生成所述消息对应的多条业务数据,并对所述多条业务数据进行处理,将得到的数据处理结果存储到所述消息包括的租户标识对应的租户中。
在一种可选的实施例中,所述装置还包括结果处理单元,用于:
接收所述消息中心返回的消息发送结果,若所述消息发送结果指示所述消息发送失败,则将所述消息重新发送给所述消息中心,直至接收到所述消息中心返回的消息发送结果指示所述消息发送成功。
在一种可选的实施例中,所述装置还包括消息处理单元,用于:
对所述多个消息进行幂等处理。
在一种可选的实施例中,所述消息处理单元,还用于:
对接收到的至少一个所述消息进行幂等处理。
在一种可选的实施例中,所述装置还包括消息回滚单元,用于:
若生成所述消息对应的多条业务数据失败,或者对所述消息对应的多条业务数据进行处理时出现错误,则将所述消息发送给消息中心,以使所述消息中心重新将所述消息分发给所述业务数据处理系统中的任一节点服务器。
第五方面,本申请实施例还提供了一种业务数据处理装置,应用于位于业务数据处理系统的节点服务器,所述业务数据处理系统包括多个节点服务器,所述装置包括:
消息接收单元,用于在设定时刻与所述业务数据处理系统中的其他节点服务器一起抢占分布式锁,且在抢占所述分布式锁失败后,接收消息中心分发的至少一个消息;其中,所述至少一个消息为抢占所述分布式锁成功的其他节点服务器根据与所述业务数据处理系统绑定的多个租户产生,并发送给所述消息中心的;所述租户用于存储数据处理结果,每个租户分别对应一个租户标识;每个消息包括租户标识以及所述租户对应的数据要求信息,且不同的消息包含的租户标识不同,所述消息的数量与所述租户标识的数量相同;
数据处理单元,用于根据所述消息包括的数据要求信息生成所述消息对应的多条业务数据,并对所述多条业务数据进行处理,将得到的数据处理结果存储到所述消息包括的租户标识对应的租户中。
在一种可选的实施例中,所述装置还包括消息处理单元,用于:
对接收到的所述至少一个消息进行幂等处理。
在一种可选的实施例中,所述装置还包括消息回滚单元,用于:
若生成所述消息对应的多条业务数据失败,或者对所述消息对应的多条业务数据进行处理时出现错误,则将所述消息发送给消息中心,以使所述消息中心重新将所述消息分发给所述业务数据处理系统中的任一节点服务器。
第六方面,本申请实施例还提供了一种业务数据处理装置,应用于位于业务数据处理系统的消息中心,所述装置包括:
消息接收单元,用于接收所述业务数据处理系统的多个节点服务器中的目标节点服务器发送的多个消息;其中,所述目标节点服务器为在设定时刻与所述业务数据处理系统中的其他节点服务器一起抢占分布式锁,且抢占所述分布式锁成功的节点服务器;所述多个消息为所述目标节点服务器根据与所述业务数据处理系统绑定的多个租户产生的;所述租户用于存储数据处理结果,每个租户分别对应一个租户标识;每个消息包括租户标识以及所述租户对应的数据要求信息,且不同的消息包含的租户标识不同,所述消息的数量与所述租户标识的数量相同;
消息分发单元,用于将多个所述消息分发给所述业务数据处理系统中的多个节点服务器,以使所述多个节点服务器分别根据接收到的所述消息包括的数据要求信息生成所述消息对应的多条业务数据,并对所述多条业务数据进行处理,将得到的数据处理结果存储到所述消息包括的租户标识对应的租户中。
在一种可选的实施例中,所述消息分发单元,还用于:
若接收到所述节点服务器发送的所述消息,则重新将所述消息分发给所述业务数据处理系统中的任一节点服务器;其中,所述消息为所述节点服务器生成所述消息对应的多条业务数据失败,或者所述节点服务器对所述消息对应的多条业务数据进行处理时出现错误的消息。
第七方面,本申请实施例还提供了一种节点服务器,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器实现上述第一方面的业务数据处理方法。
第八方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述第一方面的业务数据处理方法。
第九方面,本申请实施例还提供了一种节点服务器,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器实现上述第二方面的业务数据处理方法。
第十方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述第二方面的业务数据处理方法。
第十一方面,本申请实施例还提供了一种消息中心,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器实现上述第三方面的业务数据处理方法。
第十二方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述第三方面的业务数据处理方法。
第十三方面,本申请实施例还提供了一种业务数据处理系统,所述业务数据处理系统包括第七方面和第九方面的节点服务器,第十一方面的消息中心以及与所述节点服务器连接的分布式锁。
第四方面、第七方面、第八方面或第十三方面中任意一种实现方式所带来的技术效果可参见第一方面的实现方式所带来的技术效果,此处不再赘述。
第五方面、第九方面、第十方面或第十三方面中任意一种实现方式所带来的技术效果可参见第二方面的实现方式所带来的技术效果,此处不再赘述。
第六方面、第十一方面、第十二方面或第十三方面中任意一种实现方式所带来的技术效果可参见第三方面的实现方式所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种业务数据处理系统的结构示意图;
图2为本申请实施例提供的一种节点服务器的结构示意图;
图3为本申请实施例提供的一种消息中心的结构示意图;
图4为本申请实施例提供的一种业务数据处理方法的交互流程示意图;
图5为本申请实施例提供的一种业务数据处理方法的流程示意图;
图6为本申请实施例提供的另一种业务数据处理方法的流程示意图;
图7为本申请实施例提供的又一种业务数据处理方法的流程示意图;
图8为本申请实施例提供的一种业务数据处理装置的结构示意图;
图9为本申请实施例提供的另一种业务数据处理装置的结构示意图;
图10为本申请实施例提供的又一种业务数据处理装置的结构示意图;
图11为本申请实施例提供的又一种业务数据处理装置的结构示意图;
图12为本申请实施例提供的又一种业务数据处理装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
需要说明的是,本申请的文件中涉及的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面将结合附图,对本申请实施例提供的技术方案进行详细说明。
下文中所用的词语“示例性”的意思为“用作例子、实施例或说明性”。作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
图1中示例性示出了本申请实施例提供的一种业务数据处理系统的结构示意图。如图1所示,业务数据处理系统中可以包括多个节点服务器100、消息中心200和分布式锁300。
其中,节点服务器100的结构可以如图2所示,包括存储器101,通讯模块103以及一个或多个处理器102。
存储器101,用于存储处理器102执行的计算机程序。存储器101可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
处理器102,可以包括一个或多个中央处理单元(central processing unit,CPU)或者为数字处理单元等等。处理器102,用于调用存储器101中存储的计算机程序时实现本申请实施例提供的业务数据处理方法。
通讯模块103用于与业务数据处理系统中的消息中心、分布式锁或其他节点服务器进行通信。
本申请实施例中不限定上述存储器101、通讯模块103和处理器102之间的具体连接介质。本申请实施例在图2中以存储器101和处理器102之间通过总线104连接,总线104在图2中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线104可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
消息中心200的结构可以如图3所示,包括存储器201,通讯模块203以及一个或多个处理器202。
存储器201,用于存储处理器202执行的计算机程序。存储器201可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
处理器202,可以包括一个或多个中央处理单元(central processing unit,CPU)或者为数字处理单元等等。处理器202,用于调用存储器201中存储的计算机程序时实现本申请实施例提供的业务数据处理方法。
通讯模块203用于与业务数据处理系统中的节点服务器进行通信。
本申请实施例中不限定上述存储器201、通讯模块203和处理器202之间的具体连接介质。本申请实施例在图3中以存储器201和处理器202之间通过总线204连接,总线204在图3中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线204可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
分布式锁300为用于给多个节点服务器提供执行抢锁操作的设备,且多个服务器执行抢锁操作后,只有一个节点服务器能够抢锁成功。
目前,在相关技术中常采用以下三种方式来对数据进行处理:第一种方式,使用简单的数据分页操作,此类操作在对大量数据进行处理时,耗时过长、效率低,并且会长时间地占有服务器资源,使得服务器资源得不到释放,挤压程序处理其他问题的资源;第二种方式,使用并行操作,此类操作由于在对数据进行处理时事物是线程隔离的,因此无法保证数据的事务性;第三种方式,使用服务多节点操作,此类操作无法做到合理的均衡服务器资源,可能会导致数据处理重复、数据丢失等问题。
为了提高对数据的处理效率,合理均衡地使用服务器资源,保证对数据进行处理的正确性,本申请实施例提供一种业务数据处理方法,该方法可以应用于业务数据处理系统中,且需要通过位于业务数据处理系统中的多个节点服务器、消息中心和分布式锁来协作完成。图4为业务数据处理系统中的多个节点服务器、消息中心和分布式锁之间执行业务数据处理方法的交互流程图。如图4所示,可以包括以下步骤:
步骤S401,多个节点服务器在设定时刻一起请求抢占分布式锁。
在设定时刻通过业务数据处理系统对业务数据进行处理时,可以先通过多个节点服务器一起请求抢占分布式锁。
在本申请中,节点服务器的数量可以根据业务数据处理系统中所需要处理的业务数据的数据量大小来进行配置,或者,也可以根据服务器的资源配置高低来进行配置,本申请对此不作限定。并且,业务数据处理系统中的多个节点服务器可以是分布在业务数据处理系统中的多个独立服务器,也可以是一个服务器中的多个线程。
步骤S402,分布式锁发送抢锁结果给多个节点服务器。
分布式锁在接收到多个节点服务器的抢锁请求后,可以执行抢锁操作,并将抢锁结果发送给多个节点服务器中的每个节点服务器,且保证只有一个节点服务器可以抢锁成功。
步骤S403,抢占分布式锁成功的目标节点服务器获取与业务数据处理系统绑定的多个租户的租户标识以及多个租户对应的业务场景。
多个节点服务器在接收到分布式锁发送的抢锁结果后,可以将接收到抢锁成功指示的节点服务器作为目标节点服务器,且目标节点服务器可以获取与业务数据处理系统绑定的多个租户的租户标识以及多个租户对应的业务场景。
其中,租户用于存储数据处理结果,每个租户分别对应一个租户标识。且本申请中的租户的数量可以任意指定,在此不作限定。
步骤S404,目标节点服务器根据多个租户产生多个消息。
其中,每个消息包括租户的租户标识以及租户对应的数据要求信息,数据要求信息是根据租户对应的业务场景确定的,且不同的消息包含的租户标识不同,消息的数量与租户标识的数量相同。
例如,租户的数量为5,则目标节点服务器可以对应产生5个消息。
步骤S405,目标节点服务器发送多个消息给消息中心。
在一种实施例中,目标节点服务器发送多个消息给消息中心之后,消息中心还可以返回目标节点服务器发送的消息发送结果,若消息发送结果指示消息发送失败,则节点服务器将消息重新发送给消息中心,直至接收到消息中心返回的消息发送结果指示消息发送成功。
在另一种实施例中,目标节点服务器在将多个消息发送给消息中心的过程中,还可以对所发送的多个消息进行幂等处理,防止消息被重复发送。
幂等处理是指一个操作,不论执行多少次,产生的效果和返回的结果都是一样的。幂等处理可以解决一条消息,由于网络抖动等原因,被重复发送了多次时的数据一致性问题。
步骤S406,消息中心分发多个消息给多个节点服务器。
消息中心在接收到目标节点服务器发送的多个消息后,可以将该多个消息加入至位于消息中心的消息队列中,之后消息中心可以从消息队列中取出每个消息,并异步地将多个消息均衡分发给多个节点服务器。
在一种实施例中,消息中心在将多个消息分发给多个节点服务器时,可以采用例如轮询和hash等策略将多个消息分发给多个节点服务器。且本申请对消息中心将多个消息分发给多个节点服务器所采用的策略不作限定。
例如,假设有节点服务器A、节点服务器B和节点服务器C共3个节点服务器,以及消息a、消息b、消息c、消息d和消息e共5个消息,则消息中心可以先将消息a、消息b和消息c分别分发给节点服务器A、节点服务器B和节点服务器C,使得节点服务器A、节点服务器B和节点服务器C中的每个节点服务器可以接收到消息a、消息b和消息c中的任意一个消息;然后,消息中心可以将剩余的消息d和消息e分别分发给节点服务器A、节点服务器B和节点服务器C中的任意两个节点服务器,且该两个节点服务器中的每个节点服务器只能接收到消息d和消息e中的一个消息。
步骤S407,多个节点服务器分别根据接收到的至少一个消息包括的数据要求信息生成每个消息对应的多条业务数据。
每个节点服务器在接收到消息中心发送的至少一个消息后,对于接收到的每个消息,每个节点服务器可以根据该消息包括的数据要求信息生成该消息对应的多条业务数据。
在一种实施例中,对于多个节点服务器中的每个节点服务器,当节点服务器在接收到消息中心发送的至少一个消息后,并根据每个消息包括的数据要求信息分别生成该消息对应的多条业务数据之前,节点服务器还可以对接收到的至少一个消息进行幂等处理,以防止消息的重复消费处理。
步骤S408,多个节点服务器分别对每个消息对应的多条业务数据进行处理,将得到的数据处理结果存储到每个消息包括的租户标识对应的租户中。
每个节点服务器在根据接收到每个消息包括的数据要求信息生成该消息对应的多条业务数据后,可以对该业务数据进行处理,并将得到的数据处理结果存储到该消息包括的租户标识对应的租户中。
在一种实施例中,对于多个节点服务器中的每个节点服务器,若节点服务器生成接收到的消息对应的多条业务数据失败,或者节点服务器对该消息对应的多条业务数据进行处理时出现错误,则节点服务器可以将该消息发送给消息中心,以使消息中心可以重新将该消息分发给多个节点服务器中的任一节点服务器。
下面采用一个具体的应用场景,对本申请提出的业务数据处理方法进行详细说明:
假设业务数据处理系统中有节点服务器A、节点服务器B和节点服务器C共3个节点服务器,与该业务数据处理系统所绑定的租户有3个,且每个租户都具有一个对应的租户标识和业务场景。
在设定时刻业务数据处理系统需要开始进行业务数据生成和处理操作,则业务数据处理系统中的节点服务器A、节点服务器B和节点服务器C可以一起请求抢占分布式锁,假设节点服务器A抢锁成功,则节点服务器A可以去获取与业务数据处理系统绑定的3个租户中每个租户对应的租户标识以及3个租户中每个租户对应的业务场景。
在获取到租户信息后,节点服务器A可以根据该3个租户对应产生消息a、消息b和消息c共3个消息。其中,每个消息分别包括一个租户对应的租户标识以及该租户对应的数据要求信息,该数据要求信息是根据租户对应的业务场景确定的。且消息a包括租户1对应的租户标识和租户1对应的数据要求信息,消息b包括租户2对应的租户标识和租户2对应的数据要求信息,消息c包括租户3对应的租户标识和租户3对应的数据要求信息。
节点服务器A在产生消息a、消息b和消息c后,可以将消息a、消息b和消息c发送给业务数据处理系统中的消息中心,消息中心可以先将消息a、消息b和消息c加入至位于消息中心中的消息队列中,然后将消息a、消息b和消息c分别从消息队列中取出,并异步地均衡分发给节点服务器A、节点服务器B和节点服务器C。且消息中心将消息a、消息b和消息c分别分发给节点服务器A、节点服务器B和节点服务器C时,可以使得节点服务器A接收到消息a、节点服务器B接收到消息b、节点服务器C接收到消息c。
节点服务器A可以根据消息a包括的数据要求信息生成消息a对应的多条业务数据,并对该多条业务数据进行处理,将得到的数据处理结果存储到租户1中。节点服务器B可以根据消息b包括的数据要求信息生成消息b对应的多条业务数据,并对该多条业务数据进行处理,将得到的数据处理结果存储到租户2中。节点服务器C可以根据消息c包括的数据要求信息生成消息c对应的多条业务数据,并对该多条业务数据进行处理,将得到的数据处理结果存储到租户3中。
本申请实施例提供的业务数据处理方法,可以应用于业务数据处理系统中,通过业务数据处理系统中的多个节点服务器在设定时刻一起抢占分布式锁,并由抢占分布式锁成功的目标节点服务器获取与业务数据处理系统绑定的多个租户,目标节点服务器可以根据多个租户对应产生与租户数量相同的多个消息,以及将多个消息发送给消息中心,以使消息中心在将多个消息加入至消息队列中后,再从消息队列中取出多个消息,并将该多个消息异步均衡地分发给多个节点服务器,每个节点服务器在接收到消息中心分发的至少一个消息后,对于至少一个消息中的每个消息,每个节点服务器可以分别根据该消息包括的数据要求信息生成该消息对应的多条业务数据,并分别对该多条业务数据进行处理,将得到的数据处理结果存储到该消息包括的租户标识对应的租户中。
该方法由于通过划分租户维度的方式来处理业务数据,从而可以降低每个节点服务器对业务数据进行处理的数据量,且该方法还可以按租户维度将产生的消息发送至消息队列,以通过消息队列对消息进行异步处理,将消息均衡地分发至多个节点服务器,从而分摊了单个节点服务器单独处理大量业务数据的压力,降低了每个节点服务器对业务数据进行处理所耗费的时间,提高了数据处理效率,达到了平衡多个节点服务器和服务器资源的均衡,维持了系统的稳定。此外,该方法在对消息进行消费的过程中,还可以对消息进行幂等处理,从而可以防止消息的重复消费,保证事件不丢失和不重复,并且每个节点服务器在对消息进行消费或对业务数据进行处理的过程中如果出现错误,则可以将消息重新投递到消息队列中,以等待消息队列对该消息的重新发送处理,以保证对业务数据进行处理的准确性和完整性。
基于同一发明构思,本申请实施例中还提供了一种业务数据处理方法,该方法应用于位于业务数据处理系统的节点服务器,且业务数据处理系统包括多个节点服务器。如图5所示,该方法可以包括如下步骤:
步骤S501,节点服务器在设定时刻与业务数据处理系统中的其他节点服务器一起抢占分布式锁,且在抢占分布式锁成功后,获取与业务数据处理系统绑定的多个租户的租户标识以及多个租户对应的业务场景。
其中,租户用于存储数据处理结果,每个租户分别对应一个租户标识。
步骤S502,节点服务器根据多个租户产生多个消息,并将多个消息发送给消息中心,以使消息中心将多个消息分发给业务数据处理系统中的节点服务器。
其中,每个消息包括租户的租户标识以及租户对应的数据要求信息,数据要求信息是根据租户对应的业务场景确定的,且不同的消息包含的租户标识不同,消息的数量与租户标识的数量相同。
步骤S503,节点服务器在接收到消息中心发送的至少一个消息后,根据消息包括的数据要求信息生成消息对应的多条业务数据,并对多条业务数据进行处理,将得到的数据处理结果存储到消息包括的租户标识对应的租户中。
在一种可选的实施例中,在节点服务器将多个消息发送给消息中心之后,上述方法还包括:
节点服务器接收消息中心返回的消息发送结果,若消息发送结果指示消息发送失败,则节点服务器将消息重新发送给消息中心,直至接收到消息中心返回的消息发送结果指示消息发送成功。
在一种可选的实施例中,节点服务器在根据多个租户产生多个消息之后,且接收到消息中心发送的至少一个消息之前,上述方法还包括:
节点服务器对多个消息进行幂等处理。
在一种可选的实施例中,节点服务器在接收到消息中心发送的至少一个消息后,且根据消息包括的数据要求信息生成消息对应的多条业务数据之前,上述方法还包括:
节点服务器对接收到的至少一个消息进行幂等处理。
在一种可选的实施例中,上述方法还包括:
若节点服务器生成消息对应的多条业务数据失败,或者节点服务器对消息对应的多条业务数据进行处理时出现错误,则节点服务器将消息发送给消息中心,以使消息中心重新将消息分发给业务数据处理系统中的任一节点服务器。
基于同一发明构思,本申请实施例中还提供了一种业务数据处理方法,该方法应用于位于业务数据处理系统的节点服务器,且业务数据处理系统包括多个节点服务器。如图6所示,该方法可以包括如下步骤:
步骤S601,节点服务器在设定时刻与业务数据处理系统中的其他节点服务器一起抢占分布式锁,且在抢占分布式锁失败后,接收消息中心分发的至少一个消息。
其中,至少一个消息为抢占分布式锁成功的其他节点服务器根据与业务数据处理系统绑定的多个租户产生,并发送给消息中心的。租户用于存储数据处理结果,每个租户分别对应一个租户标识。每个消息包括租户标识以及租户对应的数据要求信息,且不同的消息包含的租户标识不同,消息的数量与租户标识的数量相同。
步骤S602,节点服务器根据消息包括的数据要求信息生成消息对应的多条业务数据,并对多条业务数据进行处理,将得到的数据处理结果存储到消息包括的租户标识对应的租户中。
在一种可选的实施例中,节点服务器在接收消息中心分发的至少一个消息之后,且根据消息包括的数据要求信息生成消息对应的多条业务数据之前,上述方法还包括:
节点服务器对接收到的至少一个消息进行幂等处理。
在一种可选的实施例中,上述方法还包括:
若节点服务器生成消息对应的多条业务数据失败,或者节点服务器对消息对应的多条业务数据进行处理时出现错误,则节点服务器将消息发送给消息中心,以使消息中心重新将消息分发给业务数据处理系统中的任一节点服务器。
基于同一发明构思,本申请实施例中还提供了一种业务数据处理方法,该方法应用于位于业务数据处理系统的消息中心。如图7所示,该方法可以包括如下步骤:
步骤S701,消息中心接收业务数据处理系统的多个节点服务器中的目标节点服务器发送的多个消息。
其中,目标节点服务器为在设定时刻与业务数据处理系统中的其他节点服务器一起抢占分布式锁,且抢占分布式锁成功的节点服务器。多个消息为目标节点服务器根据与业务数据处理系统绑定的多个租户产生的。租户用于存储数据处理结果,每个租户分别对应一个租户标识,每个消息包括租户标识以及租户对应的数据要求信息,且不同的消息包含的租户标识不同,消息的数量与租户标识的数量相同。
步骤S702,消息中心将多个消息分发给业务数据处理系统中的多个节点服务器,以使多个节点服务器分别根据接收到的消息包括的数据要求信息生成消息对应的多条业务数据,并对多条业务数据进行处理,将得到的数据处理结果存储到消息包括的租户标识对应的租户中。
在一种可选的实施例中,消息中心在将多个消息分发给业务数据处理系统中的多个节点服务器之后,上述方法还包括:
若消息中心接收到节点服务器发送的消息,则消息中心重新将消息分发给业务数据处理系统中的任一节点服务器;其中,消息为节点服务器生成消息对应的多条业务数据失败,或者节点服务器对消息对应的多条业务数据进行处理时出现错误的消息。
与图5所示的业务数据处理方法基于同一发明构思,本申请实施例中还提供了一种业务数据处理装置,该业务数据处理装置应用于位于业务数据处理系统的节点服务器,且业务数据处理系统包括多个节点服务器。由于该装置是本申请实施例业务数据处理方法对应的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见上述方法的实施,重复之处不再赘述。
图8示出了本申请实施例提供的一种业务数据处理装置的结构示意图,如图8所示,该业务数据处理装置包括租户获取单元801、消息发送单元802和数据处理单元803。
其中,租户获取单元801,用于在设定时刻与业务数据处理系统中的其他节点服务器一起抢占分布式锁,且在抢占分布式锁成功后,获取与业务数据处理系统绑定的多个租户的租户标识以及多个租户对应的业务场景;其中,租户用于存储数据处理结果,每个租户分别对应一个租户标识;
消息发送单元802,用于根据多个租户产生多个消息,并将多个消息发送给消息中心,以使消息中心将多个消息分发给业务数据处理系统中的节点服务器;其中,每个消息包括租户的租户标识以及租户对应的数据要求信息,数据要求信息是根据租户对应的业务场景确定的,且不同的消息包含的租户标识不同,消息的数量与租户标识的数量相同;
数据处理单元803,用于在接收到消息中心发送的至少一个消息后,根据消息包括的数据要求信息生成消息对应的多条业务数据,并对多条业务数据进行处理,将得到的数据处理结果存储到消息包括的租户标识对应的租户中。
在一种可选的实施例中,如图9所示,上述装置还可以包括结果处理单元901,用于:
接收消息中心返回的消息发送结果,若消息发送结果指示消息发送失败,则将消息重新发送给消息中心,直至接收到消息中心返回的消息发送结果指示消息发送成功。
在一种可选的实施例中,如图9所示,上述装置还可以包括消息处理单元902,用于:
对多个消息进行幂等处理。
在一种可选的实施例中,消息处理单元902,还用于:
对接收到的至少一个消息进行幂等处理。
在一种可选的实施例中,如图9所示,上述装置还可以包括消息回滚单元903,用于:
若生成消息对应的多条业务数据失败,或者对消息对应的多条业务数据进行处理时出现错误,则将消息发送给消息中心,以使消息中心重新将消息分发给业务数据处理系统中的任一节点服务器。
与图6所示的业务数据处理方法基于同一发明构思,本申请实施例中还提供了一种业务数据处理装置,该业务数据处理装置应用于位于业务数据处理系统的节点服务器,且业务数据处理系统包括多个节点服务器。由于该装置是本申请实施例业务数据处理方法对应的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见上述方法的实施,重复之处不再赘述。
图10示出了本申请实施例提供的另一种业务数据处理装置的结构示意图,该业务数据处理装置应用于位于业务数据处理系统的节点服务器,且业务数据处理系统包括多个节点服务器。如图10所示,该业务数据处理装置包括消息接收单元1001和数据处理单元1002。
其中,消息接收单元1001,用于在设定时刻与业务数据处理系统中的其他节点服务器一起抢占分布式锁,且在抢占分布式锁失败后,接收消息中心分发的至少一个消息;其中,至少一个消息为抢占分布式锁成功的其他节点服务器根据与业务数据处理系统绑定的多个租户产生,并发送给消息中心的;租户用于存储数据处理结果,每个租户分别对应一个租户标识;每个消息包括租户标识以及租户对应的数据要求信息,且不同的消息包含的租户标识不同,消息的数量与租户标识的数量相同;
数据处理单元1002,用于根据消息包括的数据要求信息生成消息对应的多条业务数据,并对多条业务数据进行处理,将得到的数据处理结果存储到消息包括的租户标识对应的租户中。
在一种可选的实施例中,如图11所示,上述装置还可以包括消息处理单元1101,用于:
对接收到的至少一个消息进行幂等处理。
在一种可选的实施例中,如图11所示,上述装置还可以包括消息回滚单元1102,用于:
若生成消息对应的多条业务数据失败,或者对消息对应的多条业务数据进行处理时出现错误,则将消息发送给消息中心,以使消息中心重新将消息分发给业务数据处理系统中的任一节点服务器。
与图7所示的业务数据处理方法基于同一发明构思,本申请实施例中还提供了一种业务数据处理装置,该业务数据处理装置应用于位于业务数据处理系统的消息中心。由于该装置是本申请实施例业务数据处理方法对应的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见上述方法的实施,重复之处不再赘述。
图12示出了本申请实施例提供的又一种业务数据处理装置的结构示意图,该业务数据处理装置应用于位于业务数据处理系统的消息中心。如图12所示,该业务数据处理装置包括消息接收单元1201和消息分发单元1202。
其中,消息接收单元1201,用于接收业务数据处理系统的多个节点服务器中的目标节点服务器发送的多个消息;其中,目标节点服务器为在设定时刻与业务数据处理系统中的其他节点服务器一起抢占分布式锁,且抢占分布式锁成功的节点服务器;多个消息为目标节点服务器根据与业务数据处理系统绑定的多个租户产生的;租户用于存储数据处理结果,每个租户分别对应一个租户标识;每个消息包括租户标识以及租户对应的数据要求信息,且不同的消息包含的租户标识不同,消息的数量与租户标识的数量相同;
消息分发单元1202,用于将多个消息分发给业务数据处理系统中的多个节点服务器,以使多个节点服务器分别根据接收到的消息包括的数据要求信息生成消息对应的多条业务数据,并对多条业务数据进行处理,将得到的数据处理结果存储到消息包括的租户标识对应的租户中。
在一种可选的实施例中,消息分发单元1202,还用于:
若接收到节点服务器发送的消息,则重新将消息分发给业务数据处理系统中的任一节点服务器;其中,消息为节点服务器生成消息对应的多条业务数据失败,或者节点服务器对消息对应的多条业务数据进行处理时出现错误的消息。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的业务数据处理方法。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (10)
1.一种业务数据处理方法,其特征在于,应用于位于业务数据处理系统的节点服务器,所述业务数据处理系统包括多个节点服务器,所述方法包括:
所述节点服务器在设定时刻与所述业务数据处理系统中的其他节点服务器一起抢占分布式锁,且在抢占所述分布式锁成功后,获取与所述业务数据处理系统绑定的多个租户的租户标识以及所述多个租户对应的业务场景;其中,所述租户用于存储数据处理结果,每个租户分别对应一个租户标识;
所述节点服务器根据所述多个租户产生多个消息,并将所述多个消息发送给消息中心,以使所述消息中心将多个所述消息分发给所述业务数据处理系统中的节点服务器;其中,每个消息包括所述租户的租户标识以及所述租户对应的数据要求信息,所述数据要求信息是根据所述租户对应的业务场景确定的,且不同的消息包含的租户标识不同,所述消息的数量与所述租户标识的数量相同;
所述节点服务器在接收到所述消息中心发送的至少一个所述消息后,根据所述消息包括的数据要求信息生成所述消息对应的多条业务数据,并对所述多条业务数据进行处理,将得到的数据处理结果存储到所述消息包括的租户标识对应的租户中。
2.根据权利要求1所述的方法,其特征在于,所述节点服务器将所述多个消息发送给消息中心之后,所述方法还包括:
所述节点服务器接收所述消息中心返回的消息发送结果,若所述消息发送结果指示所述消息发送失败,则所述节点服务器将所述消息重新发送给所述消息中心,直至接收到所述消息中心返回的消息发送结果指示所述消息发送成功。
3.根据权利要求1所述的方法,其特征在于,所述节点服务器根据所述多个租户产生多个消息之后,接收到所述消息中心发送的至少一个所述消息之前,所述方法还包括:
所述节点服务器对所述多个消息进行幂等处理。
4.根据权利要求1所述的方法,其特征在于,所述节点服务器在接收到所述消息中心发送的至少一个所述消息后,根据所述消息包括的数据要求信息生成所述消息对应的多条业务数据之前,所述方法还包括:
所述节点服务器对接收到的至少一个所述消息进行幂等处理。
5.根据权利要求1~4任一所述的方法,其特征在于,所述方法还包括:
若所述节点服务器生成所述消息对应的多条业务数据失败,或者所述节点服务器对所述消息对应的多条业务数据进行处理时出现错误,则所述节点服务器将所述消息发送给消息中心,以使所述消息中心重新将所述消息分发给所述业务数据处理系统中的任一节点服务器。
6.一种业务数据处理方法,其特征在于,应用于位于业务数据处理系统的节点服务器,所述业务数据处理系统包括多个节点服务器,所述方法包括:
所述节点服务器在设定时刻与所述业务数据处理系统中的其他节点服务器一起抢占分布式锁,且在抢占所述分布式锁失败后,接收消息中心分发的至少一个消息;其中,所述至少一个消息为抢占所述分布式锁成功的其他节点服务器根据与所述业务数据处理系统绑定的多个租户产生,并发送给所述消息中心的;所述租户用于存储数据处理结果,每个租户分别对应一个租户标识;每个消息包括租户标识以及所述租户对应的数据要求信息,且不同的消息包含的租户标识不同,所述消息的数量与所述租户标识的数量相同;
所述节点服务器根据所述消息包括的数据要求信息生成所述消息对应的多条业务数据,并对所述多条业务数据进行处理,将得到的数据处理结果存储到所述消息包括的租户标识对应的租户中。
7.根据权利要求6所述的方法,其特征在于,所述节点服务器接收消息中心分发的至少一个消息之后,根据所述消息包括的数据要求信息生成所述消息对应的多条业务数据之前,所述方法还包括:
所述节点服务器对接收到的所述至少一个消息进行幂等处理。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述节点服务器生成所述消息对应的多条业务数据失败,或者所述节点服务器对所述消息对应的多条业务数据进行处理时出现错误,则所述节点服务器将所述消息发送给消息中心,以使所述消息中心重新将所述消息分发给所述业务数据处理系统中的任一节点服务器。
9.一种业务数据处理方法,其特征在于,应用于位于业务数据处理系统的消息中心,所述方法包括:
所述消息中心接收所述业务数据处理系统的多个节点服务器中的目标节点服务器发送的多个消息;其中,所述目标节点服务器为在设定时刻与所述业务数据处理系统中的其他节点服务器一起抢占分布式锁,且抢占所述分布式锁成功的节点服务器;所述多个消息为所述目标节点服务器根据与所述业务数据处理系统绑定的多个租户产生的;所述租户用于存储数据处理结果,每个租户分别对应一个租户标识;每个消息包括租户标识以及所述租户对应的数据要求信息,且不同的消息包含的租户标识不同,所述消息的数量与所述租户标识的数量相同;
所述消息中心将多个所述消息分发给所述业务数据处理系统中的多个节点服务器,以使所述多个节点服务器分别根据接收到的所述消息包括的数据要求信息生成所述消息对应的多条业务数据,并对所述多条业务数据进行处理,将得到的数据处理结果存储到所述消息包括的租户标识对应的租户中。
10.根据权利要求9所述的方法,其特征在于,所述消息中心将多个所述消息分发给所述业务数据处理系统中的多个节点服务器之后,所述方法还包括:
若所述消息中心接收到所述节点服务器发送的所述消息,则所述消息中心重新将所述消息分发给所述业务数据处理系统中的任一节点服务器;其中,所述消息为所述节点服务器生成所述消息对应的多条业务数据失败,或者所述节点服务器对所述消息对应的多条业务数据进行处理时出现错误的消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111382812.3A CN114138472A (zh) | 2021-11-22 | 2021-11-22 | 业务数据处理方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111382812.3A CN114138472A (zh) | 2021-11-22 | 2021-11-22 | 业务数据处理方法、装置和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114138472A true CN114138472A (zh) | 2022-03-04 |
Family
ID=80390539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111382812.3A Pending CN114138472A (zh) | 2021-11-22 | 2021-11-22 | 业务数据处理方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114138472A (zh) |
-
2021
- 2021-11-22 CN CN202111382812.3A patent/CN114138472A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108881512B (zh) | Ctdb的虚拟ip均衡分配方法、装置、设备及介质 | |
US9736034B2 (en) | System and method for small batching processing of usage requests | |
US9141440B2 (en) | Fault tolerant distributed lock manager | |
CN111597061B (zh) | 一种客户端或服务端进行远程过程调用方法及装置 | |
CN113452774B (zh) | 消息推送方法、装置、设备及存储介质 | |
US20150127769A1 (en) | Strict queue ordering in a distributed system | |
CN114185558A (zh) | 基于K8s的原生应用选主方法、装置及存储介质 | |
CN108984290B (zh) | 任务调度方法和系统 | |
CN111338785A (zh) | 资源调度方法及装置、电子设备、存储介质 | |
US9894143B1 (en) | Pre-processing and processing pipeline for queue client | |
CN112860387A (zh) | 分布式任务调度方法、装置、计算机设备及存储介质 | |
CN108111630B (zh) | 一种Zookeeper集群系统及其连接方法和系统 | |
EP4006725A1 (en) | Virtual machine migration processing and strategy generation method, apparatus and device, and storage medium | |
CN113849320A (zh) | 开发方法、控制方法及计算设备 | |
CN111835809B (zh) | 工单消息分配方法、装置、服务器及存储介质 | |
CN111818188A (zh) | 一种Kubernetes集群的负载均衡可用性提升方法和装置 | |
CN110798492B (zh) | 数据存储方法及装置、数据处理系统 | |
CN114138472A (zh) | 业务数据处理方法、装置和系统 | |
CN112860421A (zh) | 用于作业处理的方法、设备和计算机程序产品 | |
CN109614242B (zh) | 一种计算能力共享方法、装置、设备及介质 | |
CN113703930A (zh) | 任务调度方法、装置及系统、计算机可读存储介质 | |
CN111435320B (zh) | 一种数据处理方法及其装置 | |
CN113032188A (zh) | 确定主服务器的方法、装置、服务器及存储介质 | |
CN113760485A (zh) | 定时任务的调度方法、装置、设备及存储介质 | |
CN110825529B (zh) | 业务消息管理系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |