采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
这节视频来回听了10多遍,根据自己理解画了个图,不知道是否正确,请指正!
非常感谢同学画了这么好的图。来回听了10遍也说明我的课程有改进的余地:)
首先,我在这里所希望的是一个抽象层面的理解。有一个非常重要的认识:我们这里的chan Request其实就是Worker的handle。也就是说,拿到chan Request,就是拿到了Worker,就可以和Worker进行通信。
所以我们有两个channel,我们的调度器负责把两个channel里的东西收下来排队。对应图上左边一个是request队列,右边一个worker队列。每次调度器从request队列拿一个request,从Worker队列拿一个Worker,把这个request发给Worker。
怎么发呢?通过Worker的handle,也就是它对应的这个chan Request进行发送。
那我们再来看同学的这个图,有两点可以改进:
一:每个chan Request一一对应一个Worker,这一点还可以强调下。
二:这里有三个并行的模块,引擎,调度器和Worker。他们之间分别通过channel来通信。而request队列和Worker(chan Request)队列,他们都是调度器的内部数据结构。我们看到requestQ和workerQ这两个是局部变量。他们只是用来辅助将request和对应的Worker去匹配起来。
谢谢sir!
同学,你用的是什么工具啊?
这图画的很棒
谢谢!
一图胜千言!
登录后可查看更多问答,登录/注册
语法+分布式爬虫实战 为转型工程师量身打造
3.7k 14
690 1
2.0k 1
1.1k 12