我在看邓恩·马丁的网络爬虫设计。
他们建议进行以下网络优化:
Crawler服务可以通过一次保持多个打开的连接(称为连接池)来提高性能和减少内存使用量。 切换到UDP也可以提高性能。
我不明白这两种建议:连接池与网络爬行有什么关系?每个爬虫服务是否都在打开自己与主机的连接?连接池在这里有什么用?关于UDP,难道不是爬行向网络主机发出HTTP通过TCP请求吗?UDP在这里有什么关系?
发布于 2020-05-16 04:30:25
连接池与网络爬行有什么关系?每个爬虫服务是否都在打开自己与主机的连接?
我认为您假设爬虫只向主机发送一次请求。情况并非如此,主机可能有数百页要爬行,每次打开连接都是无效的。
关于UDP -不是爬行向网络主机发出HTTP通过TCP请求吗?UDP在这里有什么关系?
摘自Web数据挖掘一书
爬虫需要将URL中的主机名解析为IP地址。为此目的与域名系统( DNS )服务器的连接是天真爬虫的主要瓶颈之一,它为每个URL打开到DNS服务器的新TCP连接。为了解决这个瓶颈,爬虫可以采取几个步骤。首先,它可以使用UDP而不是TCP作为DNS请求的传输协议。虽然UDP不能保证数据包的传递,偶尔也可以删除请求,但这是很少见的。另一方面,UDP在TCP上没有显著的速度提升带来的连接开销。
https://stackoverflow.com/questions/60479872
复制相似问题