Gearman 学习

Gearman 是什么?

    Gearman 是一个分布式的任务分发框架。

    Gearman 用来把请求委派给机器,提供通用的程序框架来将任务分发在机器运算。同时具备并行工作能力、负载均衡处理的能力,以及跨语言通信能力。

Client 的工作原理

Gearman 学习

主要分成三个部分Client、Job、Worker:

client:负责建立一个工作,发送请求给Job Server,而Job Server 会去找合适的 Worker 去转发工作。

Job Server:了解Client 端的请求,并查看哪个机器可以处理这项请求,在系统里它通常是个Daemon。

Worker:Worker 通过Job Server 的分派,开始执行Client 端的工作。

关于Message Queue

  • 执行 Message Queue 服务的 Job Server 可以是多台服务器组成,也就是分布式架构,在 Job Server 上执行 Worker 程序。

  • 这些 Worker 程序会一直循环地等候,直到 Job Server 呼叫它执行工作。

  • Client 端发送出请求之后,会将需要的资料及动作记录在 Job Server 上,这时 Job Server 会查看是否有空闲并符合需求的 Worker。

  • 在 Worker 结束工作后,会发送通知给 Job Server ,这时 Job Server 就会视状况把结果回传给 Client。

  • Client 端不需等候需求的执行结果,可以直接继续执行其他动作。


Job Server 负载方式

  • 当 Client 可能同时发出多个请求给 Job Server,由 Message Queue 接手进行处理。

  • 而 Job Server 开始处理多个请求,若其中一个发生问题,可以 Failover 到其他的机器。

  • 同时,Worker 会将多个请求一起进行运算,再看是同步或异步模式,回传结果给 Client。

同步 (Synchronous)

  • 同步(Synchronous) 是指 Client 将请求 (Application) 丢给 Gearmand。

  • 由 Gearmand 分派 Job 给各 Worker 去处理。

  • 并同步 Response 回传给 Gearmand 告诉 Client 现在进度。

异步 (Asynchronous)

  • 异步 (Asynchronous) 是指 Client 将请求 (Application) 丢给 Gearmand。

  • 由 Gearmand 分派 Job 给各 Worker 去处理。

  • Worker 处理完毕后,才会将结果回传给 Gearmand 告诉 Client 现在进度。


未完待续......

你可能感兴趣的:(Gearman 学习)