当前位置:  数据库>oracle

学学Gearman

    来源: 互联网  发布时间:2017-04-18

    本文导语: 通常,多语言多系统之间的集成是个大问题,一般来说,人们多半会采用WebService的方式来处理此类集成问题,但不管采用何种风格的WebService,如RPC风格,或者REST风格,其本身都有一定的复杂性。相比之下,Gearman也能实现类似...

通常,多语言系统之间的集成是个大问题,一般来说,人们多半会采用WebService的方式来处理此类集成问题,但不管采用何种风格的WebService,如RPC风格,或者REST风格,其本身都有一定的复杂性。相比之下,Gearman也能实现类似的作用,而且更简单易用。

一个Gearman请求的处理过程涉及三个角色:Client -> Job -> Worker

Client:请求的发起者,可以是C,PHPPerlMySQL UDF等等。
Job:请求的调度者,用来负责协调把Client发出的请求转发给合适的Work。
Worker:请求的处理者,可以是C,PHP,Perl等等。

因为Client,Worker并不限制用一样的语言,所以有利于多语言多系统之间的集成。

甚至我们通过增加更多的Worker,可以很方便的实现应用程序的分布式负载均衡架构

下面看看如何安装运行一个例子,条件所限,我们把Client,Job,Worker三个角色运行在一台服务器上:

安装Gearman server and library

wget http://launchpad.net/gearmand/trunk/0.8/+download/gearmand-0.8.tar.gz
tar zxf gearmand-0.8.tar.gz
cd gearmand-0.8
./configure
make
make install






安装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







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

extension = "gearman.so"

启动Job:

gearmand -d

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

gearmand -d -u root

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

注意:如果找不到gearmand命令的路径,别忘了用whereis gearmand确认。

编写Worker:

worker.php文件内容如下:

php<br$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 &

编写Client:

client.php文件内容如下:


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 想好好学学linux,帮忙推荐好书
  • 哪位大侠有CentOS5配置邮件服务器的相关资料,我想学学
  • 本人想学学linux下的编程,各位给点意见!
  • 我想好好学学linux,现在装了red hat 8.0,请大家推荐几本好书!!!
  • 想学学j2me,谁能提供一些中文的好点的资料。
  • 不是说Liunx是免费发布的嘛,请问哪里可以下载RedHat 7.3或更高版本的redhat的完全安装版,请提供地址,我想装个redhat学学
  • 第一次上来,想学学C,有谁能帮我写一个简单的程序?没有图形界面的!
  • 想学学linux usb 驱动开发,请大侠们推荐一本书。
  • 请问什么地方可以得到Linux的源代码,非常想学学经典的程序,启发启发自己,谢谢!
  • 想学linux !!!!!!!对linux系统,编程都不怎么熟悉,想学学!!大家可否推荐比较好的书 啊!!
  • 小弟想学学java,请各位高手指点一二!有分送


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3