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

Watchers

 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.