Scrapy Cluster中Kafka Topic详解

之前我们已经介绍过了Scrapy Cluster中有三大组件,Kafka,Redis和Scrapy spider。Kafka是一种高吞吐量的分布式发布订阅消息系统。每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。如果使用默认的配置,在Scrapy Cluster中Kafka有3个基本的topic:

  • demo.incoming
  • demo.crawled_firehose
  • demo.outbound_firehose

Read more

使用PyCharm调试开发Scrapy Cluster

PyCharm是比较流行的Python开发集成环境。功能强大而且非常易用。然而,我在实际工作中发现,很多朋友还不会使用PyCharm的调试功能和断点单步调试。如果说简单Python脚本只要写几个print语句就足够了,那么在开发Scrapy Cluster的爬虫过程中,善用PyCharm的调试功能和断点单步调试就真的可以事半功倍了。比方说,最近正在研究Scrapy Cluster源码的运行机制。在理解其机制的过程中必不可少需要设断点调试代码,而PyCharm作为强大的Python IDE在调试、Project管理中提供了许多方便,因此打算写此文档来记录在Pycharm中调试Scrapy Cluster爬虫的学习过程和一些坑。
Read more

详解Scrapy Cluster中Kafka与Redis的消息生产和消费

相对于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

使用Github创建免费的个人主页

前些天写了一片关于阿里云服务器的文章,阿里云网站应用云服务器选购指南,主要是比较不同阿里云服务器之间的性能和价格。后来就有朋友问,自己想建一个个人主页,主要是做个人展示用,比如个人简历。因此询问是否可以提供更多关于“共享虚拟主机普惠版”的信息和购买链接。其实我个人建议,如果不是要提供特别复杂的功能或者服务,只是要提供一个个人展示的平台的话,完全可以使用简单的Web服务,例如使用Github Pages服务。
Read more

使用MYSQL索引提升检索速度

之前碰到一个MYSQL查询速度慢的问题,在一个4G大小的表,约835万条记录中,按照时间统计总数。后来通过使用Order By语句把查询速度提升了3倍。原帖:使用Order By语句将MySQL查询速度提高3倍。如原文所述,最后的查询结果在7秒左右。然而对于一条MYSQL语句运行7秒,这样的速度完全是不能接受的。最后为了提升速度,还是决定通过把查询字段加到索引里。
Read more

Scrapy Cluster新手教程

最近正在接触大数据和人工智能方面的工作。为了满足数据量需求,需要开发一个爬虫系统来收集数据。在网上查了很多资料,发现大家用得比较多包括Scrapy, Scrapy Redis和Scrapy Cluster。前两个项目用得人比较多,也非常容易搭建。相比之下,Scrapy Cluster的相关文档少很多,网上的资料也少。因此就打算写一篇文档,记录以下学习过程和一些坑。
Read more