本文原文QQ空间链接:http://user.qzone.qq.com/29185807/blog/1463015882
本文原文csdn博文链接:http://blog.csdn.net/screscent/article/details/51381242
前面分析了discovery,cluster,node。那这一篇就分析scheduler和api。
1、Scheduler
我们先回顾下Scheduler在manage中如何构建的
源码在swarm\manage.go
先构建了strategy和filter。
然后构建了Scheduler。
下面看看Scheduler的源码
源码在swarm\scheduler\scheduler.go
结构体很简单,就3个主要成员
下面先简单的看看Scheduler提供的接口
CreateContainer
先选择node,然后调用cluster中的部署
选择有两个部分,一个是filter,一个是strategy
RemoveContainer
直接通过cluster来进行删除
小结
Scheduler的表面功能还是很简单的。其最主要的还是于如何选择node。
2、strategy
说到选择node,那我们就来看看strategy
源码在swarm\scheduler\strategy\strategy.go