之前我们已经介绍过了Scrapy Cluster中有三大组件,Kafka,Redis和Scrapy spider。Kafka是一种高吞吐量的分布式发布订阅消息系统。每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。如果使用默认的配置,在Scrapy Cluster中Kafka有3个基本的topic:
- demo.incoming
- demo.crawled_firehose
- demo.outbound_firehose
面向金融、游戏和数据的自动化脚本工具集合
之前我们已经介绍过了Scrapy Cluster中有三大组件,Kafka,Redis和Scrapy spider。Kafka是一种高吞吐量的分布式发布订阅消息系统。每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。如果使用默认的配置,在Scrapy Cluster中Kafka有3个基本的topic:
PyCharm是比较流行的Python开发集成环境。功能强大而且非常易用。然而,我在实际工作中发现,很多朋友还不会使用PyCharm的调试功能和断点单步调试。如果说简单Python脚本只要写几个print语句就足够了,那么在开发Scrapy Cluster的爬虫过程中,善用PyCharm的调试功能和断点单步调试就真的可以事半功倍了。比方说,最近正在研究Scrapy Cluster源码的运行机制。在理解其机制的过程中必不可少需要设断点调试代码,而PyCharm作为强大的Python IDE在调试、Project管理中提供了许多方便,因此打算写此文档来记录在Pycharm中调试Scrapy Cluster爬虫的学习过程和一些坑。
Read more
相对于Scrapy框架,增加了Kafka和Redis模块的Scrapy Cluster要复杂的多。因此要搞清楚各大模块之间是如何工作的,就至关重要了。在Scrapy Cluster框架中,有三大系统模块:Kafka,Redis,Scrapy Spider。其中Kafka和Redis之间的消息传递是通过kafka_monitor.py组建实现的(单向连接)。Scrapy Spider和Redis的连接是通过distributed_scheduler.py实现的(双向连接)。Scrapy Spider与Kafka之间的连接是通过pipelines.py里面的KafkaPipeline类实现的(单向连接)。
Read more
前些天写了一片关于阿里云服务器的文章,阿里云网站应用云服务器选购指南,主要是比较不同阿里云服务器之间的性能和价格。后来就有朋友问,自己想建一个个人主页,主要是做个人展示用,比如个人简历。因此询问是否可以提供更多关于“共享虚拟主机普惠版”的信息和购买链接。其实我个人建议,如果不是要提供特别复杂的功能或者服务,只是要提供一个个人展示的平台的话,完全可以使用简单的Web服务,例如使用Github Pages服务。
Read more
之前碰到一个MYSQL查询速度慢的问题,在一个4G大小的表,约835万条记录中,按照时间统计总数。后来通过使用Order By语句把查询速度提升了3倍。原帖:使用Order By语句将MySQL查询速度提高3倍。如原文所述,最后的查询结果在7秒左右。然而对于一条MYSQL语句运行7秒,这样的速度完全是不能接受的。最后为了提升速度,还是决定通过把查询字段加到索引里。
Read more
今天收到阿里云发来的服务器即将过期,催促续费的邮件。突然发现这是一个废弃了很久的阿里云虚拟主机。产品名称为“共享虚拟主机普惠版”,价格的确很普惠,只要50元一年。当然亲民的价格背后是鸡肋的服务和功能。真的是食之无味,弃之可惜的感觉。
Read more
最近正在接触大数据和人工智能方面的工作。为了满足数据量需求,需要开发一个爬虫系统来收集数据。在网上查了很多资料,发现大家用得比较多包括Scrapy, Scrapy Redis和Scrapy Cluster。前两个项目用得人比较多,也非常容易搭建。相比之下,Scrapy Cluster的相关文档少很多,网上的资料也少。因此就打算写一篇文档,记录以下学习过程和一些坑。
Read more
今天的一个需求,需要在一个800多万的数据表中查询当天某个项目的日志信息。给定的查询条件是项目名称和发生时间。项目名称是varchar类型,发送时间是bigint型。这两个数据字段都不是主键,也没有添加索引。通过以下搜索语句做一个搜索所需要的时间为22秒左右。
Read more