CN106445648A - 一种基于redis实现多worker协同的系统 - Google Patents

一种基于redis实现多worker协同的系统 Download PDF

Info

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
Application number
CN201610920068.0A
Other languages
English (en)
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.)
Tianjin Mass Information Technology Ltd By Share Ltd
Original Assignee
Tianjin Mass Information Technology Ltd By Share 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 Tianjin Mass Information Technology Ltd By Share Ltd filed Critical Tianjin Mass Information Technology Ltd By Share Ltd
Priority to CN201610920068.0A priority Critical patent/CN106445648A/zh
Publication of CN106445648A publication Critical patent/CN106445648A/zh
Pending legal-status Critical Current

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/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/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/485Task 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协同的系统
技术领域
本发明属于软件系统技术领域,尤其涉及一种基于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。
CN201610920068.0A 2016-10-21 2016-10-21 一种基于redis实现多worker协同的系统 Pending CN106445648A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 北京京东尚科信息技术有限公司 一种任务自动拆分以及子任务并行执行的方法及其系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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