FROM: http://www.cnblogs.com/codebean/archive/2011/07/26/2117074.html

一.Gearman是什么?
Gearman是一个分发任务的程序框架。它由三部分组成,如下图:

Gearman Client:它提供Gearman Client API给我们的应用程序调用,API可以使用是 C,PHP,Perl,MySQL UDF 等等语言,它是请求的发起者。   Gearman Job Server:将客户端的请求分发到各个Gearman Worker的调度者,相当于中央控制器,它不负责处理具体业务逻辑。
Gearman Worker:它提供Gearman Worker API给应用程序调用,具体负责客户端的请求,并将处理结果返回给客户端。

二.Gearman能干什么?
通过上面可以看出,在Gearman Client和Gearman Worker可以使用不同的编程语言,这给我们在不同语言通信提供了机会。比如客户端我们用的是PHP,在具体处理的Gearman Worker中,我们则可以使用C。

另外,由于中间的Gearman Job Server,它可以把一个请求分发到众多worker中的一个,可以用来做负载均衡。
另外,Gearman在处理并发方面也是大大有用的。

三.Gearman的安装使用
首先下载Gearman的相关源码,地址:http://gearman.org/index.php?id=download。
gearmand:http://launchpad.net/gearmand/trunk/0.24/+download/gearmand-0.24.tar.gz

libgearman (C):http://launchpad.net/gearmand/trunk/0.14/+download/gearmand-0.14.tar.gz
Gearman PHP Extension:http://pecl.php.net/get/gearman-0.7.0.tgz

我们为了清楚的演示,将gearmand安装在192.168.132.30(Job server)上面,在分别将Gearman PHP扩展安装的机器192.168.132.64(worker)和192.168.132.68(client)上面。Worker及client我们都使用PHP语言。
在192.168.132.30(Job server)上面:

tar xvzf gearmand-0.24.tar.gzcd gearmand-0.24/./configuremakesudo make install//如果在configure时报错,则可能缺少包,可能需要安装如下包:sudo apt-get install libboost-program-options-dev libevent-dev uuid-dev//开启Gearmand服务    gearmand -d

在192.168.132.64(worker)和192.168.132.68(client),分别如下:

//首先安装PHP 扩展需要的libgearman    tar xvzf gearmand-0.14.tar.gz    cd gearmand    ./configuremakesudo make install//如果在configure时报错,则可能缺少包,可能需要安装如下包:sudo apt-get install libboost-program-options-dev libevent-dev uuid-dev//安装PHP扩展    tar xvzf gearman-0.7.0.tgz    cd gearmanphpize    ./configure --with-php-config=/data0/php52/bin/php-config    make    make install    //找到PHP的配置文件php.ini,编辑它    vim php.ini    //在php.ini的末尾加上    extension=gearman.so

以上都好了以上,可以使用 php -re gearman看一些是不是gearman扩展安装成功了。

下面我们来测试一下:
在192.168.132.64(worker),编辑文件worker.php:

<?php$worker=new GearmanWorker();$worker->addServer("192.168.132.30",4730);  //连接到Job server 上$worker->addFunction("reverse","my_reverse_function"); while ($worker->work());

function my_reverse_function($job){    returnstrrev($job->workload())." worker1";}?>

然后在后台运行该文件:php worker.php &.
再编辑一个文件worker2.php,输入内容:

<?php$worker=new GearmanWorker();$worker->addServer("192.168.132.30",4730);  //连接到Job server 上$worker->addFunction("reverse","my_reverse_function"); while ($worker->work());

function my_reverse_function($job){  returnstrrev($job->workload())." worker2";}?>

在后台运行该文件:php worker2.php &
在192.168.132.68(client),编辑文件 client.php:

<?php$client=new GearmanClient();$client->addServer("192.168.132.30",4730); //连接到Job server上echo$client->do("reverse","Hello World!");?>

 然后多次运行php client.php,应该可以看见输出不同的结果。

gearman简介及安装使用相关推荐

  1. 2021年大数据ELK(二十一):Logstash简介和安装

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Logstash简介和安装 一.简介 1.经典架构 2.对比Flume 3.对 ...

  2. 扩增子分析QIIME2(2018.6). 1简介和安装

    扩增子分析QIIME2. 1简介和安装 QIIME2版本 2018.6 简介 优点 学习思路 什么是QIIME 2? 核心概念 安装 原生安装QIIME2 虚拟机安装 使用VirtualBox方式安装 ...

  3. db2top详细使用方法_Py之PIL:Python的PIL库的简介、安装、使用方法详细攻略

    Py之PIL:Python的PIL库的简介.安装.使用方法详细攻略 目录 PIL库的简介 PIL库的安装 PIL库的用方法 1.几何图形的绘制与文字的绘制 2.绘制图形的各种案例 PIL库的简介 PI ...

  4. python compiler库_Python之compiler:compiler库的简介、安装、使用方法之详细攻略

    Python之compiler:compiler库的简介.安装.使用方法之详细攻略 目录 compiler库的简介 compiler库的安装 compiler库的使用方法 compiler库的简介 根 ...

  5. Pandas简明教程:一、Pandas简介与安装

    文章目录 1.Pandas简介 2.为何要用Pandas? 3.知识.技能与环境的准备 4.Pandas的安装与相关辅助资料 本系列教程教程完整目录: 1.Pandas简介 关于Pandas的介绍在百 ...

  6. Py之Xlrd:Xlrd简介、安装、使用方法(读取xlsx文件的shee表头名/总行数/总列数、每一行的内容、指定列的内容)之详细攻略

    Py之Xlrd:Xlrd简介.安装.使用方法(读取xlsx文件的shee表头名/总行数/总列数.每一行的内容.指定列的内容)之详细攻略  导读      xlrd,xlwt和xlutils是用Pyth ...

  7. Python之ffmpeg-python:ffmpeg-python库的简介、安装、使用方法之详细攻略

    Python之ffmpeg-python:ffmpeg-python库的简介.安装.使用方法之详细攻略 目录 ffmpeg-python库的简介 ffmpeg-python库的安装 ffmpeg-py ...

  8. Python之fastai:fastai库的简介、安装、使用方法之详细攻略

    Python之fastai:fastai库的简介.安装.使用方法之详细攻略 目录 fastai库的简介 fastai库的安装 fastai库的使用方法 1.计算机视觉分类

  9. Python之tushare:tushare库的简介、安装、使用方法之详细攻略

    Python之tushare:tushare库的简介.安装.使用方法之详细攻略 目录 tushare库的简介 tushare库的安装 tushare库的使用方法 1.基础用法 tushare库的简介 ...

最新文章

  1. why do not do consultant any more?
  2. power-bi_在Power BI中的VertiPaq内-压缩成功!
  3. java 事件类型_Spring框架中有哪些不同类型的事件?
  4. Flutter中Widget 、Element、RenderObject角色深入分析
  5. poj 3411 Paid Roads (dfs)
  6. 梅林安装opkg后安装iperf3_阳台到底有没有必要安装推拉门?利与弊告诉你,不要等安装后后悔...
  7. linux基本命令的使用原理,linux基本常用命令及其使用方法
  8. ajax的两个重要参数contentType 和dataType
  9. 计算机操作系统(第四版)课后习题答案(第一章)
  10. easydarwin ffmpeg
  11. 记小米公司的一次「测试开发工程师」面试
  12. spss进行多元线性回归并分析表格
  13. 浙江大学计算机系自主招生题目,浙江大学自主招生试题
  14. 小尺寸android 手机推荐,目前最值得买的4款小屏手机, 懂行的人才会买, 小屏爱好者福音!...
  15. 笔记本电脑键盘坏了,有密码应该如何打开?(生活小技巧)
  16. 如何防止破解?MCU加密技术揭秘
  17. /etc/passwd文件详解
  18. 智慧养殖远程管理监控方案
  19. 曾李青:早期创业公司九种死法
  20. Bypassing PatchGuard on Windows x64

热门文章

  1. linux用户态驱动--IOMMU(三)
  2. jeecg uedit 自定义图片上传路径
  3. 胡扯JS系列-匿名函数的自动运行
  4. RedisManager使用手册(六)-- 监控功能介绍
  5. Java-Shiro(三):Shiro与Spring MVC集成
  6. 【leetcode】581. Shortest Unsorted Continuous Subarray
  7. php7下安装event扩展
  8. centos7安装配置ELK(Elasticsearch+Logstash+Kibana)
  9. 研究人员首次实现人脑实时连接互联网,攻壳社会的前奏?
  10. 华三 交换 IRF V7