distribution源码分析之Distribution架构

Posted 程序人生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了distribution源码分析之Distribution架构相关的知识,希望对你有一定的参考价值。

registry简介

谈及docker registry,docker爱好者最先想到的自然是。Docker Hub作为Docker官方支持的Docker Registry,拥有全球成千上万的Docker Image。全球的Docker爱好者除了可以下载Docker Hub开放的镜像资源之外,还可以向Docker Hub贡献镜像资源。在Docker Hub上,用户不仅可以享受公有镜像带来的便利,而且可以创建私有镜像库。Docker Hub是全国最大的Public Registry,另外Docker还支持用户自定义创建Private Registry。Private Registry主要的功能是为私有网络提供Docker镜像的专属服务,一般而言,镜像种类适应用户需求,私密性较高,且不会占用公有网络带宽。


registry版本信息

在docker1.6版本之前只支持docker registry:v1版本,使用python写的,现在官方更支持的是v2版本,即distribution,是用go语言实现的。Docker Hub已经支持两个版本,以后转移到v2是必然的,在这里只对该版本作出分析。


Distribution总架构图

在资料匮乏的情况下学习Distribution的源码是一个劳累的过程,但却可以从中理解Distribution的设计原理以及架构。Distribution架构相对于Docker来说相当简单,主要有提供服务的前端以及存储数据的后端组成。 



可见,Distribution前端作为整个架构的主体部分,首先读取用户运行registry时提供的yml文件参数配置Configuration,然后根据该配置参数以及Context新建并初始化handler.App,根据该App初始化了handler并将其赋值给Server,从而新建了一个Registry。 

其中,要指明的是App中信息量庞大,注册了各endpoint需要调用的句柄,设置了存储驱动以及存储cache,auth以及Proxy等。 
Http Server根据请求的类型发送至相应的router,调用对应的Handler来提供服务,handler会与Storage通信传送数据。这块儿具体数据传送流程将在以后更新。



本文选自CSDN知识库

阅读原文获取【Docker】图谱 和 更多优质内容



以上是关于distribution源码分析之Distribution架构的主要内容,如果未能解决你的问题,请参考以下文章

Akka源码分析-Cluster-Distributed Publish Subscribe in Cluster

Deep learning III - II Machine Learning Strategy 2 - Bias and Variance with mismatched data distribu

HIVE-执行distribute by时报错的解决过程---之如何分析hive执行的错误并解决

[源码解析] PyTorch 分布式 ----- DistributedDataParallel 之进程组

flaskapp

Flink ParameterTool fromArgs源码分析