- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
金山逍遥网DIPS分布式图片处理平台
张宴
2009-10-28
构建DIPS分布式图片处理平台的背景
普通的WebServer+PHP+ImageMagick进
行图片生成、缩减图片、裁剪图片、加水印
等处理,消耗的CPU资源非常大,在高访问
量下,由于CPU处理丌过来,导致系统负载
急速上升,进而导致WebServer无法响应。
一些图片裁剪工作,可以在用户上传时,利
用Flash进行处理。但是,一些图片处理必
须在服务器端进行,例如游戏密保卡图片生
成、自劢生成缩略图、加水印等处理。
一些其他用途的服务器,有些属于磁盘存储
密集型、磁盘I/O读写密集型、内存使用密
集型,而CPU使用率却比较低。
构建分布式图片处理平台,可以在丌增加硬
件设备的条件下,将CPU使用率较低的服务
器充分利用起来,实现服务器的最大价值。
DIPS分布式图片处理平台的框架
基于开源的Gearman分布式计算框架(
/ )。
Gearman是如何工作的?
金山逍遥DIPS分布式图片处理平台的集群
分为四部分:
1、客户端Client (PHP+Gearman客户端扩展)
2、调度器(Gearman Job Server ):2台服务器,如果其中1台宕机服务丌受影响
3、图片处理节点进程Worker (集成Gearman的金山逍遥简化版PHP ):使用了29台
服务器的66颗(核)CPU来进行分布式图片处理。
4、控制器(控制Worker节点进程、更新Worker节点代码)。
金山逍遥DIPS分布式图片处理平台PHP客户端调用示例
以金山密保卡为例:
?php
$dips = new GearmanClient();
$dips-addServer(, 4730);
$dips-addServer(, 4730);
$data[pSN] = 1234567890;
$data[pData] =
61,61,58,00,25,08,73,03,52,53,34,84,03,81,52,17,96,30,57,23,5
5,08,03,84,08,47,27,02,68,17,77,68,96,86,88,21,08,14,64,39,55,
80,71,00,40,51,22,89,51,77,34,59,51,77,86,86,96,42,71,11,62,89
,63,35,07,55,71,94,03,80,74,68,93,11,67,67,44,42,87,68;
//分布式生成密保卡图片,并取回
$image = $dips-do(ecard, serialize($data));
//输出图片
echo $image;
?
金山逍遥DIPS分布式图片处理平台客户端调用速度
以金山密保卡为例(上页代码的返回结果如下):
生成每张密保卡,图片处理部分耗时在xxx毫秒级(0.1xx秒~0.5xx秒)。
使用分布式图片处理平台前后的WebServer系统负载对比
使用分布式图片处理平台之前(2009-10-27 14:30之前)的WebServer系统负载:
峰值负载高达150
使用分布式图片处理平台之后(2009-10-27 14:30之后)的WebServer系统负载:
峰值负载不到0.7
金山逍遥DIPS分布式图片处理平台Worker节点函数示例
以金山密保卡为例:
其他各类采用PHP+Imagick/GD库进行图片处理的函数可以快速迁移到DIPS平台
#!/usr/local/webserver/dips-worker/bin/dips
?php
//密保卡图片生成函数
function make_ecard_function ($job) {
$data = unserialize($job-workload());
$pSN = $data[pSN];
$pData =
文档评论(0)