Gearman分布式任务处理系统
Gearman分布式任务处理系统
整理总结Gearman在系统架构中的应用
笑天居士
天下风云出我辈,一入江湖岁月催。皇图覇业谈笑中,不胜人生一场醉。
展开
-
用HTTP方式调用gearman任务处理
应用场景:开启gearman http监听功能,让前端以web api方式调用gearman job起用方式:在gearmand的起动参数中加上:/usr/local/gearman/sbin/gearmand \-l /usr/local/gearman/log/trace.log \--verbose INFO -p 4730 -u root -d -t 4 \--http-port=8080 \-r http--原创 2014-07-24 13:10:34 · 3027 阅读 · 0 评论 -
利用Gearman实现并发查询(Multi-Query)
这个例子是想从数据库查询出几个结果集,一般的做法是,一个接一个的发送查询,然后汇总结果进行输出。下面我们利用Gearman的gearman_client_run_tasks实现并发的查询,gearman_client_run_tasks接口可以一次性的提交多个任务,然后在callback函数中异步的处理结果。原创 2014-05-27 09:12:30 · 2396 阅读 · 0 评论 -
用Gearman做队列来实现消息推送
前面有一篇文章,是Nginx+Lua来实现推送的方式,这里我们换一种作法,用Nginx+Gearman作队列来实现。此方案的主要思路是这样的:客户端不会频繁的轮询服务端,而是对服务端发起一个长连接,服务端通过阻塞方式读取Gearman队列数据,一旦发现新数据便给客户端发出响应,这次交互便结束了。客户端处理好新数据后再重新发起一个长连接,如此周而复始。MySQL安装gearm原创 2013-12-03 16:31:30 · 4619 阅读 · 0 评论 -
Gearman分布式任务处理系统(十)后记(持续更新)
整理中。。。原创 2013-11-15 14:06:13 · 3324 阅读 · 0 评论 -
Gearman分布式任务处理系统(九)我的架构
Gearman分布式处理系统(九)我的架构原创 2013-11-15 14:04:47 · 3342 阅读 · 0 评论 -
Gearman分布式任务处理系统(八)开发讲解
这篇重点介绍C-Lib库及client和worker的开发,以0.14版libgearman for C来讲解Client APIclient初始化&析构gearman_client_st *gearman_client_create(gearman_client_st *client)void gearman_client_free(gearman_client_st原创 2013-11-15 14:03:53 · 6155 阅读 · 0 评论 -
Gearman分布式任务处理系统(七)问题研究与性能优化
Gearman工作流程细解一次正常的Gearman任务执行流程如上图所示:worker向Gearman Server注册自身可以执行的功能 worker尝试获取一个任务 server通告worker暂无任务 worker通告server:“我先睡会,有活干时再叫醒我” client向server发起任务请求 server唤醒可以完成这项工作的worker(可能会唤醒多个原创 2013-11-15 13:12:18 · 7760 阅读 · 0 评论 -
Gearman分布式任务处理系统(六)跨多种环境部署
跨多种环境部署 Gearman现代计算环境最大的挑战之一就是工作分布和计算资源的有效利用。目前的一般趋势是,便宜且轻松地安装一台强大的机器来执行比较直观和简单的任务,但是这可能得不到最佳的总体性能和机器的最佳利用。相反,很多应用程序现在发现自己需要执行一些相当小的操作,但是可能要执行成千上万次,不需要一台强大的机器。随着计算场(farm)的增大,有时候需要跨所有机器同时执行一个动作或操原创 2013-11-15 09:33:07 · 2943 阅读 · 0 评论 -
Gearman分布式任务处理系统(五)版本介绍、安装方法和使用说明
稍候更新稍候更新原创 2013-11-14 23:27:48 · 6387 阅读 · 0 评论 -
Gearman分布式任务处理系统(四)Gearman协议
Gearman协议工作于TCP之上,默认使用4730端口。它之前使用端口7003,但与AFS的端口范围冲突,4730端口是由IANA分配的。client和jobserver间,以及worker与jobserver间存在通信交互,这两种情况下的通信协议都是由请求包和响应包组成。所有发送到jobserver的包都认为是请求,所有由jobserver发送的包都认为是响应。一种简单的配置例子是这样的:转载 2013-11-14 23:23:04 · 4173 阅读 · 0 评论 -
Gearman分布式任务处理系统(三)libevent介绍
为确保具备对海量任务调度的支持能力,Gearman毫无悬念的选择libevent作为网络操作支撑库。libevent是一个事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制。著名分布式缓存软件memcached也是libevent based,而且libevent在使用上可以做到跨平台,而且根据原创 2013-11-14 23:13:34 · 3836 阅读 · 0 评论 -
Gearman分布式任务处理系统(二)扩展应用
对于绝大多数发展中等的web 2.0网站来说,LAMP结构已经不能满足现在的需要了,新的架构组合是GLAMMP,G=Gearman(分布式远程过程处理),M=Memcached(高性能的分布式的内存对象缓存系统)。Gearman的高级特性在一个 Web 应用程序内可能有许多地方都会用到 Gearman。可以导入大量数据、发送许多电子邮件、编码视频文件、挖据数据并构建一个中央日志设施 — 所原创 2013-11-14 23:03:59 · 7046 阅读 · 1 评论 -
Gearman分布式任务处理系统(一)基本介绍
Gearman介绍Gearman是一个用来把工作委派给其他机器、分布式的调用更适合做某项工作的机器、并发的做某项工作在多个调用间做负载均衡、或用来在调用其它语言的函数的系统。通常,多语言多系统之间的集成是个大问题,一般来说,人们多半会采用 WebService 的方式来处理此类集成问题,但不管采用何种风格的WebService,如 RPC 风格,或者 REST 风格,其本身都有一定的复原创 2013-11-14 21:58:19 · 15844 阅读 · 0 评论