CN106445648A - 一种基于redis实现多worker协同的系统 - Google Patents
一种基于redis实现多worker协同的系统 Download PDFInfo
- Publication number
- CN106445648A CN106445648A CN201610920068.0A CN201610920068A CN106445648A CN 106445648 A CN106445648 A CN 106445648A CN 201610920068 A CN201610920068 A CN 201610920068A CN 106445648 A CN106445648 A CN 106445648A
- Authority
- CN
- China
- Prior art keywords
- value
- task
- key
- redis
- worker
- 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
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/465—Distributed object oriented systems
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Abstract
一种基于redis实现多worker协同的系统,开始重新获取一批待处理的任务,以任务类名称为key进行汇总数量,其中redis计数器根据以task的任务名为key建立生存周期为1分钟的key‑value值,其中key值是任务名称,value值为累加数值,发送key的任务汇总数量到redis请求对key的value进行累加,其中由于集群中的worker并行请求,所以汇总到redis里面后会进行排队,然后串行处理worker的key的累加请求,对请求的数量进行value累加,返给worker累加后的数值,累加后value值和系统中的每分钟的限量值进行比较,如果没有超过限额,则执行这批任务,如果部分超额则拒绝超额部分并且执行未超额部分,如果全部超额,则全部拒绝执行任务task。本系统为分布式计算的集群中对计算任务task协同控制速度的通用解决技术方案。
Description
技术领域
本发明属于软件系统技术领域,尤其涉及一种基于redis实现多worker协同的系统。
背景技术
随着互联网大数据时代的到来,越来越多的计算任务task需要交多个计算机(worker)组成的集群来并发处理,由于计算任务中的task对资源(cpu/io/disk)的消耗差别很大,这个时候特别需要合理的安排任务,以防止某类任务占用过多资源造成系统过载,进而影响系统的稳定行和可靠性,因此特别需要一个高效稳定的解决方案来应对此问题。
发明内容
本发明所解决的技术问题采用以下技术方案来实现:提供一种基于redis实现多worker协同的系统,是分布式计算的集群中对计算任务task协同控制速度的通用解决技术方案。
一种基于redis实现多worker协同的系统,开始重新获取一批待处理的任务,以任务类名称为key进行汇总数量,其中redis计数器根据以task的任务名为key建立生存周期为1分钟的key-value值,其中key值是任务名称,value值为累加数值,发送key的任务汇总数量到redis请求对key的value进行累加,其中由于集群中的worker并行请求,所以汇总到redis里面后会进行排队,然后串行处理worker的key的累加请求,对请求的数量进行value累加,返给worker累加后的数值,累加后value值和系统中的每分钟的限量值进行比较,如果没有超过限额,则执行这批key名称任务的task,如果部分超额则拒绝超额部分并且执行未超额部分,如果全部超额,则全部拒绝执行任务task。
本发明的有益效果为:本系统用redis来实现计数器功能,因为整个系统采用的是星型结构,所以各类任务task的计数以key-value形式,集中存储在redis中,key为任务task的名称,value为对应的计数;本系统是分布式计算的集群中对计算任务task协同控制速度的通用解决技术方案。
附图说明
图1是本发明的程序流程图
图2是本发明worker和redis计数器时序图样例
图3是本发明系统结构图
具体实施方式
参照附图,一种基于redis实现多worker协同的系统,其中计算机集群中的各计算节点统称为worker,计算任务统称为task,task的计数以key-value形式,集中存储在redis中,key为任务task的名称,value为对应的计数,首先开始重新获取一批待处理的任务,以任务类名称为key进行汇总数量,其中redis计数器根据以task的任务名为key建立生存周期为1分钟的key-value值,其中key值是任务名称,value值为累加数值,发送key的任务汇总数量到redis请求对key的value进行累加,其中由于集群中的worker并行请求,所以汇总到redis里面后会进行排队,然后串行处理worker的key的累加请求,对请求的数量进行value累加,返给worker累加后的数值,累加后value值和系统中的每分钟的限量值进行比较,如果没有超过限额,则执行这批key名称任务的task,如果部分超额则拒绝超额部分并且执行未超额部分,如果全部超额,则全部拒绝执行任务task。
worker先取一批计算任务task,然后对这批task按照名称为key进行分类汇总,汇总后,按照名称和数量申请redis里面的对应任务名称作为key的计数器进行累加,如果redis里面没有此任务名称key的计数器,则生成一个新的进行累加,并且设置好失效时间,如果有此名key对应的计数器,则进行对value进行累加,并且把累加结果返回给worker,由于在redis里面的key支持生命周期,我们给key值设置为1分钟,则1分钟后,无论key值对应的value值变成多大,key都会消失,进而很简单高效的实现1分钟限速。
本系统用redis来实现计数器功能,因为整个系统采用的是星型结构,所以各类任务task的计数以key-value形式,集中存储在redis中,key为任务task的名称,value为对应的计数;本系统是分布式计算的集群中对计算任务task协同控制速度的通用解决技术方案。
利用本发明所述的技术方案,或本领域的技术人员在本发明技术方案的启发下,设计出类似的技术方案,而达到上述技术效果的,均是落入本发明的保护范围。
Claims (1)
1.一种基于redis实现多worker协同的系统,其特征在于:开始重新获取一批待处理的任务,以任务类名称为key进行汇总数量,其中redis计数器根据以task的任务名为key建立生存周期为1分钟的key-value值,其中key值是任务名称,value值为累加数值,发送key的任务汇总数量到redis请求对key的value进行累加,其中由于集群中的worker并行请求,所以汇总到redis里面后会进行排队,然后串行处理worker的key的累加请求,对请求的数量进行value累加,返给worker累加后的数值,累加后value值和系统中的每分钟的限量值进行比较,如果没有超过限额,则执行这批key名称任务的task,如果部分超额则拒绝超额部分并且执行未超额部分,如果全部超额,则全部拒绝执行任务task。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610920068.0A CN106445648A (zh) | 2016-10-21 | 2016-10-21 | 一种基于redis实现多worker协同的系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610920068.0A CN106445648A (zh) | 2016-10-21 | 2016-10-21 | 一种基于redis实现多worker协同的系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106445648A true CN106445648A (zh) | 2017-02-22 |
Family
ID=58176581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610920068.0A Pending CN106445648A (zh) | 2016-10-21 | 2016-10-21 | 一种基于redis实现多worker协同的系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106445648A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162384A (zh) * | 2019-04-19 | 2019-08-23 | 深圳壹账通智能科技有限公司 | 基于Redis分布式锁的超时时间动态调整方法及系统 |
CN113535362A (zh) * | 2021-07-26 | 2021-10-22 | 北京计算机技术及应用研究所 | 一种分布式调度系统架构和微服务工作流调度方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050076337A1 (en) * | 2003-01-10 | 2005-04-07 | Mangan Timothy Richard | Method and system of optimizing thread scheduling using quality objectives |
CN101686438A (zh) * | 2008-09-27 | 2010-03-31 | 中国移动通信集团上海有限公司 | 一种短信群发的方法和设备 |
US20100162254A1 (en) * | 2005-12-14 | 2010-06-24 | Business Objects Software Ltd. | Apparatus and Method for Persistent Report Serving |
CN103345423A (zh) * | 2013-07-03 | 2013-10-09 | 北京京东尚科信息技术有限公司 | 一种处理异步任务的方法和系统 |
CN103793273A (zh) * | 2014-01-24 | 2014-05-14 | 北京京东尚科信息技术有限公司 | 一种基于Redis的分布式队列调度方法及装置 |
CN105447740A (zh) * | 2015-11-17 | 2016-03-30 | 北京齐尔布莱特科技有限公司 | 基于Golang的反刷单方法 |
CN105700958A (zh) * | 2016-01-07 | 2016-06-22 | 北京京东尚科信息技术有限公司 | 一种任务自动拆分以及子任务并行执行的方法及其系统 |
-
2016
- 2016-10-21 CN CN201610920068.0A patent/CN106445648A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050076337A1 (en) * | 2003-01-10 | 2005-04-07 | Mangan Timothy Richard | Method and system of optimizing thread scheduling using quality objectives |
US20100162254A1 (en) * | 2005-12-14 | 2010-06-24 | Business Objects Software Ltd. | Apparatus and Method for Persistent Report Serving |
CN101686438A (zh) * | 2008-09-27 | 2010-03-31 | 中国移动通信集团上海有限公司 | 一种短信群发的方法和设备 |
CN103345423A (zh) * | 2013-07-03 | 2013-10-09 | 北京京东尚科信息技术有限公司 | 一种处理异步任务的方法和系统 |
CN103793273A (zh) * | 2014-01-24 | 2014-05-14 | 北京京东尚科信息技术有限公司 | 一种基于Redis的分布式队列调度方法及装置 |
CN105447740A (zh) * | 2015-11-17 | 2016-03-30 | 北京齐尔布莱特科技有限公司 | 基于Golang的反刷单方法 |
CN105700958A (zh) * | 2016-01-07 | 2016-06-22 | 北京京东尚科信息技术有限公司 | 一种任务自动拆分以及子任务并行执行的方法及其系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162384A (zh) * | 2019-04-19 | 2019-08-23 | 深圳壹账通智能科技有限公司 | 基于Redis分布式锁的超时时间动态调整方法及系统 |
CN113535362A (zh) * | 2021-07-26 | 2021-10-22 | 北京计算机技术及应用研究所 | 一种分布式调度系统架构和微服务工作流调度方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Venkataraman et al. | Drizzle: Fast and adaptable stream processing at scale | |
Gautam et al. | A survey on job scheduling algorithms in big data processing | |
Shah et al. | The MDS queue: Analysing the latency performance of erasure codes | |
Sun et al. | IaaS public cloud computing platform scheduling model and optimization analysis | |
US9529626B2 (en) | Facilitating equitable distribution of thread resources for job types associated with tenants in a multi-tenant on-demand services environment | |
Sidhanta et al. | Optex: A deadline-aware cost optimization model for spark | |
CA2808367C (en) | Storage system implemented using optimized parallel processors | |
JP5584780B2 (ja) | データ収集方法、データ収集装置及びネットワーク管理デバイス | |
WO2020119649A1 (zh) | 一种任务调度模拟系统 | |
CN112000455B (zh) | 一种多线程任务处理方法、装置及电子设备 | |
US10884667B2 (en) | Storage controller and IO request processing method | |
Jin et al. | Improving resource utilization by timely fine-grained scheduling | |
Yin et al. | Cloudscout: A non-intrusive approach to service dependency discovery | |
CN104102533A (zh) | 一种基于带宽感知的Hadoop调度方法和系统 | |
CN115004156A (zh) | 实时多租户工作负载跟踪和自动节流 | |
CN106445648A (zh) | 一种基于redis实现多worker协同的系统 | |
Hussain et al. | A counter based approach for reducer placement with augmented Hadoop rackawareness | |
US10033620B1 (en) | Partitioned performance adaptive policies and leases | |
Bardhan et al. | The Anatomy of MapReduce Jobs, Scheduling, and Performance Challenges. | |
Thamsen et al. | Continuously improving the resource utilization of iterative parallel dataflows | |
Liu et al. | Evaluating task scheduling in hadoop-based cloud systems | |
Divya et al. | Workload characteristics and resource aware Hadoop scheduler | |
Liu et al. | Parallelization of a series of extreme learning machine algorithms based on spark | |
Khalil et al. | Survey of Apache Spark optimized job scheduling in Big Data | |
Chai et al. | Profit-oriented task scheduling algorithm in Hadoop cluster |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170222 |