`

Gearman

 
阅读更多

Gearman

求助编辑百科名片

Gearman是一个用来把工作委派给其他机器、分布式的调用更适合做某项工作的机器、并发的做某项工作在多个调用间做负载均衡、或用来在调用其它语言的函数的系统。

目录

Gearman 简介
Gearman运行过程
Gearman新版本介绍
安装 Gearman
展开

编辑本段Gearman 简介

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

编辑本段Gearman运行过程

一个Gearman请求的处理过程涉及三个角色:Client -> Job -> Worker。  Client:请求的发起者,可以是 C,PHP,Perl,MySQL UDF 等等。  Job:请求的调度者,用来负责协调把 Client 发出的请求转发给合适的 Work。  Worker:请求的处理者,可以是 C,PHP,Perl 等等。  因为 Client,Worker 并不限制用一样的语言,所以有利于多语言多系统之间的集成。  甚至我们通过增加更多的 Worker,可以很方便的实现应用程序的分布式负载均衡架构。

编辑本段Gearman新版本介绍

Gearman 1 月 16 日发布了 c 语言的 0.2 版本,gearman 提供了一个 work 传递其他机器,或者调用其他机器功能的框架,通过 gearman 你可以实现并行的工作,负载均衡处理,调用其他语言的函数。它可以应用在多种场合,从高可用性的 web 服务到数据库复制,换句话说,它是分布式处理的中枢神经。gearman 早期是 sixpart 实现的 perl 语言开发的版本,名字来源于“Manager”,这一框架只负责分发要做的工作,本身并不做任何实际的工作。(这点与 spread toolkit 相同 译者注)。

编辑本段安装 Gearman

安装 Gearman server and library

tar zxf gearmand-0.8.tar.gz[1]  cd gearmand-0.8  ./configure  make  make install

安装 Gearman PHP extension

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  $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 文件内容如下:  <?php  $client= new GearmanClient();  $client->addServer('127.0.0.1', 4730);  echo $client->do('reverse', 'Hello World!'), "\n";  ?>

运行 client

php client.php  输出:!dlroW olleH  出于方便的考虑,Worker,Client 使用的都是PHP,但这并不影响演示,实际应用中,你完全可以通过 Gearman 集成不同语言实现的 Worker,Client。或许此时你还想了解前面提到的负载均衡功能:很简单,只要增加多个 Worker 即可,你可以按照 worker.php 的样子多写几个类似的文件,并设置不同的返回值用以识别演示效果。然后依次启动这几个 Worker 文件,并多次使用 client.php 去请求,你就会发现 Job 会把 Client 请求转发给不同的 Worker。

命令行工具

如果你觉得安装 PHP 之类的东西太麻烦的话,你也可以仅仅通过命令行工具来体验 Gearman 的功能:  启动 Worker:gearman -w -f wc -- wc -l &  运行 Client:gearman -f wc < /etc/passwd  具体可以参考官方文档,还有一些不错的 PDF。
分享到:
评论

相关推荐

    Gearman环境搭建资料

    Gearman是一种分布式任务队列系统,它允许应用程序在不同的服务器之间分发工作负载,从而实现负载均衡和异步处理。本篇文章将详细讲解如何在Linux环境中搭建Gearman,包括依赖库的安装和Gearman服务的配置。 首先,...

    Gearman C# API和示例

    Gearman 是一个分布式任务队列系统,它允许应用程序在多台服务器之间分发工作负载,以提高处理效率和可扩展性。在这个“Gearman C# API和示例”项目中,我们将探讨如何使用C#语言与Gearman进行交互,以及如何在...

    php使用gearman进行任务分发操作实例详解

    1. Gearman的介绍和应用场景: Gearman是一个工作负载分发服务器和库,允许将工作分散到多个机器或者机器上的多个核心上进行异步处理。它在Web应用程序中处理耗时的后台任务时尤其有用,如文件上传、邮件发送、图片...

    GearMAN讲解及所带来的变革

    GearMAN是一个高效的分布式任务框架,最初设计用于解决Web2.0环境中图片处理等耗时任务的快速分配和执行问题。它的名字来源于“Generic Worker Manager”,意在成为一个通用的任务分发工具。GearMAN通过将任务分配给...

    Gearman java APIs和一个小Demo

    Gearman 是一个分布式任务队列系统,它允许应用程序在需要时分发工作负载,并在有可用资源时异步处理这些工作。在Java中,我们可以利用 Gearman 的客户端库来与 Gearman 服务器进行交互,执行分布式任务。本篇文章将...

    Gearman中文手册,Gearman中文详解,gearman手册chm

    Gearman中文手册,gearman手册chm,Gearman中文详解,分享gearman技术心得,主要是为了分享技术,所以不要大家的资源分。

    Gearman Worker实例 C++ vs2008

    Gearman是一个分布式任务队列系统,它允许应用程序将工作分发到多个服务器或进程,以实现负载均衡和异步处理。在本实例中,我们关注的是如何在C++环境中,利用Visual Studio 2008(VS2008)在Windows平台上创建一个...

    Laravel开发-php-gearman

    在 Laravel 中集成 Gearman,你可以创建自定义的 Job 类来封装需要异步处理的任务,然后使用 Gearman 客户端将这些任务发送到 Gearman 服务器。下面是一些关键步骤: #### 安装扩展 首先,你需要通过 Composer ...

    gearman-mysql-udf-0.6.tar.gz

    Gearman 是一个分布式任务队列系统,它允许应用程序在需要时分发工作并异步处理结果。这个名为 "gearman-mysql-udf-0.6.tar.gz" 的压缩包包含了一个 Gearman 与 MySQL 结合使用的用户定义函数(UDF)插件,版本为 ...

    Laravel开发-laravel-gearman-rpc

    **Laravel 开发与 Gearman RPC 整合详解** 在现代Web开发中,异步任务处理和分布式计算已经成为提升系统性能的关键技术。Laravel作为PHP的流行框架,提供了丰富的工具来支持这类需求。本篇文章将深入探讨如何在...

    java-gearman-service-0.6.6.zip

    java-gearman-service-0.6.6.zip 包,gearman分为3部分,client - server - worker,创建 java 版本的client和worker部分。 其实在gearman中,client和worker的编写不复杂,但是不同厂商提供的API是不大相同的,本...

    gearman 文档

    ### Gearman文档与集群计算框架的关键知识点 #### 一、Gearman概述 **Gearman**是一种分布式任务调度框架,主要用于跨机器或者同一机器上的不同进程之间分发任务。它允许开发者将任务分解并分配给一组工作节点...

    Gearman中文手册最新完整版chm

    Gearman中文手册,gearman手册chm,Gearman中文详解,分享gearman技术心得,主要是为了分享技术,所以不要大家的资源分。

    gearman下载gearman下载

    Gearman是一款开源的分布式任务队列系统,它允许应用程序在多台机器上分发工作负载,从而实现异步处理和负载均衡。这个系统的重点在于解耦任务的发起者和执行者,使得系统能够灵活地扩展并提高处理能力。在本讨论中...

    java-gearman-service(gearman-java-service)

    java实现gearman的job实现的jar包,包括gearman server,client和work客户端API

    Gearman安装可能涉及到的安装包

    该资源包括安装Gearman时可能涉及到的软件包 具体包括gearmand、gearman、php、gperf、libevent

    gearman安装包 rpm

    安装gearman 如果没有mysql客户端,需要安装mysql客户端 yum install -y libevent-devel 上传gearman.zip,解压unzip gearman.zip rpm -ivh uuid-1.5.1-3.el5.x86_64.rpm rpm -ivh libgearman-1.1.8-2.el5.x86_64...

    java-gearman-service jar

    gearman的java库有两个,一个是gearman service ,一个是gearman java,相比来说service版本更好用一些,并且网上的教程一般是用的这个版本。因此我打好了gearman service的包提供给需要的开发者使用。

    gearman-1.1.2

    1)软件资源列表:《gearmand-1.1.12.tar.gz》,《gearman-1.1.2.tgz》。 2)安装操作系统环境:CentOS-6.5,(其它linux操作系统请自行尝试)。 3)本软件安装步骤详解:...

    java-gearman-service-0.6.6.jar

    java实现gearman的job实现的jar包,包括gearman server,client和work客户端API

Global site tag (gtag.js) - Google Analytics