`
litaocheng
  • 浏览: 337121 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Gearman Erlang Client

阅读更多

Gearman


Gearman是一个通用的任务调度框架。
通过Gearman,多种编程语言,多台机器可以有机的结合,从而完成指定的任务。
其结构图如下:


  • 黄色区域表示由Gearman提供的设施
  • 蓝色区域表示由用户自己提供的部分

Gearman Job Server为核心的调度器,其管理Client(任务的调用者)和Worker(任务的执行者),负责任务的接收分发,以及将处理结果发送给Client。Job Server是任务的调度器,也是数据的中转者。

Gearman Client API及Gearman Worker API是由Gearman提供的各种语言版本的client library(如java, python, php, c等)。其遵循Gearman的交互协议,与Gearman Job Server(gearmand)进行通讯。Gearman官网中不提供Erlang Client,本文介绍Gearman Erlang Client的实现。

Gearman仅仅提供了一个框架,而具体的需要执行什么Job,Job如何处理,需要用户自己去定义(即上图中蓝色部分),用户的业务逻辑与Gearman Client API协作,从而完成某些功能和应用。

如何做到高可用?



 
worker和client都可以注册(register)到多个Job Server,当某个Job Server不可用时,可以尝试其它Server,避免的单点故障(SPF),从而提高可用性。

erl-gearman


erl-gearman 基于libgearman(Gearman提供的c client library),通过linked-in driver的方式实现。其参考了Erlang/erts inet_drv代码,通过erlang:port_control/3与driver进行交互。

目前erl-gearman仅仅支持Gearman Client API。

  • 大小: 24.8 KB
  • 大小: 6.4 KB
分享到:
评论

相关推荐

    Gearman java APIs和一个小Demo

    2. **Client**:客户端,用于提交任务到 Gearman 服务器,不等待结果返回。 3. **Job**:任务,是客户端提交给 Gearman 服务器的可执行单元,由一个函数名和数据组成。 4. **Server**:Gearman 服务器,负责调度任务...

    Gearman Worker实例 C++ vs2008

    你可以使用`gearman_client_do()`或`gearman_client_do_background()`函数来提交任务,前者是同步的,后者是异步的。 总的来说,这个实例展示了如何在Windows环境下,使用C++和VS2008创建一个Gearman Worker。理解...

    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手册chm

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

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

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

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

    Gearman工作流程中包含三个主要角色:Client、Job和Worker。 - Client:是发起请求的一方,负责向Job提交任务。 - Job:是任务的调度者,用于接收Client的请求并将任务分派给合适的Worker。 - Worker:是实际...

    gearman 文档

    1. **客户端(Client)**:负责发送任务请求到Gearman Server。 2. **Gearman Server**:作为中间层接收来自客户端的任务请求,并将其分发给可用的工作节点。 3. **工作节点(Worker)**:执行实际的任务处理,并将结果...

    Gearman环境搭建资料

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

    Laravel开发-laravel-gearman-rpc

    $client->addServer(config('services.gearman.default.host'), config('services.gearman.default.port')); $job = new GearmanJob('my_task'); $job->setUnique(md5(microtime(true))); $job->setData(json_...

    Laravel开发-php-gearman

    2. **Client**:客户端,向 Gearman 服务器提交任务请求。 3. **Server**:任务调度中心,存储任务队列,分配任务给 Workers。 ### 使用 PHP Gearman 在 Laravel 中 在 Laravel 中集成 Gearman,你可以创建自定义...

    Gearman C# API和示例

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

    GearMAN讲解及所带来的变革

    使用方法上,GearMAN通过定义Worker和Client的角色和职责来实现任务的分发与执行。同步调用会阻塞等待结果返回,异步调用则在任务分发后立即返回,由Job服务器根据负载情况来分配任务。此外,GearMAN还支持分优先级...

    gearman下载gearman下载

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

    java-gearman-service-0.6.6.jar

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

    Gearman中文手册最新完整版chm

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

    net_gearman-master.zip

    - **创建Gearman客户端**:通过实例化`Net_Gearman_Client`类,可以创建一个连接到Gearman服务器的客户端对象。 - **注册函数**:客户端可以注册函数,这使得服务器知道哪些任务可以被哪个函数处理。 - **提交任务**...

    gearman-mysql-udf-0.6.tar.gz

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

    gearman-0.5.0.tgz(在使用)

    5. **命令行工具**:Gearman 包含了一些命令行工具,如 `gearmand`(启动服务器)、`gearman-client`(测试客户端功能)、`gearman-worker`(启动工作者),以及 `gearman-admin`(管理服务器)等。 6. **任务模型*...

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

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

    java-gearman-service jar

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

Global site tag (gtag.js) - Google Analytics