依托现有基础组件的gearman部署方案

发布: 2012-12-27 09:49

gearman属于异步任务框架,目前实现了gearman框架相关封装管理工作,
*) 包括启动停止管理php程序编写的worker相关程序,
*) 包括启动信息管理gearmand job server的相关脚本程序
*) 一些动态检测gearman集群状态及部署状态的核心worker

本gearman部署方案及实现有以下功能,
*) 支持worker的集中部署方式,所有项目的worker部署在一个大型的gearman集群中,给gearman专用
*) 支持worker按项目分散式部署,如部署在各自项目的web服务器上
*) 支持混合式部署,各项目的worker可以部署在gearman专用的集群中,也可以部署在各项目的web前端
*) 支持任意worker节点上的worker崩溃自动化检测与重启动
*) 支持任意worker节点上的worker状态查询
*) 支持任意worker节点上的服务器即时状态信息查询
*) 支持任意节点的worker程序部署即时生效功能,即实现了worker代码的修改并部署后的自动检测与自动加载
*) 支持worker执行结果自动暂存储功能,有一定过期时间
*) 支持worker运行在按IP地址指定的某个指定节点上
*) 支持worker运行在按项目名称/域名指定的某个节点上
*) 支持worker能最大限度使用框架及项目已经实现功能,
项目相关的worker(框架action命令行模式)与项目代码一同部署
worker管理程序自动生效并能调用项目的worker

这个部署方案的需求,
*) gearmand (job server),必须是一个集群,否则无法做到统一管理,只能按多个gearmand/worker集群管理
*) worker节点服务器的php版本,php-5.3+

实现,
*) 启动停止脚本目前使用shell实现
*) worker的管理使用php脚本实现,常驻内存daemon进程
*) worker在注册时会给worker分配别名,所有的别名指向worker实现时的函数名,功能完全相同
实现指定worker运行在某个特定节点上,或者一批特定节点上
如,对于dummy worker,加载管理程序会为其注册以下几个别名,
I: [2012-12-17 17:10:46] W-3. Servering dummy ....
I: [2012-12-17 17:10:46] W-3. Servering gmworker_node_10.207.0.248_dummy ....
I: [2012-12-17 17:10:46] W-3. Servering gmworker_node_127.0.0.1_dummy ....
I: [2012-12-17 17:10:46] W-3. Servering project_test_com_cn_dummy ....
I: [2012-12-17 17:10:46] W-3. Servering gmworker_node_10.207.0.248_project_test_com_cn_dummy ....
I: [2012-12-17 17:10:46] W-3. Servering gmworker_node_127.0.0.1_project_test_com_cn_dummy



原文: http://qtchina.tk/?q=node/705

Powered by zexport