首页 > 网络 > 云计算 >

【原创】swarm源码分析(2)---manage流程与store

2016-05-16

【原创】swarm源码分析(2)---manage流程与store。

1、swarm manage主体构建流程

先看看manage command是如何构建的

代码在swarm\main.go

\

这里的action是manage函数

我们看看这个函数

代码在swarm\manage.go

\

上面主要是tls的配置

\

上面构建了一个Store

\

上面构建了一个cluster

\

上面构建了一个strategy

\

上面构建了一个filter

\

\

上面构建了一个discovery

\

上面构建了一个scheduler

\

最后开启了api服务

整体的构建流程很清晰,模块化也很清晰。

下面我们一个一个模块来进行分析

2、store

代码在swarm\state\store.go

我们先看结构体

\

这里的注释说的很清楚,就是要一个简单的key《--》RequestedState map存储

我们看看RequestedState

代码在swarm\state\state.go

\

我们再看看ContainerConfig

代码在github.com\samalba\dockerclient\types.go

\

这里很清晰了,store保存的就是容器信息。

下面看看store都提供了那些操作

NewStore

\

初始化目录路径和map

Initialize

\

调用了restore

restore

\

遍历目录下的所有文件,并利用json进行加载

load

\

利用json来进行解析文件

Get

\

从map中查找对应的信息

Add

\

调用了set

set

\

将信息写入文件,同时把信息保存到map中

Remove

\

删除文件,同时删除map中的信息

Replace

\

替换

小结

stroe还是很简单的,主要维护一个目录文件和一个map存储。

文中如果有哪里讲解的不对的地方,还请见谅,望指正。

相关文章
最新文章
热点推荐