跨多种环境部署 Gearman
2010-10-09 08:13:21 来源:WEB开发网图 1. Gearman 服务概要
Gearmand 服务器执行一个简单的功能,即从客户机收集工作请求并充当一个注册器(工人可以在此提交关于它们支持的工作和操作类型的信息)。在传统的网格服务中,网格节点由管理服务器指派给特定的任务和给定的工作,在 Gearman 中与此不同,是由工人请求做工作。
这一重要区别意味着,关于哪个工人做哪项工作的决定不是必需的。在分布工作时,没有配置、优先次序或者需要的其他组织。相反,系统的特点是,自运行的和自管理的,对于很多安装,这里最初要描述的基本结构都不复杂。
Gearman 样例
了解 Gearman 如何工作最容易的方式是,尝试一个使用 Gearman 服务的简单应用程序。您将为本例中的工人和客户机要素使用 Perl,但是有必要指出来,您也可以混用及搭配多种语言以充分发挥特定环境的优势。
首先,必须让 gearmand 服务器运行起来。为此,您可以下载源代码、运行配置脚本并运行服务器;需要用到 libevent 库。很多 Linux® 发行版也具有执行安装的 Gearman 组件,无需手工处理。
安装完成后,利用 -vv 命令行选项阅读服务,了解您开始使用时服务器在做什么。
对于客户机和工人组件,需要安装 Gearman CPAN 模块,其中包括 Gearman::Client 和 Gearman::Worker 模块,它们是您创建客户机和工人时需要用到的模块。
对于一个简单的工人,我们提供一个基本的单词计数功能。
清单 1. 简单的 Gearman Worker
use Gearman::Worker;
my $worker = Gearman::Worker->new;
$worker->job_servers('192.168.0.2:4730');
$worker->register_function('wordcount' => \&wordcount);
$worker->work while 1;
sub wordcount
{
my ($input) = @_;
my @words = split /\s+/,$input->arg;
return (scalar @words);
}
更多精彩
赞助商链接