1 概述
1.1 简介
DC4C是一个通用的分布式计算框架,研发初衷来自于2015年初我开发互联网数据挖掘平台的任务调度的技术需求。经过2015年4月一个月的研发,发布 第一版原型,而后不断优化完善,扩展功能,目前最新版本为v1.5.5。只依赖开源库fasterjson。
DC4C借鉴了Hadoop、Fourinone等分布式产品的设计,加入自有特色,充分考虑高可靠性、高伸缩性,也是业界首先实现有向无环图任务调度引擎的分布式计算框架之一,特别适合批量任务流处理的分布式架构。
DC4C核心完全用C编写,手工代码约1万行。此外大量使用代码自动化生成技术(如json报文的打包解包),大幅减小了开发量、提高了开发效率、减轻了底层细节编码压力。用户API包和计算节点也可以用其它语言实现以支持不同语言开发的应用。
目前已实施某银行批量处理平台上线稳定运行半年。
1.2 体系结构
DC4C体系结构包含基础平台架构、用户API包和有向无环图(下面简称DAG)的任务调度引擎。
基础平台架构包含三类节点:注册节点、计算节点和用户节点。
注册节点(守护进程):负责接受计算节点注册、状态变更、注销;接受用户节点查询空闲计算节点;接受telnet连接在线查询和管理。进程框架为父子进程监控进程异常,可以同时起多对保持计算节点注册信息冗余,提高可靠性。
计算节点(守护进程):负责向注册节点注册;接受用户节点分派任务并反馈执行结果;随时向注册节点报告状态。进程框架为父进程+子进程组(计算节点组)监控进程异常。
用户节点(可以是守护进程、命令行进程或其它任何类型的用户自己控制的进程):用户程序调用用户API,向注册节点查询当前空闲的计算节点,分派任务给计算节点并监督执行。
计算节点启动后向注册节点注册后保持长连接,并互相心跳。
用户节点用户应用通过分派任务API向注册节点查询当前空闲的计算节点集合,然后发送执行命令行和执行程序MD5给计算节点,计算节点校验执行程序MD5,如果不匹配,联动请求用户节点分发新版程序,然后再执行命令。
用户API包供用户节点和计算节点应用调用,实现用户节点的任务分派、计算节点应用控制等功能。
有向无环图(DAG)任务调度引擎封装了基础平台架构提供的基本任务分派功能,实现了有向无环图数据结构的任务流的执行控制,便于用户直接搭建复杂任务依赖关系调度平台。
1.3 功能和优势
* 对于应用开发人员,无需编写任何并发控制细节代码(如fork、wait)就可轻松实现本地或集群的并发管理,以及本地风格(wait子进程退出值status)的执行反馈。计算节点用户应用本身就是可执行程序,便于本地调试。
* 对于系统运维人员,随时根据当前系统负载随时伸缩(扩大或减小)集群规模,而不影响系统的功能性,更无需应用开发人员参与。集群伸缩无需重启等影响当前正在处理的动作,没有配置文件,大大减少运维复杂度,实现高伸缩性。
* 通过网络连接心跳、父子进程监控、数据冗余等实现高可用性。
* 用户API包提供了单任务分派、批量任务分派、多批量任务分派等高层封装API,也提供了低层API供用户自己封装适应自己应用场景的任务分派器。用户API包也提供了同步、多路复用等分派模式,支持各种用户程序结构。
* 实现了一个DAG任务调度引擎,是业界最早实现该数据结构任务调度引擎的分布式计算框架之一。
* 用户应用程序自动检查应用版本和自动分发部署。
* 支持telnet直接查询和管理集群状态。
* 所有类型节点可自由部署在任意台机器内;支持最多8个注册节点和(理论上)6万个计算节点。
开源项目首页
http://git.oschina.net/calvinwilliams/dc4c
https://github.com/calvinwilliams/dc4c
相关推荐
可伸缩:水平可伸缩的平台,构建使用领先的 Spring Cloud 开源技术; 容错:没有单点故障弱,集群中的每个节点是相同的; 健壮和高效:单一服务器节点可以处理甚至数百成千上万的设备根据用例; 可定制:添加新的...
IoT DC3 是一个基于 Spring Cloud 的开源的、分布式的物联网(IoT)平台,用于快速开发物联网项目和管理物联设备,是一整套物联系统解决方案。
DC3是基于Spring Cloud的开源可分布式物联网(IOT)平台,用于快速开发、部署物联设备接入项目,是一整套物联系统解决方案。IOT DC3 is an open source, distributed Internet of Things (IOT) platform based on Spring...
直流电分布式计算课程的作业和课程项目。 作业 1:点对点系统中的拓扑管理(Java) 作业2:SUN RPC编程(C) 作业 3:使用 Java RMI (Java) 实现 DNS 服务器作业 4:使用 ZooKeeper API ...简化的 Map-Reduce 计算框架
为了解决现有交错运行控制方案的缺点,本文研究了一种无交错线自动交错控制方案,这种方案采用分布式控制,而且不需要交错线,能够提高系统运行的可靠性,并且实现真正的模块化。
#资源达人分享计划#
基于TM4C123G开发板的DC-DC降压程序。 其中包括LCD显示与DC-DC降压模块的驱动程序
DC-DC芯片输出电压计算分压电阻参数
DC3 是基于 Spring Cloud 的开源可分布式物联网 (IOT) 平台,用于快速开发、部署物联设备接入项目,是一整套物联系统解决方案
DC-DC电路在线计算器 方便各位计算开关电源电路
关于一些常用的DC-DC变换器的参数值的计算,有详细的过程
#资源达人分享计划#
DC3是一个基于Spring Cloud的开源的、分布式的物联网(IOT)平台,用于快速开发物联网项目和管理物联设备,是一整套物联系统解决方案。
我们板上电源最常用的非隔离DC-DC电源主要有两种拓扑,BUCK和BOOST,其中电感是比较关键的一个参数。本文简介这两种电源电感的选型计算。
双向全桥DC-DC电路simulink仿真模型,各类控制参数已经设置好了,能正常显示波形
DC-002 DC-005 DC-012 电源接口2D3D三维视图PCB封装库AD库(8个合集) Component Count : 8 Component Name ----------------------------------------------- DC-002 DC-003 DC-003A DC-005 DC-005P DC-012 DC-...
RK 平台上使用的 DC-DC 电路,需要通过 PWM 调节反馈电压,从而改变输出电压,相关计算方法及电阻参数配置!