利用Gearman,搭建异步分布式计算平台

Gearman的介绍

主页在http://gearman.org/index.php, 它的主要优点有:

  1. 实现了异步计算。可以将比较耗时的计算分配到分布式计算集群来减少站点服务器的压力和用户的等待。例如passport里的邮件发送/头像上传裁减/国内外数据分离请求等等。
  2. 跨语言,有利于多语言多系统之间的集成。PHP/Perl/Java/C++可以融合在一起,用Perl实现的邮件发送功能PHP也能自由调用,也可以使用Perl调用另一台服务器上用C++编写的程序的一个函数。
  3. 便于扩展和实现负载均衡。可以通过增加worker的数量来提供更好的性能,在其中一台出现问题的时候能够由其他的worker来完成任务。
  4. 开源
  5. 快速: 利用了c最小化的减少了系统开销。

Gearman的安装配置

1.安装Gearman server and library:

wget http://launchpad.net/gearmand/tr … gearmand-0.8.tar.gz
tar zxf gearmand-0.8.tar.gz
cd gearmand-0.8
./configure
make
make install

2.安装Gearman PHP extension:

wget http://pecl.php.net/get/gearman-0.4.0.tgz
tar zxf gearman-0.4.0.tgz
cd gearman-0.4.0
phpize
./configure
make
make install

3.编辑php.ini配置文件加载相应模块并使之生效:

extension = “gearman.so”

4.启动Job:

gearmand -d

如果当前用户是root的话,则需要这样操作:

gearmand -d -u root

缺省会使用4730端口,下面会用到。

以调试的方式启动:

gearmand -vv

5.编写Worker:

worker.php文件内容如下:

$worker= new GearmanWorker();
$worker->addServer('127.0.0.1', 4730);
$worker->addFunction('reverse', 'my_reverse_function');

while ($worker->work());

function my_reverse_function($job)
{

            return strrev($job->workload());

}
?>

设置后台运行work:

php worker.php &

6.编写Client:

client.php文件内容如下:

$client= new GearmanClient();
$client->addServer('127.0.0.1', 4730);
echo $client->do('reverse', 'Hello World!'), “/n”;
?>

运行client:

php client.php

输出:!dlroW olleH

你可能感兴趣的:(利用Gearman,搭建异步分布式计算平台)