gearman

来源:互联网 发布:淘宝怎样才能前几名 编辑:程序博客网 时间:2024/05/31 13:14

Gearman的程序架构

Gearman学习笔记(架构、特点、案例)

蓝色部分是我们的应用程序部分,黄色部分是Gearman框架提供的部分。

 

Gearman集群的架构

Gearman学习笔记(架构、特点、案例)

 

Gearman的典型工作流程

1.         Server端启动,初始化(分配线程池等),等待连接。

2.         Worker端启动,连接Server,注册Worker可以胜任的工作。(即向Server端发送CAN_DO信号。)

3.         Client端启动,向Server提交作业。

4.         Server端将作业分配给Worker执行。

 

Server如何给Worker分配任务?

Worker每一段时间都会向Server发送获取作业的请求,另外,当Server端接收到一个新的作业,也会通知所有的WorkerWorker获取作业采用“先到先得”的方式。作业分成高、中、低三个等级,分别被放在三个不同的队列里面(java中这个队列用LinkedBlockingDeque来实现),只有当高等级的作业被处理完后才会处理中级的,只有中级的作业被处理完后,才会处理低级的。

 

Gearman负载均衡

Gearman本身不带有任何负载均衡的功能,只能依靠自己实现。比方说通过把一些耗时的任务发给指定的一些Job Server来实现。

 

哪些公司在使用Gearman

LiveJournalLiveJournal是一个综合型SNS交友网站,有论坛,博客等功能。这是最早使用Gearman的公司,LiveJournal使用Gearman来做调整照片大小的操作。

InstagramDiggYahooMogileFS等等。

原创粉丝点击