标签:gearman安装与使用 gearmand-1.1.12 分布式消息队列 gearman
Mogilefs的分布式文件系统的核心就是用gearman实现的。
这个软件的应用场景很多,比如视频网站的视频处理,分布式日志处理,电子邮件处理,文件同步处理,图片处理等等,只要是可以放开,不影响体验和响应的场 景,需要并行进行大量计算和处理的程序都是可以的。Yahoo在60或更多的服务器上使用gearman每天处理600万个作业。新闻聚合器digg构建 了一个相同规模的gearman网络,每天可处理400000个作业。Gearman不但可以做为任务分发,还可以做为应用方面的负载均衡。可以让worker放在不同的一堆服务器上,也可以启动放在同一个cpu的多个核 上。比如,应用视频转换程序,不希望web服务器来处理视频格式转换,这时,可以在这一堆服务器上进行任务分发,在上面加载worker处理视频格式,对 外的web服务器就不会被视频转换过程影响。而且扩展方便,加一台服务器到任务调度中心,注册成worker即可,这时job server会在请求到来的时候,将请求发送给空闲的worker。还可以运行多个job server,组成ha架构,如果一个job server当掉了,client和worker会自动迁移到另一台job server上。
一个Gearman请求的处理过程涉及三个角色:Client -> Job -> Worker。
Client:请求的发起者,可以是 C,PHP,Perl,MySQL UDF 等等。5)安装成功图,输入
# gearman
出现“Installing shared extensions: /usr/lib64/php/modules/”表示安装成功,/usr/lib64/php/modules/是gearman.so扩展的目录。如图
<?php
$worker= new GearmanWorker();
$worker->addServer('192.168.142.130', '4730');
$worker->addFunction("sendMail", "my_sendmail_function");
while ($worker->work());
function my_sendmail_function($job){
// 接收数据
$tmp = $job->workload();
$receiveArr = unserialize($tmp);
$from = $receiveArr['from'];
$to = $receiveArr['to'];
$subject = $receiveArr['subject'];
$content = $receiveArr['content'];
//发送邮件
//....
return $subject.' sendmail OK';
}
?>如果处理的数据量大,可以执行以下脚本多次,即启动多个Worker端。
# nohup php worker.php > tmp.txt &<?php
$client= new GearmanClient();
$client->addServer('192.168.142.130', '4730');
$job = array();
$job['from'] = 'CleverCode';
$job['to'] = 'Gearman';
$job['subject'] = 'hello Gearman';
$job['content'] = 'hello Gearman:this is from GearmanClient';
$job = serialize($job);
//等到worker端返回结果,才会结束。
$ret = $client->do("sendMail", $job);
echo $ret."\r\n";
?><?php
$client= new GearmanClient();
$client->addServer('192.168.142.130', '4730');
$job = array();
$job['from'] = 'CleverCode';
$job['to'] = 'Gearman';
$job['subject'] = 'hello Gearman';
$job['content'] = 'hello Gearman:this is from GearmanClient';
$job = serialize($job);
//不等待返回结果,就会结束
$ret = $client->doBackground("sendMail", $job);
echo $ret."\r\n";
?>
版权声明:
1)原创作品,出自"CleverCode的博客",转载时请务必注明以下原创地址,否则追究版权法律责任。
2)原创地址:http://blog.csdn.net/clevercode/article/details/45718735(转载务必注明该地址)。
3)博客专栏地址(Linux常用软件安装与配置):http://blog.csdn.net/column/details/linuxsoftwareinstall.html(持续增加,关注请收藏)。
4)欢迎大家关注我博客更多的精彩内容:http://blog.csdn.net/CleverCode。
Linux中Gearman安装与使用,分布式消息队列(CentOS-6.5:gearmand-1.1.12)
标签:gearman安装与使用 gearmand-1.1.12 分布式消息队列 gearman
原文地址:http://blog.csdn.net/clevercode/article/details/45718735