CN108132837A - 一种分布式集群调度系统及方法 - Google Patents

一种分布式集群调度系统及方法 Download PDF

Info

Publication number
CN108132837A
CN108132837A CN201810001677.5A CN201810001677A CN108132837A CN 108132837 A CN108132837 A CN 108132837A CN 201810001677 A CN201810001677 A CN 201810001677A CN 108132837 A CN108132837 A CN 108132837A
Authority
CN
China
Prior art keywords
thread
service server
server
status information
worker thread
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.)
Granted
Application number
CN201810001677.5A
Other languages
English (en)
Other versions
CN108132837B (zh
Inventor
蔡岳
刘桐欢
唐敏
计海涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN201810001677.5A priority Critical patent/CN108132837B/zh
Publication of CN108132837A publication Critical patent/CN108132837A/zh
Application granted granted Critical
Publication of CN108132837B publication Critical patent/CN108132837B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Abstract

本发明提供一种分布式集群调度系统及方法,系统包括:数据库服务器及多个业务服务器,各业务服务器包括主线程及工作线程;主线程定期在数据库服务器中更新本业务服务器的状态信息;定期在数据库服务器中读取业务数据分区信息、业务服务器的状态信息及工作线程的状态信息;根据业务数据分区信息及业务服务器的状态信息调整本业务服务器中的工作线程数;根据业务工作线程的状态信息分析工作线程异常情况;工作线程用于处理业务数据分区信息中的业务数据,每次运行时在数据库服务器中更新工作线程的状态信息;数据库服务器记录业务数据分区信息、业务服务器的状态信息及工作线程的状态信息。本发明能够无需人工干预就能快速扩展及动态调整集群性能。

Description

一种分布式集群调度系统及方法
技术领域
本发明涉及计算机分布式处理技术领域,特别涉及一种分布式集群调度系统及方法。
背景技术
随着商业银行业务规模的不断发展,为了提升客户体验,通常商业银行都会建立一套通知消息系统,用于对客户的各种业务进行即时告知,风险提示。交易提醒的即时性,是商业银行服务能力的一项重要指标。随着业务的不断发展,消息的数量呈现几何级数的增长,传统的系统架构难以满足海量数据的处理,很可能出现服务异常,如系统响应缓慢、宕机,给银行带来巨大的负面影响甚至损失。
面对海量数据,较为常用的解决方式有如下四种:一、升级硬件资源;二、优化系统的架构;三、增加限流措施;以及四、通过分布式系统处理业务。升级硬件资源,会在一定程度上缓解性能压力,但同时也会带来成本的增加,商业银行的成本控制必然不允许设备无限制的升级,同时,由于峰值时间的短暂性,升级设备也会带来资源的浪费。优化系统的架构,可以带来系统处理能力的提升,但系统架构优化的空间是有限的,达到瓶颈后就很难再有很大的提升。同样,增加限流措施优化系统空间的能力也是有限的。目前商业银行常用的分布式系统主要有:1.预设服务器数量,根据业务量,预估可能需要的服务器数量;2.预设配置文件参数,根据经验值,预先设定服务器的线程数,以达到理想的性能;3.根据运行时的系统状态,调整服务器数量或参数,并对集群进行重启使新服务器可以运行,新参数可以生效;4.单个节点虽不会对整体造成巨大影响,但依然存在部分影响,这种影响很可能遭至客户投诉。
但在实际应用中,业务量呈现不规则的变化,很可能因为某个突发事件导致业务量陡增,这时如果调整服务器数量、参数,甚至重启整个集群都是不现实的,会对现有业务产生影响。因此,上述方法不能保证动态扩展集群,更无法确保证服务高可用性。
发明内容
本发明用于解决现有技术中商业银行使用的分布式系统,通常需要人工干预进行扩容或缩减,且须重启服务器,不能保证动态扩展集群,更无法保证服务高可用性的问题。
为了解决上述技术问题,本发明的一技术方案为提供一种分布式集群调度系统,该系统包括:
数据库服务器及多个业务服务器,其中,各业务服务器包括主线程及工作线程;
主线程用于定期在数据库服务器中更新本业务服务器的状态信息;定期在数据库服务器中读取业务数据分区信息、业务服务器的状态信息及工作线程的状态信息;根据业务数据分区信息及业务服务器的状态信息计算需要启动的最小工作线程数,并根据需要启动的最小工作线程数调整本业务服务器中的工作线程数;根据业务工作线程的状态信息确定本业务服务器中工作线程是否异常,若存在异常,则在本业务服务器中创建与异常工作线程数量相等的工作线程;
工作线程用于处理业务数据分区信息中的业务数据,每次运行时在数据库服务器中更新工作线程的状态信息;
数据库服务器用于记录业务数据分区信息、业务服务器的状态信息及工作线程的状态信息。
本发明另一技术方案中,还提供一种分布式集群调度方法,该方法包括:
定期在数据库服务器中更新本业务服务器的状态信息;
定期在数据库服务器中读取业务数据分区信息、业务服务器的状态信息及工作线程的状态信息;
根据业务数据分区信息及业务服务器的状态信息计算需要启动的最小工作线程数,并根据需要启动的最小工作线程数调整本业务服务器中的工作线程数;
根据工作线程的状态信息确定本业务服务器中的工作线程是否异常,若存在异常,则在本业务服务器中创建与异常工作线程数量相等的工作线程;
其中,工作线程用于处理数据库服务器中的业务数据,每次运行时在数据库服务器中更新工作线程的状态信息;
数据库服务器用于存储数据分区信息,记录业务服务器的状态信息及工作线程的状态信息。
本发明根据当前集群中业务数据分区信息及业务服务器的状态信息计算需要启动的工作线程数,并根据需要启动的工作线程数调整(增加或减少)本业务服务器中的工作线程数,根据工作线程的状态信息确定本业务服务器中的工作线程是否异常,若存在异常,则在本业务服务器中创建与异常工作线程数量相等的工作线程。本发明能够在高并发的场景下,无需人工干预就能快速扩展及动态调整集群性能,提高用户体验,自动检测业务服务器的异常线程,以及时恢复异常线程,确保集群提供的对外服务不会因异常线程而导致过载或崩溃。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的分布式集群调度系统的结构示意图;
图2为本发明实施例的数据库内部结构示意图;
图3为本发明实施例的主线程处理过程流程图;
图4为本发明实施例的工作线程处理过程流程图;
图5为本发明实施例的分布式集群调度方法的流程图。
具体实施方式
为了使本发明的技术特点及效果更加明显,下面结合附图对本发明的技术方案做进一步说明,本发明也可有其他不同的具体实例来加以说明或实施,任何本领域技术人员在权利要求范围内做的等同变换均属于本发明的保护范畴。
在本说明书的描述中,参考术语“一实施例”、“一具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本发明的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
如图1所示,图1为本发明实施例的分布式集群调度系统的结构图。本实施例能够在高并发的场景下,无需人工干预就能快速扩展及动态调整集群性能,提高用户体验,自动检测业务服务器的异常线程,以及时恢复异常线程,确保集群提供的对外服务不会因异常线程而导致过载或崩溃。
具体的,该系统包括:数据库服务器100及多个业务服务器200,其中,各业务服务器200包括主线程201(也可称之为矩阵管理员)及工作线程202(也可称之为矩阵)。
主线程201用于定期(如60s,本发明对此不作限定)在数据库服务器100中更新本业务服务器的状态信息;定期(如60s,本发明对此不作限定)在数据库服务器100中读取业务数据分区信息、业务服务器的状态信息及工作线程的状态信息;根据业务数据分区信息及业务服务器的状态信息计算需要启动的最小工作线程数,并根据需要启动的最小工作线程数调整本业务服务器中的工作线程数;根据业务工作线程的状态信息确定本业务服务器中工作线程是否异常,若存在异常,则在本业务服务器中创建与异常工作线程数量相等的工作线程,例如,主线程通过分析发现本业务服务器有2个工作线程出现异常,则主线程会在本业务服务器中创建2个工作线程。
详细的说,为了避免CPU过高,主线程每执行完一次上述过程之后需要休眠一段时间,如1s,休息过后重新唤醒主线程。
工作线程201用于处理业务数据分区信息中的业务数据,每次运行时在数据库服务器中更新工作线程的状态信息。
数据库服务器100用于记录业务数据分区信息、业务服务器的状态信息及工作线程的状态信息。
具体实施时,业务服务器启动后会立即利用主线程在数据库服务器中注册本业务服务器的状态信息。主线程201还用于将本业务服务器中的工作线程存储于线程池中,以便管理。
本申请通过业务服务器及数据库服务器的相互协作,无需人工介入就能动态调节系统性能,有效提升系统的整体服务能力。
本发明一具体实施例中,如图2所示,数据库服务器100包括服务器列表101、矩阵列表102及分区数据列表103。
服务器列表101用于记录各业务服务器的状态信息,由各业务服务器的主线程维护。其中,各业务服务器的状态信息包括业务服务器名及运行状态,服务器名为IP地址或服务器hostname,运行状态为最后一次更新的时间戳。下表为服务器列表具有的基本字段:
矩阵列表102用于记录工作线程的状态信息,由工作线程维护。其中,各工作线程的状态信息包括工作线程名、运行状态、锁状态及分区数据列表中的分区号。矩阵列表还记录矩阵数N(即工作线程总数,每一矩阵表示一工作线程)。工作线程运行状态为工作线程最后一次运行的时间戳。锁状态用来控制集群中可同时处理数据的线程数的逻辑概念,其对应了分区数据列表中的“分区(Partition)数”,为了确保多线程环境下不会出现资源争抢,甚至死锁,故引入了锁状态概念。若锁状态为“未被占用”,则集群中其他闲置的工作线程可以进行抢锁,抢锁成功后,将锁状态更新为“已被占用”,抢到锁的工作线程可以处理对应分区下的业务数据,业务数据处理完后,则将锁状态更新为“未被占用”。下表为矩阵列表具有的基本字段:
分区数据列表103用于记录业务数据分区信息,其中,业务数据分区信息包括分区号、业务数据及业务数据处理状态,还记录了分区数N。需要处理的业务数据被平均分布到N个分区中,分区与分区之间相互独立,分区数N与矩阵列表102中的矩阵数N相同。数据分区信息由工作人员及工作线程共同维护,工作人员根据业务需求调整分区数,工作线程根据业务数据的处理情况更新业务数据处理状态。
下表为分区数据列表103所具有的基本字段。
分区数据列表103中的分区数应与矩阵列表102中的矩阵数对应,即矩阵列表102中的每一条数据实为分区数据列表103中的分区号。
本发明一实施例中,主线程201根据工作线程的状态信息确定本业务服务器中工作线程是否异常的过程包括:
将系统时间与线程池中每一工作线程的运行状态时间戳进行比较,若系统时间与该工作线程的运行状态时间戳之间的差值大于预设值(例如1800秒),则认定该工作线程为异常工作线程,若系统时间与该工作线程的运行状态时间戳之间的差值小于或等于预设值,则认定该工作线程为有效工作线程。
本发明一实施例中,如图3所示,主线程201根据业务数据分区信息及业务服务器的状态信息计算需要启动的最小工作线程数的过程包括:
步骤301,根据业务数据分区信息确定分区数N1;
步骤302,根据业务服务器的状态信息确定有效业务服务器数N2;
步骤303,根据分区数N1及有效业务服务器数N2通过如下公式计算本业务服务器需要启动的最小工作线程数Tmin
其中,为向上取整。
进一步的,主线程201根据需要启动的最小工作线程数调整本业务服务器中的工作线程数的过程包括:
将最小工作线程数Tmin与线程池中工作线程数T进行比较,若线程池中工作线程数T小于最小工作线程数Tmin,则创建Tmin-T个新工作线程并存储在线程池中,反之,根据工作线程的运行状态停止线程池中T-Tmin个未工作的工作线程。
本发明一实施例中,上述步骤302根据业务服务器的状态信息确定有效业务服务器数N2的过程包括:
将系统时间与每一业务服务器的运行状态时间戳进行比较,若系统时间与该业务服务器的运行状态时间戳之间的差值大于预设值(如1800s),则认定该业务服务器为异常服务器,若系统时间与该业务服务器的运行状态时间戳之间的差值小于或等于预设值,则认定该业务服务器为有效服务器;根据上述分析结果统计得到有效服务器数N2。
本发明一实施例中,如图4所示,工作线程处理业务数据分区信息中的业务数据过程包括:
步骤401,工作线程X被创建后,会立即更新矩阵列表中锁状态为未被占用的工作线程的状态信息,称之为“上锁”或“获取锁”;
若更新不成功,则表示上锁失败,则进入休眠,待被唤醒后继续更新矩阵列表中锁状态为未被占用的工作线程的状态信息,或每隔预定时间间隔更新矩阵列表中锁状态为未被占用的工作线程的状态信息;若更新成功,则表示上锁成功,则执行步骤402;
步骤402,该工作线程X从矩阵列表中获得分区号,根据该分区号从分区数据列表中获得该分区号下的业务数据;
步骤403,对该分区号下未被处理的业务数据进行业务逻辑处理,在分区数据列表中更新已经处理的业务数据的处理状态,记为已处理;
步骤404,更新矩阵列表中该工作线程X的锁状态为未被占用,即可以再次占用,称之为“归还锁”。
为保证服务器CPU不会过载,工作线程每次执行完上述流程,需休眠一段时间,例如500毫秒,休眠时间到后重新唤醒工作线程,重复上述步骤401~步骤404的过程。
如图5所示,图5为本发明实施例的分布式集群调度方法的流程图。分布式集群调度方法适用于业务服务器的主线程,该方法的实施可参见上述分布式集群调度系统,重复之处不再赘述。具体的,分布式集群调度方法包括:
步骤501,定期在数据库服务器中更新本业务服务器的状态信息;
步骤502,定期在数据库服务器中读取业务数据分区信息、业务服务器的状态信息及工作线程的状态信息;
步骤503,根据业务数据分区信息及业务服务器的状态信息计算需要启动的最小工作线程数,并根据需要启动的最小工作线程数调整本业务服务器中的工作线程数;
步骤504,根据工作线程的状态信息确定本业务服务器中的工作线程是否异常,若存在异常,则在本业务服务器中创建与异常工作线程数量相等的工作线程;
其中,工作线程用于处理数据库服务器中的业务数据,每次运行时在数据库服务器中更新工作线程的状态信息;
数据库服务器用于存储数据分区信息,记录业务服务器的状态信息及工作线程的状态信息。
业务服务器刚开启时,主线程还在数据库服务器中注册本业务服务器的状态信息。为了避免CPU过高,上述过程执行完后,主线程需要休眠一段时间,如1s,休息过后重新唤醒主线程。为了更清楚说明本发明技术方案,下面以一些具体实施例进行详细说明。
假设集群系统中有4台业务服务器,1台数据库服务器,数据库服务器的矩阵列表中预设了8个分区。系统启动后,4台业务服务器首先在数据库服务器中注册本业务服务器的状态;接着,各业务服务器的主线程初始化矩阵池,确定分区数N1为8,有效业务服务器数N2为4,计算出需要启动的最小工作线程数则各业务服务器创建(启动)2个工作线程放入矩阵池中。正常情况下,矩阵池中的工作线程被创建后会先尝试占用锁,锁抢占成功后,进行业务处理。对于上述公式刚好除尽的情况,每个工作线程都会抢占到锁。
若其中一台业务服务器中有N个(N为1或2)工作线程出现异常,且异常时间超过一定时间,如1800秒,该台业务服务器的主线程会创建N个工作线程并将其存储于线程池中,使集群系统恢复到之前的性能。
若各业务服务器工作正常,因业务下降,调整矩阵列表中的分区数N1为4,对应的锁变为了4,集群系统中的8个工作线程只有4个能够拿到锁,各业务服务器的主线程计算出需要启动的最小工作线程数即每台业务服务器只需启动1个工作线程就能满足集群系统需求,这种情况下,各业务服务器中的主线程会关闭1个不在工作的工作线程。
若各业务服务器工作正常,因业务增多,调整矩阵列表中的分区数N1为13,对应的锁变为了13,集群系统中的8个工作线程无论什么时候都能拿到锁,各业务服务器的主线程计算出需要启动的最小工作线程数即每台业务服务器需启动4个工作线程才能满足集群系统需求,这种情况下,各业务服务器需在各自的线程池中增加2个工作线程。对于上述公式除不尽的情况,集群系统中会存在始终会存在闲置工作线程。
若其中一台业务服务器宕机,各正常业务服务器的主线程会发现有效的业务服务器数N2变为了3,计算出需要启动的最小工作线程数即剩下的每台业务服务器需启动3个工作线程才能满足集群系统需求,这种情况下,剩下的每台业务服务器需在各自的线程池中增加1个工作线程。实施时,为了避免给正常业务服务器增加压力,还可采用人工的方式启动适当数量的业务服务器。
本发明一实施例中,还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例所述的分布式集群调度方法。
本发明一实施例中,还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述实施例所述的分布式集群调度方法的计算机程序。
本发明可动态调整集群内各节点(业务服务器)的性能,当出现异常节点时,可自动恢复,保证集群的稳定性。将本发明实验应用于银行短信平台中,具有如下优点:
1.使用30台普通x86服务器构建的集群,不需要预先设定每个节点的线程数,通过系统自动适配业务量,可支持日均八千万的短信发送量,发送成功率达到94%。
2.能够根据集群中节点的业务压力,动态调整节点的服务能力,确保集群整体的服务能力不会因某个节点暂时的繁忙而导致下降。
3.可动态扩容,无需停机重启,确保集群可以7x24小时不间断服务。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅用于说明本发明的技术方案,任何本领域普通技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围应视权利要求范围为准。

Claims (10)

1.一种分布式集群调度系统,其特征在于,包括:数据库服务器及多个业务服务器,其中,各业务服务器包括主线程及工作线程;
主线程用于定期在数据库服务器中更新本业务服务器的状态信息;定期在数据库服务器中读取业务数据分区信息、业务服务器的状态信息及工作线程的状态信息;根据业务数据分区信息及业务服务器的状态信息计算需要启动的最小工作线程数,并根据需要启动的最小工作线程数调整本业务服务器中的工作线程数;根据业务工作线程的状态信息确定本业务服务器中工作线程是否异常,若存在异常,则在本业务服务器中创建与异常工作线程数量相等的工作线程;
工作线程用于处理业务数据分区信息中的业务数据,每次运行时在数据库服务器中更新工作线程的状态信息;
数据库服务器用于记录业务数据分区信息、业务服务器的状态信息及工作线程的状态信息。
2.如权利要求1所述的系统,其特征在于,数据库服务器包括服务器列表、矩阵列表及分区数据列表;
服务器列表用于记录业务服务器的状态信息,其中,各业务服务器的状态信息包括业务服务器名及运行状态;
矩阵列表用于记录工作线程的状态信息,其中,各工作线程的状态信息包括工作线程名、运行状态、锁状态及分区数据列表中的分区号;
分区数据列表用于记录业务数据分区信息,其中,业务数据分区信息包括分区号、业务数据及业务数据处理状态。
3.如权利要求2所述的系统,其特征在于,主线程还用于将本业务服务器中的工作线程存储于线程池中,以便管理。
4.如权利要求3所述的系统,其特征在于,主线程根据业务数据分区信息及业务服务器的状态信息计算需要启动的最小工作线程数的过程包括:
根据业务数据分区信息确定分区数N1;
根据业务服务器的状态信息确定有效业务服务器数N2;
根据分区数N1及有效业务服务器数N2通过如下公式计算本业务服务器需要启动的最小工作线程数Tmin
5.如权利要求4所述的系统,其特征在于,主线程根据需要启动的最小工作线程数调整本业务服务器中的工作线程数的过程包括:
将最小工作线程数Tmin与线程池中工作线程数T进行比较,若线程池中工作线程数T小于最小工作线程数Tmin,则创建Tmin-T个新工作线程并存储在线程池中,反之,根据工作线程的运行状态停止线程池中T-Tmin个未工作的工作线程。
6.如权利要求4所述的系统,其特征在于,业务服务器的运行状态为最后一次更新的时间戳。
7.如权利要求6所述的系统,其特征在于,根据业务服务器的状态信息确定有效业务服务器数N2的过程包括:
将系统时间与每一业务服务器的运行状态时间戳进行比较,若系统时间与该业务服务器的运行状态时间戳之间的差值大于预设值,则认定该业务服务器为异常服务器,若系统时间与该业务服务器的运行状态时间戳之间的差值小于或等于预设值,则认定该业务服务器为有效服务器;
统计得到有效服务器数N2。
8.如权利要求1所述的系统,其特征在于,工作线程处理业务数据分区信息中的业务数据过程包括:
工作线程X被创建后,会立即更新矩阵列表中锁状态为未被占用的工作线程的状态信息;
若更新不成功,则每隔预定时间间隔更新矩阵列表中锁状态为未被占用的工作线程的状态信息,若更新成功,则该工作线程X从矩阵列表中获得分区号,根据该分区号从分区数据列表中获得该分区号下的业务数据;
对该分区号下未被处理的业务数据进行业务逻辑处理,在分区数据列表中更新已经处理的业务数据的处理状态;
更新矩阵列表中该工作线程X的锁状态为未被占用。
9.一种分布式集群调度方法,其特征在于,包括:
定期在数据库服务器中更新本业务服务器的状态信息;
定期在数据库服务器中读取业务数据分区信息、业务服务器的状态信息及工作线程的状态信息;
根据业务数据分区信息及业务服务器的状态信息计算需要启动的最小工作线程数,并根据需要启动的最小工作线程数调整本业务服务器中的工作线程数;
根据工作线程的状态信息确定本业务服务器中的工作线程是否异常,若存在异常,则在本业务服务器中创建与异常工作线程数量相等的工作线程;
其中,工作线程用于处理数据库服务器中的业务数据,每次运行时在数据库服务器中更新工作线程的状态信息;
数据库服务器用于存储数据分区信息,记录业务服务器的状态信息及工作线程的状态信息。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求9所述方法的分布式集群调度方法。
CN201810001677.5A 2018-01-02 2018-01-02 一种分布式集群调度系统及方法 Active CN108132837B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810001677.5A CN108132837B (zh) 2018-01-02 2018-01-02 一种分布式集群调度系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810001677.5A CN108132837B (zh) 2018-01-02 2018-01-02 一种分布式集群调度系统及方法

Publications (2)

Publication Number Publication Date
CN108132837A true CN108132837A (zh) 2018-06-08
CN108132837B CN108132837B (zh) 2022-04-15

Family

ID=62399503

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810001677.5A Active CN108132837B (zh) 2018-01-02 2018-01-02 一种分布式集群调度系统及方法

Country Status (1)

Country Link
CN (1) CN108132837B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109947551A (zh) * 2019-03-19 2019-06-28 中南大学 一种多轮次任务分配方法、边缘计算系统及其存储介质
CN110187971A (zh) * 2019-05-30 2019-08-30 口碑(上海)信息技术有限公司 业务请求处理方法及装置
CN110377416A (zh) * 2018-12-04 2019-10-25 天津京东深拓机器人科技有限公司 分布式分区任务调度方法和装置
CN110888723A (zh) * 2019-11-18 2020-03-17 中国银行股份有限公司 定时任务处理方法及装置
CN111124651A (zh) * 2019-12-27 2020-05-08 中通服公众信息产业股份有限公司 一种分布式环境多线程并发调度的方法
CN111190961A (zh) * 2019-12-18 2020-05-22 航天信息股份有限公司 一种动态优化的多线程数据同步方法及系统
CN111625366A (zh) * 2020-06-02 2020-09-04 深圳市网是科技有限公司 基于发布与订阅模型的弹性伸缩服务方法
CN111797110A (zh) * 2020-06-23 2020-10-20 北京金堤科技有限公司 一种生成调度模型的方法、装置、计算机设备及存储介质
CN112328388A (zh) * 2020-09-17 2021-02-05 北京中数科技术有限公司 一种融合多线程及分布式技术的并行计算方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050262507A1 (en) * 2004-05-20 2005-11-24 Bea Systems, Inc. System and method for application server with self-tuned threading model
CN103428272A (zh) * 2013-07-16 2013-12-04 无限极(中国)有限公司 一种中间件线程的监控调度系统及方法
CN103810048A (zh) * 2014-03-11 2014-05-21 国家电网公司 一种面向资源利用最优的线程数量自动调整方法及装置
CN104915259A (zh) * 2015-06-15 2015-09-16 浪潮软件集团有限公司 一种应用于分布式采集系统的任务调度方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050262507A1 (en) * 2004-05-20 2005-11-24 Bea Systems, Inc. System and method for application server with self-tuned threading model
CN103428272A (zh) * 2013-07-16 2013-12-04 无限极(中国)有限公司 一种中间件线程的监控调度系统及方法
CN103810048A (zh) * 2014-03-11 2014-05-21 国家电网公司 一种面向资源利用最优的线程数量自动调整方法及装置
CN104915259A (zh) * 2015-06-15 2015-09-16 浪潮软件集团有限公司 一种应用于分布式采集系统的任务调度方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377416A (zh) * 2018-12-04 2019-10-25 天津京东深拓机器人科技有限公司 分布式分区任务调度方法和装置
CN109947551A (zh) * 2019-03-19 2019-06-28 中南大学 一种多轮次任务分配方法、边缘计算系统及其存储介质
CN110187971A (zh) * 2019-05-30 2019-08-30 口碑(上海)信息技术有限公司 业务请求处理方法及装置
CN110888723A (zh) * 2019-11-18 2020-03-17 中国银行股份有限公司 定时任务处理方法及装置
CN111190961A (zh) * 2019-12-18 2020-05-22 航天信息股份有限公司 一种动态优化的多线程数据同步方法及系统
CN111190961B (zh) * 2019-12-18 2023-09-29 航天信息股份有限公司 一种动态优化的多线程数据同步方法及系统
CN111124651A (zh) * 2019-12-27 2020-05-08 中通服公众信息产业股份有限公司 一种分布式环境多线程并发调度的方法
CN111124651B (zh) * 2019-12-27 2023-05-23 中通服公众信息产业股份有限公司 一种分布式环境多线程并发调度的方法
CN111625366A (zh) * 2020-06-02 2020-09-04 深圳市网是科技有限公司 基于发布与订阅模型的弹性伸缩服务方法
CN111797110A (zh) * 2020-06-23 2020-10-20 北京金堤科技有限公司 一种生成调度模型的方法、装置、计算机设备及存储介质
CN111797110B (zh) * 2020-06-23 2024-01-26 北京金堤科技有限公司 一种生成调度模型的方法、装置、计算机设备及存储介质
CN112328388A (zh) * 2020-09-17 2021-02-05 北京中数科技术有限公司 一种融合多线程及分布式技术的并行计算方法及系统

Also Published As

Publication number Publication date
CN108132837B (zh) 2022-04-15

Similar Documents

Publication Publication Date Title
CN108132837A (zh) 一种分布式集群调度系统及方法
US9977689B2 (en) Dynamic scaling of management infrastructure in virtual environments
JP4760491B2 (ja) イベント処理システム、イベント処理方法、イベント処理装置、及び、イベント処理プログラム
JP4294879B2 (ja) サービスレベル制御機構を有するトランザクション処理システム及びそのためのプログラム
CN106817408B (zh) 一种分布式服务器集群调度方法及装置
JPWO2008146677A1 (ja) 仮想マシン管理装置、仮想マシン管理方法および仮想マシン管理プログラム
CN111160873B (zh) 基于分布式架构的跑批处理装置及方法
US20150281114A1 (en) Systems and methods for allocating work for various types of services among nodes in a distributed computing system
CN106302709B (zh) 一种网络文件管理的实现方法和系统
CN106354729A (zh) 一种图数据处理方法、装置和系统
CN106776008A (zh) 一种基于zookeeper实现负载均衡的方法及系统
CN110661842A (zh) 一种资源的调度管理方法、电子设备和存储介质
CN106020976A (zh) 将内存耗尽处理流程卸载到用户空间的方法和装置
US20150100963A1 (en) Method and system for efficient execution of ordered and unordered tasks in multi-threaded and networked computing
US10871988B1 (en) Methods for feedback-based optimal workload scheduling and devices thereof
CN110519354A (zh) 一种分布式对象存储系统及其业务处理方法和存储介质
CN106254452A (zh) 云平台下的医疗大数据访问方法
US9934268B2 (en) Providing consistent tenant experiences for multi-tenant databases
WO2017074320A1 (en) Service scaling for batch processing
CN116401024A (zh) 基于云计算的集群扩缩容方法、装置、设备及介质
CN111158896A (zh) 一种分布式进程调度方法及系统
CN110597608B (zh) 任务处理方法和装置、分布式系统以及存储介质
CN106557492A (zh) 一种数据同步方法和装置
CN113515524A (zh) 一种分布式缓存接入层节点的自动动态分配方法及装置
CN113342780A (zh) Dsu数据的迁移方法、装置和计算机设备

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
GR01 Patent grant
GR01 Patent grant