并发版爬虫,实现2和实现3,优势到底在哪里呢?
来源:16-5 重构和总结

弱弱小乖乖
2018-04-25
视频中说:
1:实现2为每一个Request 创建了一个goroutine ,Request 输入输出都是用同一个goroutine,能控制的东西少。
2:那么实现3分别创建了Rquest 队列 和 worker 队列,虽然有两个队列,但是跟实现 2 的控制有什么差别呢?
3:实现3到底比实现2可以多控制什么呢?实现3到底优势在哪里呢?
写回答
1回答
-
ccmouse
2018-04-26
这是个好问题。实现2我们完全依靠go语言的能力。但是如果并发流量太大,或是出现峰值,那总有限度,还可能因为goroutine太多吃很多内存。
相反实现3,我们可以控制多少goroutine在工作,队列排多长,内存开多大,量才触发排队等。
另外,我们还可以有自己的调度算法。可以按照优先级来进行服务,或者有更符合自己系统的调度方案。40
相似问题