老师, 17-9, 调度器开的100个worker协程在chan worker队列代表的不是远端worker, 是不是换成远端worker chan 比较合适

来源:18-9 使用连接池链接爬虫集群

kasn

2019-10-22

老师, 17-9, 调度器开的100个worker协程 在chan worker队列 代表的不是远端worker, 是不是换成远端worker chan 比较合适。 我的思路是 worker 链接池的链接放在调度器里面的chan worker 队列 里面。

写回答

1回答

ccmouse

2019-10-27

这个问题非常好。的确这里和远端worker并没有直接对应关系。这里我们开100个或是更多worker也没用,系统主要还是受限于远端worker的数量。

但另一方面,让本地worker数和远端数量去同步长远来看是件比较困难的事情。后续的发展很有可能远端worker的数量很有可能是不固定的,可以随业务量增减。如果的确需要做到同步的话,还需要一个协议来随时得知远端worker的数量。但goroutine的资源消耗很少,因此这样的同步很可能不需要。我们只要保证goroutine的数量不会随着时间增长(不要产生goroutine leak)即可。

1
0

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程