对于绝大多数发展中等的web 2.0网站来说,LAMP结构已经不能满足现在的需要了,新的架构组合是GLAMMP,G=Gearman(分布式远程过程处理),M=Memcached(高性能的分布式的内存对象缓存系统)。
简单的说Gearman是PHP实现异步处理利器,当然不仅仅是PHP实现异步处理的手段。
Gearman简介
Gearman是 Brad Fitzpatrick 的一个作品,用 Perl 写的任务调度程序,提供一个服务器端和多种语言的客户端接口,包括 C/Perl/Python/Ruby 等,在 client library 本身就支持一定程度的高可靠度。
Gearman系统用来把工作委派给其他机器,分布式的调用更适合做某项工作的机器,并发的做某项工作,在多个调用间做负载均衡,或用来在调用其它语言的函数。
Gearman的高级特性
在一个 Web 应用程序内可能有许多地方都会用到 Gearman。可以导入大量数据、发送许多电子邮件、编码视频文件、挖据数据并构建一个中央日志设施 — 所有这些均不会影响站点的体验和响应性。可以并行地处理数据。而且,由于 Gearman 协议是独立于语言和平台的,所以您可以在解决方案中混合编程语言。比如,可以用 PHP 编写一个 producer,用 C、Ruby 或其他任何支持 Gearman 库的语言编写 worker。
一个连接客户机和 worker 的 Gearman 网络实际上可以使用任何您能想象得到的结构。很多配置能够运行多个代理并将 worker 分配到许多机器上。负载均衡是隐式的:每个可操作的可用 worker(可能是每个 worker 主机具有多个 worker)从队列中拉出作业。一个作业能够同步或异步运行并具有优先级。
Gearman 的最新版本已经将系统特性扩展到了包含持久的作业队列和用一个新协议来通过 HTTP 提交工作请求。对于前者,Gearman 工作队列保存在内存并在一个关系型数据库内存有备份。这样一来,如果 Gearman 守护程序故障,它就可以在重启后重新创建这个工作队列。另一个最新的改良通过一个 memcached 集群增加队列持久性。memcached 存储也依赖于内存,但被分散于几个机器以避免单点故障。
Gearman 是一个刚刚起步却很有实力的工作分发系统。据 Gearman 的作者 Eric Day 介绍,Yahoo! 在 60 或更多的服务器上使用 Gearman 每天处理 600 万个作业。新闻聚合器 Digg 也已构建了一个相同规模的 Gearman 网络,每天可处理 400,000 个作业。Gearman 的一个出色例子可以在 Narada 这个开源搜索引擎(参见 参考资料)中找到。
Gearman 的未来版本将收集并报告统计数据、提供高级监视和缓存作业结果等。为了跟踪这个 Gearman 项目,可以订阅它的 Google 组,或访问 Freenode 上它的 IRC 频道 #gearman。
Gearman都能用来干什么
Gearman 可以用在各个方面,最简单就是在不同语言之间架起一座桥梁。比如你可能希望你的php程序调用一个c 函数,那么用gearman就可以实现了,当然了实际你可以通过写一个php扩展来实现同样的工作,但是比如你要php调用java,perl,或者python那么,Gearman就非常棒了。
Gearman另一个应用方面是负载分担,你可以将worker放在不同的服务器(或者一些列服务器)上,比如你的php程序需要图片转换,但是不希望本地服务器有太多的这样图片转换的进程,那么你可以建立一系列服务器,在上面加载worker处理图片转换。这样你的web服务器将不受图片转换的影响,同时你得到了负载均衡的功能,因为job server会在请求到来的时候,将这个请求发给空闲的worker.同样对于多核的服务器,你可以在同一机器上创建同样数目的worker. 你可能担心,job server处于一个中心,那么这会是一个单点的瓶颈,如果死了,会怎么样?对于这样的情况,你可以运行多个job server。这样如果一个job server down了,client和worker会自动迁移到另一台job server上。
Tag: Gearman, 异步

kimi at 2010-04-08 09:39:59 in Linux

转载于:https://blog.51cto.com/ppp1013/326075

Gearman 异步处理委派任务相关推荐

  1. gearman服务连接php,Gearman异步服务安装使用

    一.简介 gearman异步处理服务. 二. 安装 1,安装管理软件仓库,添加gearman服务地址源 sudo apt-get install software-properties-common ...

  2. 利用Gearman,搭建异步分布式计算平台

    Gearman的介绍 主页在http://gearman.org/index.php, 它的主要优点有:1. 实现了异步计算.可以将比较耗时的计算分配到分布式计算集群来减少站点服务器的压力和用户的等待 ...

  3. PhalApi+Gearman,接口MQ异步队列任务的完整开发教程

    MQ异步队列 在API接口同步请求过程中,不适合处理耗时过长.或者一直轮询的工作.此时,可以结合MQ异步队列任务进行后台处理. MQ异步队列服务 - Gearman 关于异步队列服务有很多种,这里Ph ...

  4. gearman mysql 扩展_Gearman的安装和使用

    Gearman 是一个分布式任务分发系统,通过程序调用(API,跨语言)分布式地把工作委派给更适合做某项工作的机器,且这些机器可以以并发的.负载均衡的形式来共同完成某项工作.当计算密集型场景时,适合在 ...

  5. Gearman的安装和使用

    首发于 樊浩柏科学院 Gearman 是一个分布式任务分发系统,通过程序调用(API,跨语言)分布式地把工作委派给更适合做某项工作的机器,且这些机器可以以并发的.负载均衡的形式来共同完成某项工作.当计 ...

  6. 基于阿里云搭建的适合初创企业的轻量级架构--架构总结

    ----基于阿里云搭建的适合初创企业的轻量级架构 前言 在项目的初期往往存在很多变数,业务逻辑时刻在变,而且还要保证快速及时,所以,一个灵活多变.快速部署.持续集成并可以适应多种情况的架构便显得尤为重 ...

  7. 如何基于阿里云搭建适合初创企业的轻量级架构?

    ----基于阿里云搭建的适合初创企业的轻量级架构 前言 在项目的初期往往存在很多变数,业务逻辑时刻在变,而且还要保证快速及时,所以,一个灵活多变.快速部署.持续集成并可以适应多种情况的架构便显得尤为重 ...

  8. 通用图床服务架构解析(百万级回源/天)

    Hulk 图床是支持 360 公司绝大部分业务的图片服务,支持多种图片处理功能,如:裁剪.压缩.滤镜.pHash 计算.人脸识别.格式转换.gif 首帧提取--等等,支持的业务线包括:搜索.图搜.新闻 ...

  9. Gearman + Nodejs + MySQL UDF异步实现 MySQL 到 Redis 的数据同步

    目录 1, 环境 2, Redis简介 3, Gearman简介 4, MySQL - Redis配合使用方案 4, 软件安装 5, MySQL UDF + Trigger同步数据到Gearman 6 ...

最新文章

  1. 树莓派文件服务器nas,树莓派搭建NAS服务器
  2. ASP.NetViewState的实现方案
  3. Appcelerator Titanium 3.x Win7 64位平台安装步骤
  4. 绕过html标签,巧妙绕过WAF的XSS技巧
  5. 华中科技大学计算机学院考研大纲,2021华中科技大学考研大纲参考书目汇总
  6. c++ 命名空间的using声明
  7. USACO-Section1.3 Transformations (矩阵旋转匹配问题)
  8. mysql linux设置密码_Linux下第一次使用MySQL数据库,设置密码
  9. mysql多线程复制binlog_MySQL 不同复制模式下,如何忽略binlog事件
  10. 推荐一款非常好用的截图工具 - SETUNA2,【订】一下就解决了你做数据对照的麻烦
  11. Creator开源游戏、插件、教程、视频汇总
  12. Android WallpaperManager 壁纸分析
  13. 描述配置文件( .mobileconfig)
  14. 学拳录 23退步压肘
  15. w7计算机防火墙无法更改,win7系统提示防火墙无法更改某些设置错误代码0x8007437的原因及四种解决方法...
  16. 我这样写python代码表白泡到了我的女神师姐
  17. AcWing 3531. 哈夫曼树(哈夫曼树)
  18. 好车主互助|中国互联网变革史:工具类互联网企业的跌宕起伏
  19. kindle版java核心_深入理解java 7 核心技术与最佳实践-成富[6寸pdf mobi epub kindle版].pdf...
  20. 分享几个快速加微信粉丝的方法

热门文章

  1. 2008 r2彻底删除 server sql_mysql添加列、删除列,创建主键、备份等常用操作总结...
  2. 误删mysql数据库密码后,如何恢复密码
  3. Apollo基础设置
  4. MySQL非等值连接
  5. RabbitMQ快速入门--消息模型介绍
  6. 简单异常处理器SimpleMappingExceptionResolver
  7. ApplicationContext应用上下文获取方式
  8. maven工程的标准目录结构
  9. Oracle数据库管理
  10. 千鸟弹幕机器人_千鸟熊猫TV直播弹幕机器人软件