你好,游客 登录 注册 搜索
背景:
阅读新闻

Gearman - 分布式远程过程处理框架

[日期:2011-12-31] 来源:Linux社区  作者:Linux [字体: ]

【介绍】

Gearman 是 Brad Fitzpatrick 的一个作品,用 Perl 写的任务调度程序,提供一个服务器端和多种语言的客户端接口,包括 C/Perl/Python/Ruby 等,在 client library 本身就支持一定程度的高可靠度。

Gearman系统用来把工作委派给其他机器,分布式的调用更适合做某项工作的机器,并发的做某项工作,在多个调用间做负载均衡,或用来在调用其它语言的函数。

工作原理图:

工作流:

集群架构:

【Gearman使用简介】

Gearman1月16日发布了c语言的0.2 版本,gearman提供了一个work传递其他机器,或者调用其他机器功能的框架,通过gearman你可以实现并行的工作,负载均衡处理,调用其他语言的函数。它可以应用在多种场合,从高可用性的web服务到数据库复制,换句话说,它是分布式处理的中枢神经。gearman早期是sixpart实现的perl语言开发的版本,名字来源于"Manager",这一框架只负责分发要做的工作,本身并不做任何实际的工作。(这点与spread toolkit相同 译者注)。


怎样使用 Gearman?

一个简单的gearnan的体系包括三个部分,一个client,一个worker,一个job server,client负责创建并发起一个job请求,job server负责找到合适的worker,worker当然就是负责执行job,事实上是worker完成了实际的任务。gearman提供一个api从而你的client与worker能够与job server通信。我们来看一个简单的gearman应用实例。这一实例只完成一个功能,将一串字符串reverse。 

首先我们要写一个client, “reverse_client”,代码实际上就是负责发起job请求,并返回结果。代码实际上就是连接job server,并发起一个请求 reverse函数,代码部分如下:

 
  • gearman_client_create(&client);  
  • gearman_client_add_server(&client, "127.0.0.1", 0);  
  • result= gearman_client_do(&client, "reverse""Hello world!", strlen("Hello world!"), &result_size, &ret);  
  • 这段代码首先初始化一个client实例,配置并连接一个本地的job server ,然后发起了一个reverse的请求,参数是 "Hello world!"函数名称与参数,这些与gearman的要求一致。现在gearman的将这个请求数据打包发给job server,job server会自动寻找合适的worker来执行。

    linux
    本文评论   查看全部评论 (0)
    表情: 表情 姓名: 字数

           

    评论声明
    • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
    • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
    • 本站管理人员有权保留或删除其管辖留言中的任意内容
    • 本站有权在网站内转载或引用您的评论
    • 参与本评论即表明您已经阅读并接受上述条款