app开发者平台在数字化时代的重要性与发展趋势解析
754
2022-10-19
DC4C- 分布式计算框架
DC4C 是 C 语言环境的分布式计算框架(DC4C)。
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-/calvinwilliams/dc4c/blob/master/doc/DC4C.pdf?dir=0&filepath=doc%2FDC4C.pdf&oid=b5a43540f2d74bc7528e5f21c9dd22ea32acba3c&sha=4af93652bf55ece82d8b020afec930ae5c4ee5d9
开源项目首页http://git.oschina-/calvinwilliams/dc4chttps://github.com/calvinwilliams/dc4c
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~