`
litaocheng
  • 浏览: 333156 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Gearman Erlang Client

阅读更多

Gearman


Gearman是一个通用的任务调度框架。
通过Gearman,多种编程语言,多台机器可以有机的结合,从而完成指定的任务。
其结构图如下:


  • 黄色区域表示由Gearman提供的设施
  • 蓝色区域表示由用户自己提供的部分

Gearman Job Server为核心的调度器,其管理Client(任务的调用者)和Worker(任务的执行者),负责任务的接收分发,以及将处理结果发送给Client。Job Server是任务的调度器,也是数据的中转者。

Gearman Client API及Gearman Worker API是由Gearman提供的各种语言版本的client library(如java, python, php, c等)。其遵循Gearman的交互协议,与Gearman Job Server(gearmand)进行通讯。Gearman官网中不提供Erlang Client,本文介绍Gearman Erlang Client的实现。

Gearman仅仅提供了一个框架,而具体的需要执行什么Job,Job如何处理,需要用户自己去定义(即上图中蓝色部分),用户的业务逻辑与Gearman Client API协作,从而完成某些功能和应用。

如何做到高可用?



 
worker和client都可以注册(register)到多个Job Server,当某个Job Server不可用时,可以尝试其它Server,避免的单点故障(SPF),从而提高可用性。

erl-gearman


erl-gearman 基于libgearman(Gearman提供的c client library),通过linked-in driver的方式实现。其参考了Erlang/erts inet_drv代码,通过erlang:port_control/3与driver进行交互。

目前erl-gearman仅仅支持Gearman Client API。

  • 大小: 24.8 KB
  • 大小: 6.4 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics