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

简介: 分布式计算最基本的目的之一就是为了充分利用空闲的计算节点的计算能力。通常,我们首先会将要被分布式计算的程序在每个计算节点部署好,然后才可以调用分布式计算。这种“部署”是一种静态的。之所以称为静态的,是因为还有一种更动态更灵活的方式 -- 我们可以随时的、动态的将我们新完成的程序自动【提交】到已经部署好的分布式框架里动态运行起来。

    分布式计算最基本的目的之一就是为了充分利用空闲的计算节点的计算能力。通常,我们首先会将要被分布式计算的程序在每个计算节点部署好,然后才可以调用分布式计算。这种部署是一种静态的。之所以称为静态的,是因为还有一种更动态更灵活的方式 -- 我们可以随时的、动态的将我们完成的程序自动【提交】到已经部署好的分布式框架里动态运行起来。比如,假设我刚写了一个新的排序的算法程序(假设程序集为X.dll),然后我要对现有的10000000个数据进行排序,但是,我的机器配置太差,运行不了如此大的计算任务,那么我就可以将X.dll和要排序的数据传递给部署在其它地方的动态分布式计算框架实例,动态分布式计算框架会调用X.dll中的排序算法来对数据进行排序,并返回结果。这就是动态的含义。我写DCFrameworkDynamic Distributed Computing Framework)这个框架的主要目标是达到这样的一个效果。不知道这种分布式计算架构和云计算是否有点关系?

      如果是使用CC++来实现这样的动态效果,应该不是一件简单的事情,但是强大的.Net平台使得实现这一目标称为可能,并且不是那么难。

      我将平台选定在.NET,这可以使很多功能更加容易实现,也使得很多问题得到简化。DCFramework的主要特性如下:

1)基于.NET平台。这有两种含义:DCFramework是用.NET2.0)实现的;也只有基于.NET的程序才可以使用DCFramework支撑的动态分布式计算架构。

2DCFramework 使用DCTask表示动态分布式计算任务。

3)分布式计算节点可以动态的增加、删除。所谓计算节点就是用于真正执行分布式计算任务的节点,在DCFramework中称为DC Worker Node

4)在DCFramework架构中有一个特殊的节点叫DC Master Node,它的作用在于统一管理所有的DC Worker Node,并将新的分布式计算任务分配给当前负载最低的那个DC Worker Node

5DCFramework使用Remoting技术解决DC Worker NodeDC Master Node,以及DC Master NodeClient(需要动态分布式计算的客户端)之间的通信。

6DCFramework使用反射技术来动态加载程序集和调用计算方法。

7DCFramework使用DCAppDomain(对.NET AppDomain的封装)来构建执行分布式任务的独立环境。即每个分布式计算任务最终在一个独立的DCAppDomain种执行。

8DCFramework使用序列化技术来传递被调用的对象。

      关于DCFramework中节点部署的简单图示如下: 

 

      

      现在,我们假设某个Client A有个计算任务要提交给DCFramework执行,让我们来看看这个过程是怎样进行的。

      Client A 将计算的逻辑封装在MyClass类中,其位于X.dll程序集中,而X.dll有依赖于Y.dll,Y.dll又依赖于Z.dll,而X.dll、Y.dll、Z.dll都是用户自定义的程序集。如果是在Client A本地执行计算任务,是这样做的: 

       MyClass  myClass  =   new   MyClass ();
      
//  为myClass属性赋值,并初始化,此处省略若干代码
       object  result  =  myClass.DoSomething();

      下面的代码将会在DCFramework架构的某个DC Worker Node上执行MyClass.DoSomething()方法。    

        MyClass  myClass  =   new   MyClass ();
       
//  为myClass属性赋值,并初始化,此处省略若干代码   

       
DCJobDispatcher  dispatcher  =   ...... ;
       dispatcher.Dispatch(myClass, 
" DoSomething " );

      分布式计算执行的过程简述如下:      

(1)DCJobDispatcher 会自动Remoting连接到DC Master Node。

(2)DCJobDispatcher 将分布式计算任务封装为一个DCTask,DCTask实例中会包含X.dll、Y.dll、Z.dll程序集对应的文件数据。

(3)DCJobDispatcher 将DCTask提交给DC Master ,DC Master 会将其交与DC Worker Node中负载最小的那个节点(假设为Worker A)执行。

(4)Worker A会为新任务创建一个单独的DCAppDomain,然后加载传递过来的DCTask中的X.dll、Y.dll、Z.dll,接着就可以反序列化MyClass对象,最后通过反射调用其DoSomething方法,以开始执行计算任务。

(5)计算完成后,Worker A会卸载对应的DCAppDomain,并将计算结果返回。

      上述就是DCFramework执行动态分布式任务的一个简单介绍,更详细的部分会在后续的文章中介绍。

      欢迎讨论,谢谢。

 

 目录:

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

 

下载:

1.DCFramework的完整Demo源码DCFrameworkDemo

                  

 

 

 

 

目录
相关文章
|
7月前
|
数据采集 存储 数据可视化
分布式爬虫框架Scrapy-Redis实战指南
本文介绍如何使用Scrapy-Redis构建分布式爬虫系统,采集携程平台上热门城市的酒店价格与评价信息。通过代理IP、Cookie和User-Agent设置规避反爬策略,实现高效数据抓取。结合价格动态趋势分析,助力酒店业优化市场策略、提升服务质量。技术架构涵盖Scrapy-Redis核心调度、代理中间件及数据解析存储,提供完整的技术路线图与代码示例。
619 0
分布式爬虫框架Scrapy-Redis实战指南
|
11月前
|
Java 数据库
在Java中使用Seata框架实现分布式事务的详细步骤
通过以上步骤,利用 Seata 框架可以实现较为简单的分布式事务处理。在实际应用中,还需要根据具体业务需求进行更详细的配置和处理。同时,要注意处理各种异常情况,以确保分布式事务的正确执行。
|
11月前
|
消息中间件 Java Kafka
在Java中实现分布式事务的常用框架和方法
总之,选择合适的分布式事务框架和方法需要综合考虑业务需求、性能、复杂度等因素。不同的框架和方法都有其特点和适用场景,需要根据具体情况进行评估和选择。同时,随着技术的不断发展,分布式事务的解决方案也在不断更新和完善,以更好地满足业务的需求。你还可以进一步深入研究和了解这些框架和方法,以便在实际应用中更好地实现分布式事务管理。
|
5月前
|
监控 Java 调度
SpringBoot中@Scheduled和Quartz的区别是什么?分布式定时任务框架选型实战
本文对比分析了SpringBoot中的`@Scheduled`与Quartz定时任务框架。`@Scheduled`轻量易用,适合单机简单场景,但存在多实例重复执行、无持久化等缺陷;Quartz功能强大,支持分布式调度、任务持久化、动态调整和失败重试,适用于复杂企业级需求。文章通过特性对比、代码示例及常见问题解答,帮助开发者理解两者差异,合理选择方案。记住口诀:单机简单用注解,多节点上Quartz;若是任务要可靠,持久化配置不能少。
493 4
|
10月前
|
存储 监控 数据可视化
常见的分布式定时任务调度框架
分布式定时任务调度框架用于在分布式系统中管理和调度定时任务,确保任务按预定时间和频率执行。其核心概念包括Job(任务)、Trigger(触发器)、Executor(执行器)和Scheduler(调度器)。这类框架应具备任务管理、任务监控、良好的可扩展性和高可用性等功能。常用的Java生态中的分布式任务调度框架有Quartz Scheduler、ElasticJob和XXL-JOB。
3547 66
|
11月前
|
数据库
如何在Seata框架中配置分布式事务的隔离级别?
总的来说,配置分布式事务的隔离级别是实现分布式事务管理的重要环节之一,需要认真对待和仔细调整,以满足业务的需求和性能要求。你还可以进一步深入研究和实践 Seata 框架的配置和使用,以更好地应对各种分布式事务场景的挑战。
325 63
|
9月前
|
数据采集 人工智能 分布式计算
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
阿里云推出的MaxFrame是链接大数据与AI的分布式Python计算框架,提供类似Pandas的操作接口和分布式处理能力。本文从部署、功能验证到实际场景全面评测MaxFrame,涵盖分布式Pandas操作、大语言模型数据预处理及企业级应用。结果显示,MaxFrame在处理大规模数据时性能显著提升,代码兼容性强,适合从数据清洗到训练数据生成的全链路场景...
384 5
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
|
11月前
|
存储 Java 关系型数据库
在Spring Boot中整合Seata框架实现分布式事务
可以在 Spring Boot 中成功整合 Seata 框架,实现分布式事务的管理和处理。在实际应用中,还需要根据具体的业务需求和技术架构进行进一步的优化和调整。同时,要注意处理各种可能出现的问题,以保障分布式事务的顺利执行。
755 53
|
9月前
|
人工智能 分布式计算 大数据
MaxFrame 产品评测:大数据与AI融合的Python分布式计算框架
MaxFrame是阿里云MaxCompute推出的自研Python分布式计算框架,支持大规模数据处理与AI应用。它提供类似Pandas的API,简化开发流程,并兼容多种机器学习库,加速模型训练前的数据准备。MaxFrame融合大数据和AI,提升效率、促进协作、增强创新能力。尽管初次配置稍显复杂,但其强大的功能集、性能优化及开放性使其成为现代企业与研究机构的理想选择。未来有望进一步简化使用门槛并加强社区建设。
393 8
|
10月前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
347 2

热门文章

最新文章