CN109067841B - 基于ZooKeeper的服务限流方法、系统、服务器及存储介质 - Google Patents

基于ZooKeeper的服务限流方法、系统、服务器及存储介质 Download PDF

Info

Publication number
CN109067841B
CN109067841B CN201810730979.6A CN201810730979A CN109067841B CN 109067841 B CN109067841 B CN 109067841B CN 201810730979 A CN201810730979 A CN 201810730979A CN 109067841 B CN109067841 B CN 109067841B
Authority
CN
China
Prior art keywords
node
idle
server
task
zookeeper
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.)
Active
Application number
CN201810730979.6A
Other languages
English (en)
Other versions
CN109067841A (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.)
Shaanxi Tiger Information Technology Co.,Ltd.
Original Assignee
Wuhan Douyu Network Technology Co Ltd
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 Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201810730979.6A priority Critical patent/CN109067841B/zh
Publication of CN109067841A publication Critical patent/CN109067841A/zh
Application granted granted Critical
Publication of CN109067841B publication Critical patent/CN109067841B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及一种基于ZooKeeper的服务器限流方法、系统、服务器及存储介质,所述方法在ZooKeeper中建立3个节点,分别记录任务、执行信息和等待信息,并监听ZooKeeper上节点的变化事件,并对相应的事件进行处理。ZooKeeper保证了分布式的数据一致性,同时提供可靠的消息机制,保证服务大流量时能限流并入等待队列。

Description

基于ZooKeeper的服务限流方法、系统、服务器及存储介质
技术领域
本发明涉及计算机软件工程领域,具体涉及一种基于ZooKeeper 的服务限流方法、系统、服务器及存储介质。
背景技术
软件工程和大数据领域常有离线任务计算的场景,即大量的商业分析任务需要大量计算集群去分析商业数据,挖掘运营和推荐策略等。商业分析任务较繁多,但是计算服务器是有限的,如何平衡计算任务和服务器的负载使用,是比较关键的问题,决定着任务是否能全部高效计算完毕且服务器使用充分。如当有1000个计算任务,但是只有20个服务器实例时,如何进行限流管控。
传统的服务限流多采用人工配置管控,如凌晨1点到2点期间,服务器A计算第1个任务,服务器B计算第2个任务,等等依次类推。运用人工指定限流方式及任务分配方式,实现形式比较简单,策略简单。但是可扩展性差,服务器资源使用率较低,不能充分应对复杂的服务请求等,无法很好的满足现有的需求。
发明内容
鉴于现有技术存在的问题,本发明的目的是提供一种基于ZooKee per的服务器限流方法、系统、服务器及存储介质,克服了传统技术方案的缺陷,基于ZooKeeper的分布式管控能力,将计算分析任务和服务器资源以数据节点的形式记录在ZooKeeper中,并利用ZooKeep er的回调机制,动态的进行限流管控和计算,能够动态的管控不断变化的计算任务和服务器资源,满足日渐复杂的计算任务。
为了实现上述目的,本发明采用的技术方案为一种基于ZooKeep er的服务限流方法,所述方法包括以下步骤:
S1、在ZooKeeper中创建Wait节点、Working节点和Idle节点,所述Wait节点记录正在等待的计算分析任务,所述Working节点记录正在执行计算任务的服务器,所述Idle节点记录空闲等待的服务器;
S2、当有计算任务请求时,读取步骤S1中Idle节点,根据Idle 节点记录空闲等待的服务器将计算任务请求分配至Wait节点或 Working节点进行处理;
S3、步骤S2中计算任务完成后,将完成计算任务的服务器从 Working节点中删除,并将完成任务的服务器加入Idle节点等待;
S4、监听Idle节点的状态,判断所述Idle节点是否增加空闲等待服务器,若增加空闲等待服务器,则判断Wait节点是否增加计算任务;
S5、接收新的计算任务后,重复步骤S2。
在上述技术方案中,所述步骤S2中,所述Idle节点处理计算任务分为以下步骤:
S21、当Idle节点有空闲的服务器时,则随机调取任意空闲服务器,将计算任务分发给调取的空闲服务器执行计算任务;
S22、当Idle节点没有空闲服务器时,则将请求的计算任务加入 ZooKeeper的Wait节点,等待被分配。
在上述技术方案中,所述步骤S4中,所述Idle节点状态运用 ZooKeeper回调机制监控。
在上述技术方案中,所述步骤S4中,所述Wait节点的判断过程分为以下步骤:
S41、若Idle节点新增空闲等待服务器,且Wait节点没有增加计算任务,则不做任何处理;
S42、若Idle节点新增空闲等待服务器,且Wait节点新增计算任务,则调取出Wait节点的新增计算任务,同时调取出Idle节点的空闲等待服务器,将所述新增计算任务分配至所述空闲等待服务器进行计算。
本发明还公开一种基于ZooKeeper的服务限流系统,所述系统包括创建节点模块、计算任务模块、完成任务模块、监听节点模块和重复任务模块;
所述创建节点模块,用于在ZooKeeper创建Wait节点,Working 节点和Idle节点,所述Wait节点记录正在等待的计算分析任务,所述Working节点记录正在执行计算任务的服务器,所述Idle节点为空闲等待的服务器;
所述计算任务模块,用于读取所述ZooKeeper中创建的Idle节点,根据Idle节点记录空闲等待的服务器将计算任务请求分配至 Wait节点或Working节点进行处理;
所述完成任务模块,用于将完成计算任务的服务器从Working节点中删除,并将完成任务的服务器加入Idle节点;
所述监听节点模块,用于监听Idle节点的的状态,判断所述Idle 节点是否增加空闲等待服务器,若增加空间等待服务器,则判断Wait 节点是否增加计算任务;
所述重复任务模块,用于接收新计算任务,进入计算任务模块中执行任务。
在上述技术方案中,所述计算任务模块还包括执行计算模块和等待分配模块:
执行计算模块,用于Idle节点有空闲的服务器时,随机调取任意空闲服务器,将计算任务分发给调取的空闲服务器执行计算任务;
等待分配模块,用于Idle节点没有空闲服务器时,将请求的计算任务加入ZooKeeper的Wait节点,等待被分配。
在上述技术方案中,所述监听节点模块中运用ZooKeeper回调机制监控
在上述技术方案中,所述监听节点模块还包括空闲模块和调取模块;
空闲模块,用于当Idle节点新增空闲等待服务器,且Wait节点没有增加计算任务时,无需进行任何处理;
调取模块,用于当Idle节点新增空闲等待服务器,且Wait节点新增计算任务时,调取出Wait节点的新增计算任务,同时调取出Idle 节点的空闲等待服务器,将所述新增计算任务分配至所述空闲等待服务器进行计算。
本发明还公开一种基于ZooKeeper的服务限流系统的服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述一种基于ZooKeeper的服务限流方法的步骤。
本发明还公开一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述一种基于ZooKeeper的服务限流方法的步骤。
本发明一种基于ZooKeeper的服务限流方法、系统、服务器及存储介质,具有以下有益效果:本发明运用ZooKeeper的分布式调度能力和统一命名空间,动态的管控不断变化的计算任务和服务器资源, ZooKeeper保证了分布式数据的一致性,提供了可靠的消息机制,保证服务大流量时能限流并入等待队列,当服务有空闲时能及时监听并处理计算请求,自动高效的保证了服务且提高了计算服务器的资源利用率。
附图说明
图1为本发明实施例一提供的一种基于ZooKeeper的服务限流方法的流程图;
图2本发明实施例二提供一种基于ZooKeeper的服务限流系统模块图;
图3为本发明实施例三提供的服务的结构示意图。
具体实施方式
本发明提供一种基于ZooKeeper的服务限流方法、系统、服务器及存储介质,运用ZooKeeper的分布式调度能力和统一命名空间,针对任务计算场景,在ZooKeeper中建立三个节点,分别记录任务执行信息和等待信息,并监听ZooKeeper上节点的变化,并对相应事件进行处理,如果所有的计算服务器统一使用同一个ZooKeeper,则调度不会出现信息误差。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明如图1所示实施例一提供一种基于ZooKeeper的服务限流方法,所述方法包括以下步骤,如图1所示:
S1、在ZooKeeper中创建Wait节点、Working节点和Idle节点,所述Wait节点记录正在等待的计算分析任务,所述Working节点记录正在执行计算任务的服务器,所述Idle节点记录空闲等待的服务器;
所述ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作,最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户,客户端发起事务请求,事务请求的结果在整个Zookeeper集群中所有服务器上的应用情况是一致的。不会出现集群中部分服务器应用了该事务,而存在另外一部分集群中服务器没有应用该事务的情况。在Zookeeper集群中的任何一台服务器,其看到的服务器的数据模型是一致的。Zookeeper能够保证客户端请求的顺序,每个请求分配一个全局唯一的递增编号,用来反映事务操作的先后顺序。Zookeeper将全量数据保存在内存中,并直接服务于所有的非事务请求,在以读操作为主的场景中性能非常突出。
Zookeeper使用的数据结构为树形结构,根节点为"/"。Zookeep er集群中的节点,根据其身份特性分为leader、follower、observ er。leader负责客户端writer类型的请求;follower负责客户端r eader类型的请求,并参与leader选举;observer是特殊的follower,可以接收客户端reader请求,但是不会参与选举,可以用来扩容系统支撑能力,提高读取速度。
在ZooKeeper中,节点也称为Znode,对ZooKeeper的操作主要是对Znode的操作,ZooKeeper采用类似文件系统的数据模型,每个子目录项都被称作为Znode,和文件系统一样,能够自由的增加、删除Znode,在一个Znode中增加、删除子Znode,同时Znode可以存储数据。
ZooKeeper命名空间中的Znode,兼具文件和目录两种特点。既像文件一样维护着数据、元信息、ACL、时间戳等数据结构,又像目录一样可以作为路径标识的一部分。图中的每个节点称为一个Znode。每个Znode由3部分组成:
stat:此为状态信息,描述该Znode的版本,权限等信息;
data:与该Znode关联的数据;
children:该Znode下的子节点。
ZooKeeper虽然可以关联一些数据,但并没有被设计为常规的数据库或者大数据存储,相反的是,它用来管理调度数据,比如分布式应用中的配置文件信息、状态信息、汇集位置等等。这些数据的共同特性就是它们都是很小的数据,通常以KB为大小单位。ZooKeeper 的服务器和客户端都被设计为严格检查并限制每个Znode的数据大小至多1M,但常规使用中应该远小于此值。
ZooKeeper中的每个节点存储的数据要被原子性的操作。也就是读操作将获取与节点相关的所有数据,写操作也将替换掉节点的所有数据。另外,每一个节点都拥有自己的ACL(访问控制列表),这个列表规定了用户的权限,即限定了特定用户对目标节点可以执行的操作。
程序总是需要配置的,如果程序分散部署在多台机器上,要逐个改变配置就变得困难。现在把这些配置全部放Zookeeper中,保存在 Zookeeper的某个目录节点中,然后所有相关应用程序对这个目录节点进行监听,一旦配置信息发生变化,每个应用程序就会收到Zo okeeper的通知,然后从Zookeeper获取新的配置信息应用到系统中。
ZooKeeper中的节点有两种,分别为临时节点和永久节点,节点的类型在创建时即被确定,并且不能改变。
所述临时节点,该节点的生命周期依赖于创建它们的会话。一旦会话(Session)结束,临时节点将被自动删除,当然可以也可以手动删除。虽然每个临时的Znode都会绑定到一个客户端会话,但他们对所有的客户端还是可见的。另外,ZooKeeper的临时节点不允许拥有子节点。
所述永久节点,该节点的生命周期不依赖于会话,并且只有在客户端显示执行删除操作的时候,他们才能被删除。
可选的,所述Wait节点中每个任务为一个一级子节点,所述Wo rking节点中,每个执行计算任务服务器为一个子节点,所述Idle 节点中,每个空闲等待的服务器为一个一级子节点。
S2、当有计算任务请求时,读取步骤S1中Idle节点,根据Idle 节点记录空闲等待服务器将计算任务请求分配至Wait节点或 Working节点进行处理;
运用ZooKeeper中的树形分层结构,可以将系统中各种服务名称、地址以及目录信息存放在ZooKeeper中,需要的时候随时在ZooKeeper中读取。
ZooKeeper的节点是通过树状结构进行维护的,并且每一个节点通过路径标示以及访问。除此之外,每一个节点还拥有的信息包括:数据、数据长度、创建时间、修改时间等。
可选的,所述步骤S2中,所述Idle节点处理计算任务分为以下步骤:
S21、当Idle节点有空闲的服务器时,则随机调取任意空闲服务器,将计算任务分发给调取的服务器执行计算任务;
S22、当Idle节点没有空闲服务器时,则将请求的计算任务加入 ZooKeeper的Wait节点,等待被分配。
可选的,请求的计算任务加入所述Wait节点中的一级子节点队列的队尾,等待有空闲服务器后对计算任务进行处理。
具体实现过程如下:
Figure BDA0001720880190000101
S3、步骤S2中计算任务完成后,将完成计算任务的服务器从 Working节点中删除,并将完成任务的服务器加入Idle节点等待;
S4、监听Idle节点的状态,判断所述Idle节点是否增加空闲等待服务器,同时判断Wait节点是否增加计算任务;
所述ZooKeeper的Watch机制,即为ZooKeeper的节点能被监控,包括节点中存储的数据的修改,子节点目录的变化,一旦变化可以通知设置监控的客户端,这个功能是ZooKeeper对于应用最重要的特性,通过这个特性可以实现的功能包括配置的集中管理,集群管理,分布式锁等等。
所述Watch事件是一次性的触发器,当被设置了Watch的数据发生了改变的时候,则服务器将这个改变发送给设置了Watch的客户端,以便通知它们。
当数据改变的时候,一个Watch事件会产生并且被发送到客户端中。但是客户端只会收到一次这样的通知,如果以后这个数据再次发生改变的时候,之前设置Watch的客户端将不会再次收到改变的通知,因为Watch机制规定了它是一个一次性的触发器。
可选的,所述步骤S4中,所述Idle节点状态运用ZooKeeper回调机制监控。
S
可选的,所述步骤S4中,所述Wait节点的判断过程分为以下步骤:
S41、若Idle节点新增空闲等待服务器,且Wait节点没有增加计算任务,则不做任何处理;
S42、若Idle节点新增空闲等待服务器,且Wait节点新增计算任务,则调取出Wait节点的新增计算任务,同时调取出Idle节点的空闲等待服务器,将所述新增计算任务分配至所述空闲等待服务器进行计算。
具体的实现过程如下:
Figure BDA0001720880190000121
S5、接收新的计算任务后,重复步骤S2。
本发明实施例二提供一种基于ZooKeeper的服务限流系统,所述系统包括创建节点模块、计算任务模块、完成任务模块、监听节点模块和重复任务模块,如图2所示;
所述创建节点模块,用于在ZooKeeper创建Wait节点,Working 节点和Idle节点,所述Wait节点记录正在等待的计算分析任务,所述Working节点记录正在执行计算任务的服务器,所述Idle节点为空闲等待的服务器;
所述计算任务模块,用于读取所述ZooKeeper中创建的Idle节点,根据Idle节点记录空闲等待的服务器将计算任务请求分配至 Wait节点或Working节点进行处理。
可选的,所述计算任务模块还包括执行计算模块和等待分配模块:
执行计算模块,用于Idle节点有空闲的服务器时,随机调取任意空闲服务器,将计算任务分发给调取的空闲服务器执行计算任务;
等待分配模块,用于Idle节点没有空闲服务器时,将请求的计算任务加入ZooKeeper的Wait节点,等待被分配。
所述完成任务模块,用于将完成计算任务的服务器从Working节点中删除,并将完成任务的服务器加入Idle节点;
所述监听节点模块,用于监听Idle节点的的状态,判断所述Idle 节点是否增加空闲等待服务器,若增加空间等待服务器,则判断Wait 节点是否增加计算任务;
可选的,所述监听节点模块中运用ZooKeeper回调机制监控
可选的,所述监听节点模块还包括空闲模块和调取模块;
空闲模块,用于当Idle节点新增空闲等待服务器,且Wait节点没有增加计算任务时,无需进行任何处理;
调取模块,用于当Idle节点新增空闲等待服务器,且Wait节点新增计算任务时,调取出Wait节点的新增计算任务,同时调取出Idle 节点的空闲等待服务器,将所述新增计算任务分配至所述空闲等待服务器进行计算。
所述重复任务模块,用于接收新计算任务,进入计算任务模块中执行任务。
如图3所示为本发明实施例三提供一种基于ZooKeeper的服务限流系统的服务器结构示意图,所述实施例的服务器包括:处理器30、存储器31以及存储在所述存储器31中并可在所述处理器30上运行的计算机程序32。所述处理器30执行所述计算机程序32时实现上述各方法实施例中的步骤,所述处理器30执行所述计算机程序32时实现上述装置实施例中各模块的功能。
所述一种基于ZooKeeper的服务器限流系统的服务器可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备,所述一种基于ZooKeeper的服务器限流系统的服务器可包括,但不限于,处理器 30、存储器31。图3仅仅是对此服务器的示例,并不构成对此服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,所述一种基于ZooKeeper的服务器限流系统的服务器还可以包括输入输出设备33、显示设备34等。
所述处理器30可以是中央处理单元,还可以是其他通用处理器、数字信号处理器、专用集成电路、现成可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器31可以是所述一种基于ZooKeeper的服务器限流系统的服务器的内部存储单元、硬盘或内存。所述存储器31也可以是所述服务器的外部存储设备,或配备的插接式硬盘,智能存储卡,安全数字卡,闪存卡等。
进一步地,所述存储器31还可以既包括所述服务器的内部存储单元也包括外部存储设备。所述存储器31用于存储所述计算机程序以及所述电子设备所需的其他程序和数据。所述存储器31还可以用于暂时地存储已经输出或者将要输出的数据。
所述的输入输出设备33可用于接收输入的数字或字符信息,具体的,输入输出设备33还可以包括但不限于键盘、鼠标、操作杆等中的一种和多种。
所述的显示设备34可用于显示由用户输入的信息或提供给用户信息以及终端的各种菜单,显示设备34可包括显示面板,可选的,可采用液晶显示器。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实施例的模块、方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种基于ZooKeeper的服务限流方法,其特征在于,所述方法包括以下步骤:
S1、在ZooKeeper中创建Wait节点、Working节点和Idle节点,所述Wait节点记录正在等待的计算分析任务,所述Working节点记录正在执行计算任务的服务器,所述Idle节点记录空闲等待的服务器;
S2、当有计算任务请求时,读取步骤S1中Idle节点,根据Idle节点记录空闲等待的服务器将计算任务请求分配至Wait节点或Working节点进行处理;
S3、步骤S2中计算任务完成后,将完成计算任务的服务器从Working节点中删除,并将完成任务的服务器加入Idle节点等待;
S4、监听Idle节点的状态,判断所述Idle节点是否增加空闲等待服务器,若增加空间等待服务器,则判断Wait节点是否增加计算任务;
S5、接收新的计算任务后,重复步骤S2。
2.根据权利要求1所述一种基于ZooKeeper的服务限流方法,其特征在于,所述步骤S2中,所述Idle节点处理计算任务分为以下步骤:
S21、当Idle节点有空闲的服务器时,则随机调取任意空闲服务器,将计算任务分发给调取的空闲服务器执行计算任务;
S22、当Idle节点没有空闲服务器时,则将请求的计算任务加入ZooKeeper的Wait节点,等待被分配。
3.根据权利要求1所述一种基于ZooKeeper的服务限流方法,其特征在于,所述步骤S4中,所述Idle节点状态运用ZooKeeper回调机制监控。
4.根据权利要求1所述一种基于ZooKeeper的服务限流方法,其特征在于,所述步骤S4中,所述Wait节点的判断过程分为以下步骤:
S41、若Idle节点新增空闲等待服务器,且Wait节点没有增加计算任务,则不做任何处理;
S42、若Idle节点新增空闲等待服务器,且Wait节点新增计算任务,则调取出Wait节点的新增计算任务,同时调取出Idle节点的空闲等待服务器,将所述新增计算任务分配至所述空闲等待服务器进行计算。
5.一种基于ZooKeeper的服务限流系统,其特征在于,所述系统包括创建节点模块、计算任务模块、完成任务模块、监听节点模块和重复任务模块;
所述创建节点模块,用于在ZooKeeper创建Wait节点,Working节点和Idle节点,所述Wait节点记录正在等待的计算分析任务,所述Working节点记录正在执行计算任务的服务器,所述Idle节点为空闲等待的服务器;
所述计算任务模块,用于读取所述ZooKeeper中创建的Idle节点,根据Idle节点记录空闲等待的服务器将计算任务请求分配至Wait节点或Working节点进行处理;
所述完成任务模块,用于将完成计算任务的服务器从Working节点中删除,并将完成任务的服务器加入Idle节点;
所述监听节点模块,用于监听Idle节点的状态,判断所述Idle节点是否增加空闲等待服务器,若增加空间等待服务器,则判断Wait节点是否增加计算任务;
所述重复任务模块,用于接收新计算任务,进入计算任务模块中执行任务。
6.根据权利要求5所述一种基于ZooKeeper的服务限流系统,其特征在于,所述计算任务模块还包括执行计算模块和等待分配模块:
执行计算模块,用于Idle节点有空闲的服务器时,随机调取任意空闲服务器,将计算任务分发给调取的空闲服务器执行计算任务;
等待分配模块,用于Idle节点没有空闲服务器时,将请求的计算任务加入ZooKeeper的Wait节点,等待被分配。
7.根据权利要求5所述一种基于ZooKeeper的服务限流系统,其特征在于,所述监听节点模块中运用ZooKeeper回调机制监控。
8.根据权利要求7所述一种基于ZooKeeper的服务限流系统,其特征在于,所述监听节点模块还包括空闲模块和调取模块;
空闲模块,用于当Idle节点新增空闲等待服务器,且Wait节点没有增加计算任务时,无需进行任何处理;
调取模块,用于当Idle节点新增空闲等待服务器,且Wait节点新增计算任务时,调取出Wait节点的新增计算任务,同时调取出Idle节点的空闲等待服务器,将所述新增计算任务分配至所述空闲等待服务器进行计算。
9.一种基于ZooKeeper的服务限流系统的服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4中任一项所述一种基于ZooKeeper的服务限流方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述一种基于ZooKeeper的服务限流方法的步骤。
CN201810730979.6A 2018-07-05 2018-07-05 基于ZooKeeper的服务限流方法、系统、服务器及存储介质 Active CN109067841B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810730979.6A CN109067841B (zh) 2018-07-05 2018-07-05 基于ZooKeeper的服务限流方法、系统、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810730979.6A CN109067841B (zh) 2018-07-05 2018-07-05 基于ZooKeeper的服务限流方法、系统、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN109067841A CN109067841A (zh) 2018-12-21
CN109067841B true CN109067841B (zh) 2021-05-25

Family

ID=64819415

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810730979.6A Active CN109067841B (zh) 2018-07-05 2018-07-05 基于ZooKeeper的服务限流方法、系统、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN109067841B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109995669B (zh) * 2019-04-09 2024-05-03 深圳前海微众银行股份有限公司 分布式限流方法、装置、设备及可读存储介质
CN110417672B (zh) * 2019-08-01 2021-08-13 北京三快在线科技有限公司 限流方法及装置
CN110677453A (zh) * 2019-08-15 2020-01-10 平安普惠企业管理有限公司 基于ZooKeeper的分布式锁服务实现方法、装置、设备及存储介质
CN111045807B (zh) * 2019-12-17 2024-05-14 深圳前海环融联易信息科技服务有限公司 基于zookeeper任务处理的方法、装置、计算机设备及存储介质
CN111212123A (zh) * 2019-12-26 2020-05-29 天津中科曙光存储科技有限公司 基于ZooKeeper的Lunmap管理方法
CN111552672B (zh) * 2020-02-19 2023-09-15 中国船舶工业系统工程研究院 一种基于ZooKeeper的分布式服务状态一致性维护方法及装置
CN111431999B (zh) * 2020-03-23 2022-11-25 杭州小影创新科技股份有限公司 一种基于Paxos算法的云函数分布式系统
CN113920698B (zh) * 2021-11-25 2023-08-04 杭州安恒信息技术股份有限公司 一种接口异常调用的预警方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033777A (zh) * 2010-09-17 2011-04-27 中国资源卫星应用中心 基于ice的分布式作业调度引擎
CN106874090A (zh) * 2017-01-23 2017-06-20 北京思特奇信息技术股份有限公司 基于云系统的作业调度方法和系统
CN107423121A (zh) * 2017-05-02 2017-12-01 千寻位置网络有限公司 Gnss精密后处理任务的调度系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10146592B2 (en) * 2015-09-18 2018-12-04 Salesforce.Com, Inc. Managing resource allocation in a stream processing framework

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033777A (zh) * 2010-09-17 2011-04-27 中国资源卫星应用中心 基于ice的分布式作业调度引擎
CN106874090A (zh) * 2017-01-23 2017-06-20 北京思特奇信息技术股份有限公司 基于云系统的作业调度方法和系统
CN107423121A (zh) * 2017-05-02 2017-12-01 千寻位置网络有限公司 Gnss精密后处理任务的调度系统及方法

Also Published As

Publication number Publication date
CN109067841A (zh) 2018-12-21

Similar Documents

Publication Publication Date Title
CN109067841B (zh) 基于ZooKeeper的服务限流方法、系统、服务器及存储介质
CN109493076B (zh) 一种Kafka消息唯一消费方法、系统、服务器及存储介质
US11153182B2 (en) Resource lifecycle automation
Zhao et al. Cloud data management
US20240214428A1 (en) Platform for management and tracking of collaborative projects
US9910881B1 (en) Maintaining versions of control plane data for a network-based service control plane
CN109144783B (zh) 一种分布式海量非结构化数据备份方法及系统
US10182104B1 (en) Automatic propagation of resource attributes in a provider network according to propagation criteria
US20060149611A1 (en) Peer to peer resource negotiation and coordination to satisfy a service level objective
US11405328B2 (en) Providing on-demand production of graph-based relationships in a cloud computing environment
CN112685499A (zh) 一种工作业务流的流程数据同步方法、装置及设备
CN111352592B (zh) 磁盘读写控制方法、装置、设备及计算机可读存储介质
US9244961B2 (en) Concurrent access for hierarchical data storage
CN116302708A (zh) 基于负载均衡的数据备份方法、装置、设备及存储介质
CN115392501A (zh) 数据采集方法、装置、电子设备及存储介质
CN108933813B (zh) 防止读取器饥饿的方法、系统和存储介质
CN108696559B (zh) 流处理方法及装置
CN109257256A (zh) 设备监控方法、装置、计算机设备及存储介质
CN116795492A (zh) 云平台的资源调度方法、装置、设备及可读存储介质
CN111353766A (zh) 分布式业务系统的业务流程处理系统及方法
CN115984022A (zh) 分布式支付系统统一对账方法和装置
US9772877B2 (en) Managing I/O operations in a shared file system
US11836125B1 (en) Scalable database dependency monitoring and visualization system
CN111209350A (zh) 系统开发方法、装置、终端设备及存储介质
US11882008B1 (en) Workload classes for tenant-level resource isolation

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240424

Address after: 710000, Room 202, 2nd Floor, Building 12, Phase 1, Yungu, West Fengxi New City, Xixian New Area, Xi'an City, Shaanxi Province

Patentee after: Shaanxi Jinsheng Bolong Management Consulting Service Co.,Ltd.

Country or region after: China

Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building

Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240711

Address after: No. 11425, 14th Floor, Unit 1, Building 3, i Cube, Fengdong New City, Xixian New Area, Xi'an City, Shaanxi Province, 710000

Patentee after: Shaanxi Tiger Information Technology Co.,Ltd.

Country or region after: China

Address before: 710000, Room 202, 2nd Floor, Building 12, Phase 1, Yungu, West Fengxi New City, Xixian New Area, Xi'an City, Shaanxi Province

Patentee before: Shaanxi Jinsheng Bolong Management Consulting Service Co.,Ltd.

Country or region before: China