Castled 源码解析 一 整体介绍

以前我大概介绍过Castled ,后边为了方便学习以及共享,会整体介绍Castled 项目

代码包结构

Castled 是基于java 开发使用maven 进行包管理的,所以整体就是一个标准的maven多模块项目

  • 代码结构
├── CODE_OF_CONDUCT.md
├── LICENSE.md
├── README.md
├── commons   // 公共模块,包含的东西不少,比如cache,form 处理,castled 队列定义,异常,schema,model,kafka 发布订阅,jdbi 公共,还有一些工具类
├── connectors // 这个是一个核心,包含了app管理(外部集成的)jdbc 连接管理,oauth 认证的,warehouse 集成处理的(此处是核心,基于poll模式支持了增量以及全量模式),当然还支持tunnel模式(ssh)
├── container  // 属于Castled backend 的核心,主要包含了app管理,pipeline 管理,以及kafka 消息发送,对于不同的resource 提供了不少rest api,主要方便web app 使用,同时还提供了db 的migration 操作(基于Flyway)
├── docker-compose.build.yaml  // 容器镜像构建的
├── docker-compose.yaml // 本地环境运行
├── docs   // 官方文档,目前比较少
├── jarvis  // 主要提供了quartz 的一些包装,方便任务调度的执行
├── kube  // k8s 运行的
├── pom.xml
├── tools
└── webapp // web 前端,Castled 属于典型的前后端分离项目,但是如果从开发来说,直接放到app中管理起来会更加方便的,比如dremio 的做法(java 项目比较喜欢集成一起)

整体参考架构

下图是一个简单的说明,细节我们后边会介绍

 

 

构建

构建还是比较简单的,可以直接本地构建,然后使用docker-compose -f docker-compose.build.yaml 构建镜像

运行

docker-compose up -d

说明

以上支持简单的说明Castled 项目代码结构以及整体运行,后边会从每个模块的代码说明具体的运行机制以及我们如何扩展Castled

参考资料

https://github.com/castledio/castled

posted on 2022-01-25 00:27  荣锋亮  阅读(58)  评论(0编辑  收藏  举报

导航