Gearman是一个用来把工作委派给其他机器、分布式的调用更适合做某项工作的机器、并发的做某项工作在多个调用间做负载均衡、或用来在调用其它语言的函数的系统。
编译安装 gearmand
cd gearmand-1.1.12 [root@AY1403121111165237f2Z gearmand-1.1.12]# ls aclocal.m4 build-aux configure.ac gear_config.in libgearman-1.0 libhashkit-1.0 Makefile.am README tests AUTHORS ChangeLog COPYING gearmand libgearmancore libhostile Makefile.in rpm THANKS benchmark configmake.h docs HACKING libgearman-server libtest man scripts util bin configure examples libgearman libhashkit m4 NEWS support version.m4 [root@AY1403121111165237f2Z gearmand-1.1.12]# ./configure configure: error: could not find boost 错误解决 [root@AY1403121111165237f2Z gearmand-1.1.12]#yum install boost-devel* configure: error: could not find gperf 错误解决 [root@AY1403121111165237f2Z gearmand-1.1.12]#yum install gperf* configure: error: Unable to find libevent 错误解决 [root@AY1403121111165237f2Z gearmand-1.1.12]#yum install libevent-devel* configure: error: Unable to find libuuid 错误解决 [root@AY1403121111165237f2Z gearmand-1.1.12]#yum install libuuid-devel
上面错误的原因是编译器找不到 头文件
[root@AY1403121111165237f2Z gearmand-1.1.12]#make [root@AY1403121111165237f2Z gearmand-1.1.12]#make install 测试 [root@AY1403121111165237f2Z /]# gearman -w -f wc -- wc -l [root@AY1403121111165237f2Z /]# gearman -f wc < /etc/passwd运行过程
一个Gearman请求的处理过程涉及三个角色:Client -> Job -> Worker。
Client:请求的发起者,可以是 C,PHP,Perl,MySQL UDF 等等。
Job:请求的调度者,用来负责协调把 Client 发出的请求转发给合适的 Work。
Worker:请求的处理者,可以是 C,PHP,Perl 等等。
因为 Client,Worker 并不限制用一样的语言,所以有利于多语言多系统之间的集成。
我们可以通过增加更多的 Worker,可以很方便的实现应用程序的分布式负载均衡架构。
Gearman PHP扩展安装
[root@AY1403121111165237f2Z gearman-1.1.2]# /www/wdlinux/php/bin/phpize [root@AY1403121111165237f2Z gearman-1.1.2]# ./configure --with-php-config=/www/wdlinux/php/bin/php-config [root@AY1403121111165237f2Z gearman-1.1.2]# make [root@AY1403121111165237f2Z gearman-1.1.2]# make install
修改PHP的配置文件 重新启动 Apache
测试Gearman PHP扩展
work.php <?php $worker= new GearmanWorker(); $worker->addServer("127.0.0.1", 4730); $worker->addFunction("title","title_function"); while ($worker->work()); function title_function($job) { $str = $job->workload(); return strlen($str); } ?> ----------------------------------------------- client.php <?php $client= new GearmanClient(); $client->addServer("127.0.0.1", 4730); print $client->do("title","Linvo"); ?>
祝大家玩的开心
作者 范遥 [@buddy-L]
相关推荐
6. **启动与配置**:安装完成后,可以找到gearmand的服务脚本启动服务。在大多数Linux发行版中,你可以使用以下命令启动服务: ``` sudo systemctl start gearmand ``` 若要设置为开机启动,执行: ``` sudo ...
3. **配置脚本**:`configure`脚本是基于Autoconf的,用于检查系统环境并生成Makefile,以便在不同的操作系统上编译和安装Gearmand。 4. **Makefile.am**:这是Automake的配置文件,定义了编译规则和目标。 5. **...
3. **配置与编译**:进入解压后的源码目录,使用 `./configure` 命令进行配置,这一步会检查系统环境,确保所有依赖项都已满足。然后,通过 `make` 命令进行编译,最后使用 `sudo make install` 安装到系统目录。 4...
2. `INSTALL`: 提供编译和安装齿轮人的详细步骤,可能包括依赖库的安装、配置选项以及编译和安装命令。 3. `configure`: 自动化脚本,用于检测系统环境并生成合适的Makefile。 4. `Makefile.am`: Makefile模板,由`...
在RHEL5.7环境下安装和启动Gearmand的步骤相当详细,涉及到多个依赖库的安装和配置。 Gearmand是一款开源的、基于C++编写的任务队列服务,它允许应用程序异步处理工作负载,提高系统效率。以下是安装和启动Gearmand...
本篇文章将详细讲解如何在Linux环境中搭建Gearman,包括依赖库的安装和Gearman服务的配置。 首先,我们来看三个重要的依赖库: 1. **libevent-2.0.22-stable.tar.gz**: 这是libevent库的一个版本,它是一个事件...
4) 博客专栏地址(Linux常用软件安装与配置):http://blog.csdn.net/column/details/linuxsoftwareinstall.html(持续增加,关注请收藏)。 5)欢迎大家关注博客更多精彩的内容:http://blog.csdn.net/CleverCode。
通过以上知识点的介绍,我们了解了在PHP环境下如何安装和使用Gearman进行任务分发和异步处理任务。掌握了这些知识点后,开发者可以有效地利用Gearman解决Web应用中的长耗时任务处理问题,提高应用性能和用户体验。
4. **安装与配置**: 解压gearman-0.8.0.tgz后,通常会有一个名为`package.xml`的文件,这可能是用于构建或安装的配置文件,可能基于特定的构建系统如autotools或CMake。用户需要按照文档指示进行编译和安装,配置...
1. **安装与配置**:首先,你需要解压 `gearman-0.5.0.tgz` 文件,使用 `tar -zxvf gearman-0.5.0.tgz` 命令。然后,进入解压后的目录,通过 `./configure` 进行配置,`make` 编译,最后使用 `sudo make install` ...
这个资料主要包含两个核心部分:客户端库的安装和服务器的配置。 1. **客户端库安装**: 在 Ruby 开发环境中,为了利用 Gearman,你需要安装 `libgearman` 库,这是一个 C 语言编写的库,为多种编程语言提供 ...
在配置 Gearman 时,还需要确保已经安装了 MySQL 开发库(如 `mysql-devel`),因为这将使 Gearman 支持 MySQL 持久化。 通过上述步骤,Gearman 将能够将任务队列持久化到 MySQL 数据库中,从而提高了系统的容错性...
在Java环境中,我们可以利用Gearman库来构建分布式工作流程,实现任务的异步处理和并行执行。 首先,我们需要了解Gearman的基本概念。它主要由三部分组成:Job Server、Workers和Clients。Job Server是核心,负责...