Gearman--任务分发系统 (初探)(JAVA版)

最近拿DBN(Deep Belief Network)做实验, 由于数据维数太大, 程序跑了6天也没训练完成, 由于长时间没关机, 电脑变的特别卡. 正好实验室有两台比较空闲的服务器, 所以计划将实验程序放到服务器上运行, 如果将程序直接放到服务器上运行也比较方便快捷. 但是想想要是弄一个任务分发系统, 虽然现在麻烦点, 以后就会方便很多.一开始想自己写一个功能简单一点的, 但是觉得自己写的话通用性健壮性都不好, 要是有一个现成的岂不更好. 最先想到的当然是Hadoop,但是Hadoop比较重量级, 而且在Windows下不好配置. 后来就找到了Gearman, 觉得很适合当前需求. 这里使用的是Java版的, 一个托管在Github上,一个在Launchpad上.本文使用的是Github版.

简单来讲Gearman是一个轻量级的任务分发系统,Gearman由三部分组成. Job Server, Worker, Client. 其中Client当然是提交任务, Worker是苦逼的工人,负责完成任务, Job Server负责将Client提交的任务分配给Worker做.为了提高系统的稳定性, Job Server可以有多个, 只要有一个Job Server没有宕机系统就能正常运行.三者关系如图下所示.


Gearman中Job Server都是独立运行的,并不知道其他的Job Server的存在, 所以Client需要指定连接哪个或者哪几个Job Server, 同样Worker也需要指定.Client根据对Job Server的指定顺序进行选择, 前面的Job Server失效才会选择后面的, 所以在大负荷的情况下尽量随机排列Job Server, 以起到Job Server负载均衡的效果. Job Server对Worker的选择有自己一套方法,具体如何分配有待分析具体源码.


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值