DCFramework 动态分布式计算框架(01)-- 基础结构

简介: DCFramwork框架主要由四个核心的dll构成:DCFramework.dll、DCFramework.Master.dll、DCFramework.Worker.dll、DCFramework.Client.dll。

      DCFramwork框架主要由四个核心的dll构成:DCFramework.dllDCFramework.Master.dllDCFramework.Worker.dllDCFramework.Client.dll

      从图中我们看到,另外三个dll都依赖于最基础的DCFramework.dll,这个三个dll除了依赖DCFramework.dll外,相互之间没有任何依赖关系。

DCFramework.dll提供了DCF框架需要用到的基础和公共的类型定义,比如分布式任务DCTask,分布式计算节点WorkerNode,以及DC Master发布给Client使用的服务接口IDCService和发布给分布式计算节点使用的动态注册/注销服务接口IWorkerRegistryService,另外还有DC WorkerDC Master回调的接口IWorkerService。这些类型的定义如下图所示:

 

DCFramework.Master.dllDC Master Node使用的核心程序集,其中包含三个主要的类:DCMaster类用于管理所有注册的DC Woker Node,并负责分发分布式任务到某个DC Woker Node上;DCServiceDC Master Node发布给Client使用的服务;而WorkerRegistryServiceDC Master Node发布给DC Woker Node使用的服务。其类图如下:

 

DCFramework.Worker.dllDC Worker Node使用的核心程序集,其中主要的类型定义有:DCAppDomain用于封装AppDomain,使分布式计算任务可以再一个独立的AppDomain中运行;DCJobWorker是真正执行分布式计算任务的"工作者",它可以在目标DCAppDomain或临时创建的DCAppDomain中执行任务。DCAppDomainManager用于管理所有非临时的DCAppDomain对象,并负责分布式任务的分派调用。关于临时与非临时的DCAppDomain对象,会在后续文章中详细介绍。

 

DCFramework.Client.dll是给客户使用的程序集,客户借助DCFramework.Client.dll可以非常方便的使用已经部署好的DCF框架实例来执行自己的分布式任务。DCFramework.Client.dll中最核心的类是DCJobDispatcher,正如前文介绍的,DCJobDispatcher 会自动Remoting连接到DC Master Node,并将分布式计算任务封装为一个DCTask,然后将DCTask提交给DC Master。这一切都是DCJobDispatcher在后台自动帮你完成的,你所需要做的只是提交任务,然后等待返回结果,如此而已。其类图如下所示: 

本文只是对DCFramework基本结构进行了简单介绍,DCFramework的实现比上述的描述要复杂许多,在后续的文章中,我们会详细地深入到每一个部分去。

最后给出一个使用DCFramework的完整Demo的源码,包括MasterWorkerClient。你可以先运行起来看看动态分布式计算的效果,我会在下一篇文章中对这个Demo的做详细的解释。

欢迎讨论,谢谢。

转到:DCFramework 动态分布式计算框架(00)-- 序 

 

 

目录
相关文章
|
24天前
|
存储 监控 负载均衡
检索服务elasticsearch分布式结构
【8月更文挑战第22天】
35 3
|
9天前
|
运维 NoSQL Java
SpringBoot接入轻量级分布式日志框架GrayLog技术分享
在当今的软件开发环境中,日志管理扮演着至关重要的角色,尤其是在微服务架构下,分布式日志的统一收集、分析和展示成为了开发者和运维人员必须面对的问题。GrayLog作为一个轻量级的分布式日志框架,以其简洁、高效和易部署的特性,逐渐受到广大开发者的青睐。本文将详细介绍如何在SpringBoot项目中接入GrayLog,以实现日志的集中管理和分析。
44 1
|
21天前
|
数据采集 分布式计算 并行计算
Dask与Pandas:无缝迁移至分布式数据框架
【8月更文第29天】Pandas 是 Python 社区中最受欢迎的数据分析库之一,它提供了高效且易于使用的数据结构,如 DataFrame 和 Series,以及大量的数据分析功能。然而,随着数据集规模的增大,单机上的 Pandas 开始显现出性能瓶颈。这时,Dask 就成为了一个很好的解决方案,它能够利用多核 CPU 和多台机器进行分布式计算,从而有效地处理大规模数据集。
43 1
|
16天前
|
分布式计算 资源调度 Hadoop
在YARN集群上运行部署MapReduce分布式计算框架
主要介绍了如何在YARN集群上配置和运行MapReduce分布式计算框架,包括准备数据、运行MapReduce任务、查看任务日志,并启动HistoryServer服务以便于日志查看。
30 0
|
18天前
|
缓存 分布式计算 Java
详细解读MapReduce框架中的分布式缓存
【8月更文挑战第31天】
12 0
|
1月前
|
Go API 数据库
[go 面试] 分布式事务框架选择与实践
[go 面试] 分布式事务框架选择与实践
|
23天前
|
机器学习/深度学习 编译器 PyTorch
自研分布式训练框架EPL问题之吸引社区参与共建如何解决
自研分布式训练框架EPL问题之吸引社区参与共建如何解决
|
23天前
|
并行计算 算法 调度
自研分布式训练框架EPL问题之提高GPU利用率如何解决
自研分布式训练框架EPL问题之提高GPU利用率如何解决
|
23天前
|
算法 异构计算
自研分布式训练框架EPL问题之帮助加速Bert Large模型的训练如何解决
自研分布式训练框架EPL问题之帮助加速Bert Large模型的训练如何解决
|
23天前
|
自然语言处理 Java
自研分布式训练框架EPL问题之实现显存的极致优化如何解决
自研分布式训练框架EPL问题之实现显存的极致优化如何解决

热门文章

最新文章