组件启动顺序links实现原理解析
场景:在实际需求场景中,如果一个服务包含多个组件,那么常规情况下,组件之间是存在依赖关系的,那么程序在启动前就存在依赖关系。
举例,kubernetes
组件的启动顺序是存在依赖关系的,依赖关系如下
etcd
kube-apiserver -> etcd
kube-controller-manager -> kube-apiserver -> etcd
kube-scheduler -> kube-apiserver -> etcd
kubelet -> kube-apiserver -> etcd
kube-proxy -> kube-apiserver -> etcd
可以发现,组件之间是存在链式一样的依赖,那么针对这种链式的依赖,程序如何处理组件的启动顺序呢。参考实现来资源docker compose links