Code Monkey home page Code Monkey logo

distributed-task's Introduction

distributed-task

用go语言编写的轻量级分布式任务调度框架. A light framework of task execution in distributed system Written with go

  • 安装: go get github.com/foreversmart/distributed-task
  • 更新: go get -u github.com/foreversmart/distributed-task 添加flag u for update

  • 项目描述

distributed-task 是一个开源的轻量级分布式任务调度框架,

当前1.0 目标是实现一个可以部署在本地和远端的 运行框架,用户可以在框架中自定义执行的任务Task和任务数据集Data,并且用户可以自定义任务的分配方式和 数据分配方式。用户可以在本地和远端分布式并行执行Task,并将执行完成后的结果集返回给本地,实现并发处理 一些任务的需求。(此处的本地可以看作中心节点)


2.0 实现代码的动态部署,即本地端可以任意重新定义Task,而不用重新部署远端(有点难,希望有大大可以加入) .


3.0 实现节点间的自动弹性调度,优化调度性能(主要从数据传输,网络性能,CPU等方面考虑)


4.0 用一致性哈希实现计算过程的缓存和存储

  • version 0.7 用户自定义配置文件 fixbugs 增加运行协程统计 增加执行段定义任务功能

  • version 0.6


简单归约结果

  • version 0.5

网络模块
命令模块
简单调度器
单节点动态负载实现
  • 设计**

借鉴MapReduce的设计**,来分布式的并行计算Task,利用go routine 的特性实现多个机器的多核并行, 和高并发量;数据集目前是独立无关的任务数据

  • 1.0模块和设计
  1. 网络模块
<p>负责网络传输,监听,心跳包<p>
  1. 命令模块
<p>负责根据收到的message 调用执行相关的模块<p>
  1. 调度器
<p>负责分发任务(节点级别)<p>
  1. 执行单元
<p>类似于Map Reduce 里面的 Map 将任务数据集并发在节点执行</p>
  1. 结果回收
<P>类似于Map Reduce 里面的 Reduce 将结果集归于返回给本地端[MapReduce](http://static.googleusercontent.com/media/research.google.com/zh-CN//archive/mapreduce-osdi04.pdf)</p>
  1. 配置管理
<p>配置节点ip,cpu核数,并发力度,负载度<p>

![image](http://mytutu.qiniudn.com/go-task.jpg)

join the team


给njutree dot at gmail dot com 发一封邮件加入我们的项目
Please send me a mail at njutree dot whitworth at gmail dot com.

distributed-task's People

Contributors

foreversmart avatar sirity avatar siritymorven avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.