标签: apache-kafka web-crawler scalability distributed-system system-design
我已经阅读了一些关于设计分布式网络爬虫的文章,但仍然有一些与架构相关的问题,尤其是分布式 URL 前沿和爬虫工作器。目前,我有两个选择:
但是通过这种方式,爬行的 worker 似乎不是无状态的,每个 worker 都为未访问的 URL 维护一些队列,一个 worker 如何从故障中恢复?另外,我觉得工作人员应该是无状态的,这样更有利于可扩展性。
但是对于这个解决方案,我不确定如何保证相同的 IP 可以转到同一个 worker,Kafka 等消息队列似乎没有这种自定义路由策略?