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

Gearman的介绍php

主页在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配置文件加载相应模块并使之生效:.net

extension = "gearman.so"调试

4.启动Job:server

gearmand -d

若是当前用户是root的话,则须要这样操做:

gearmand -d -u root

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

以调试的方式启动:

gearmand -vv

5.编写Worker:

worker.php文件内容以下:

<?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文件内容以下:

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

运行client:

php client.php

输出:!dlroW olleH

相关文章
相关标签/搜索