Gearman 系统用来把工作委派给其他机器,分布式的调用更适合做某项工作的机器,并发的做某项工作,在多个调用间做">负载均衡,或用来在调用其它语言的函数。
通常,多语言多系统之间的集成是个大问题,一般来说,人们多半会采用 WebService 的方式来处理此类集成问题,但不管采用何种风格的 WebService,如 RPC 风格,或者 REST 风格,其本身都有一定的复杂性。相比之下,Gearman 也能实现类似的作用,而且更简单易用。一个Gearman请求的处理过程涉及三个角色:Client -> Job -> Worker。
Client:请求的发起者,可以是 C,PHP,Perl,MySQL UDF 等等。
Job:请求的调度者,用来负责协调把 Client 发出的请求转发给合适的 Work。
Worker:请求的处理者,可以是 C,PHP,Perl 等等。
因为 Client,Worker 并不限制用一样的语言,所以有利于多语言多系统之间的集成。甚至我们通过增加更多的 Worker,可以很方便的实现应用程序的分布式负载均衡架构。
Gearmand 0.23更新日志:
* Defined workers can now return GEARMAN_SHUTDOWN.
* Benchmark worker can now be told to shutdown.
* Allocator code has been cleaned up (gearman_allocator_t).
* Added "workers" option to gearadmin
* Workers will now default to -1 as timeout (lowers CPU on gearmand server for non-active workers).
* SO_KEEPALIVE is now enabled on client/worker connections.
* By default, workers now grab the unique value of the job.
下载地址:http://launchpad.net/gearmand/trunk/0.23/+download/gearmand-0.23.tar.gz