使用Python将url种子发送到EC2实例



我正在python中使用EC2构建一个网络爬虫。我有一个主实例和几个从实例。master实例负责收集需要抓取的url,并一致地将其发送到slave。我有两个问题:

  1. 是否有一个类似队列的数据库,可以存储每个实例的url?每个实例都有一个用于存储url的DB
  2. 如何将url从主实例发送到从实例?谢谢

使用队列消息服务,如Apache ActiveMQ、RabbitMQ或RestMQ(基于Redis)。

每一个软件的接口都是不同的,但通常在你的服务器上你会做一些事情,比如:

q = SomeQueueClass.connect('some.ip.address.0')
q.push('http://someurl.com')

然后在每个客户端上,您将执行

q = SomeQueueClass.connect('some.ip.address.0')
url = q.pop()

也许还有

q.done(url)

队列服务将处理防止竞争的条件,确保消息是持久的,并确保消息被传递。

最新更新