最新消息:觉得本站不错的话 记得收藏哦 博客内某些功能仅供测试 讨论群:135931704 快养不起小站了 各位有闲钱就打赏下把 My Email weicots#gmail.com Please replace # with @

PHP WES 可扩展 任务系统 (分布采集系统 + 采集器集群(单机百万级任务)+分布式文件系统)

ERP系统开发 ajiang-tuzi 2452浏览

分布式 和集群概念
分布式:不同的业务模块部署在不同的服务器上或者同一个业务模块分拆多个子业务,部署在不同的服务器上,解决高并发的问题
集群:同一个业务部署在多台机器上,提高系统可用性

第一代系统 和第二代系统的性能比交

涉及的工具 以及脚本
linux shell php redis mysq win shell 。。。

第一代系统

单机 多线程 43秒下载 3949 张图片 大约 90张/s 图片
单机 单线程 下载文件 带POST校验 大约 1个文件/2s 12万个 文件下了3天 平均文件大小 600K-2M
单机 单线程 普通页面采集 大约 3个页面/1s 带过滤 2万个页面还没 一个半小时就搞定了
单机 单线程 过亚马逊 不换ip 大约 1个产品/5s 8个小时也才 5000 多个个产品 还遇到一堆反采集规则 特别是人机验证

第二代系统
基本单机节点 采集亚马逊[两个任务 各使用 8进程] 产品:76万页/天 图片:50万张/天

快速采集器 Win-WS快速采集模块 实测数据
亚马逊标准产品页 [8个进程 X2线程] 8页/s 530页/分钟 3.18万页/小时 76万页/天(取决于代理)
亚马逊产品高清图 [8 进程] 4-6张/s 40万 -60万/每天 (取决于宽带)[为什么图片进程这么少纳 因为产品变体多]
普通国内采集 [32进程x2线程] 90页/s 21万/每小时
普通国内图片采集 [1进程xN线程] 90张/s
分布式 同步工具 速度非常快 没测过 网卡貌似能跑满

Win 下实测采集进程可以稳定在132进程 左右
并行任务[进程+线程] 可以稳定在 300 左右

通用产品采集器 实测数据
第三方亚马逊采集器 无代理 手动验证码 多进程 10-12万/天

每天的数据量 200-100 万

P9OP[R_7ORM50F44]97216N

Win-WS快速采集模块 0.5的版本

使用 php scrip.php 的方法 缺点就是会跑出 大量不必要小黑窗

流程设计图 0.5 版本 结构细化
WeiCot-Sp(WS)
程序执行效果图

05V

Win-WS快速采集模块 1.7的版本

新增
支持 计划任务
支持自动批量导入 百万级 数据
支持自动运行
支持自动维持进程
自动切分超大任务
自动均衡负载
支持任务转发
支持自动同步文件 到主文件服务器
支持快速同步
支持离线任务
单机稳定并行任务进程增加到 130 个
支持多线程采集
支持自动切分进程下的任务切分
支持投递任务块到线程
单机稳定进程+线程 并发任务300个
新增3种文件同步模式
20多G 21万张图片由原来的 5个小时 缩减到几分钟
……
最大的变化是 小黑窗没有了 支持更多的进程 和消耗更少的系统资源 以及最大化发挥单机性能 以及网络性能

tpf

Win-WS快速采集 架构 整套系统 由php +redis+linux shell+win shell+mysql ..构建
weicot_spider

未来架构(貌似现有架构 已经大大超越需求了)

大数据架构
hadoop 分布式文件系统
mongodb 分布式文本数据储存数据库
go 多进程 网络通信
php 快速开发
mysql 传统数据库
Hbase 分布式列存储系统;
redis 缓存
elasticsearch 弹性搜索
nginx 负载均衡

hadoop + mongodb+ mysql + redis+go+elasticsearch+nginx +php

第三代系统

1.对数据库实行主从同步 以及读写分离
2.分散主服务器压力
link

相关知识点

PHPUnit 整合 Selenium2 + PhantomJS
Jun 09 PHP CLI模式下的多进程应用Linux进程间通信 – 信号(signal)机制
Sharding(切片)技术(解决数据库分库一致性问题)
IO – 同步,异步,阻塞,非阻塞 (亡羊补牢篇)
小时到分钟 – 一步步优化巨量关键词的匹配
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
韩天峰(Rango)的博客

…… 太多了 有什么不懂的可以问我 我就不一一列出了

转载请注明:(●--●) Hello.My Weicot » PHP WES 可扩展 任务系统 (分布采集系统 + 采集器集群(单机百万级任务)+分布式文件系统)