点击上方“中兴开发者社区”,关注我们
每天读一篇一线开发者原创好文
DevOps微课系列旨在帮助用户学习DevOps实践。
Gearman简介
Gearman是一个通用的应用程序框架,用来在机器或进程之间分发任务。它支持并发任务执行,负载均衡处理,和多语言系统集成。Gearman能够应用的领域非常广泛,比如:高可用的网站,数据库复制事件的传输等。换句话说,它是一个强健的分布式通信处理系统,将合适的任务分发到多台计算机上,以便快速完成大型任务。
官网列举的Gearman优点:
① 开源:遵循BSD开源规范
② 多语言支持:可作为多语言通信的接口
③ 灵活:不必遵循任何特定的设计模式
④ 迅猛:协议和接口简单,用C/C++实现
⑤ 易用性:又快又轻量
⑥ 通信消息大小无限:单个通信信息最大达4G,支持分片
1.Gearman构成
Gearman的请求处理过程涉及三个角色:Client -----> Job Server -----> Worker。
① Client :请求的发起者,负责创建任务并将其发送至Job Server
② Job Server :请求的调度者,负责协调把Client发出的请求转发给合适的Worker
③ Worker :请求的处理者,负责处理任务并返回处理结果
如上图所示,Client API,Job Server,Worker API都是Gearman本身提供的,并且Client API和Worker API都很丰富,应用程序只需要实现Client和Worker API就可以利用Gearman强大的任务分发功能。
2.Gearman架构图
Gearman典型的部署架构:
如下图,Jenkins Gearman Plugin会为每一个可执行任务的Jenkins子节点创建一个Worker,在Gearman Server有任务分发需求时就会向Worker分发任务,从而驱动jenkins 子节点执行任务。