双十一项目总结
1.数据的采集。
在爬虫机器上通过logstash采集汇总到kafka队列里面。
2.数据的存储。
从kafka中读取数据到本地磁盘。通过data_pump多进程方式加快采集速度,进程数由1增加到12时,存储速度基本线性增长,勉强跟上数据收集的速度;
为了减少积压,还要继续增大进程数。进程数增加到24时,数据的消耗速度不在增长,经过评估云盘的性能,发现磁盘的未到瓶颈,怀疑是购买的阿里云kafka的性能限制,在升级了kafka配置后,速度明显增长。
3.数据的传输。
通过rsync工具每5min开启一次同步,通过进程锁保证最多只有一个进程在同步。flock命令。
flock -xn ${LOCK_FILE}/rsync.lock -c "rsync -auv --progress -e '${ID_RSA}' '${SOURCE}' '${LOCAL}'"
4.数据的入库。
data_pump实现了ES.writer的批量入库功能。可以通过多台机器多进程入库,单台机器(4核)机性能测试为3万条每分钟,16核心机器为10多万条每分钟。
各个环节的单元测试没有问题后 进行系统的测试:
在经过一轮的数据爬取后,预估淘宝天猫爬虫全开状态为的平均每一秒数据大小7M/S,在采集、 存储、传输、入库的性能测试后,发现数据传输环节是瓶颈,把百度云和阿里云2边的带宽同时增加100M,传输的平均性能是10M/s。这样就保障了各个环节的数据处理能力最少为10M/S, 可以满足爬虫的7M/S的数据。