古法编程时代Java项目最后的绝唱
最近看了好多同学简历中的项目经历都已经变成一个AI项目加一个常规项目,而且大家似乎很有默契的形成了一个RAG项目+商城、优选、秒杀项目.....很难不让人感慨,在这个古法编程向vibe coding过度的时期,大家又默契的写出了同质化如此高的简历。
如果大家厌倦了写商城类这种极致并发的项目,害怕自己经不住面试官对大流量技术设计的拷打,那不妨关注一下由楼主开源的异构数据源流转系统datalinkx。不同于c端项目浮夸的流量和并发,在后A(AI)、B(BigData)、C(CloudCompute)时代,datalinkx的优势在于其大数据垂直领域的业务价值。
为什么选择搞异构数据源流转项目
每到春招秋招的时候我也会去面一些实习生或者一两年年限的求职者,一般我判断一份的简历含金量怎么样通常是有几项侧重点:
学校&学历 > 获奖经历 > 实习和工作经验 > 项目或事件经验 > 专业技能 > 其他
基本上每次都会看到有人写商城、学院、秒杀项目,大家的项目内容基本雷同,这个时候就要去看谁的学校更好,我相信大部分牛油们学校还是相对普通吧,你也不想跟别人拼学校吧。
现在随着大模型的兴起,对数据的流转需求也越来越多,公司规模稍大的都会有数据中台部门负责清洗处理数据,举个例子,模型的训练数据从哪来呢,当然是从各个数据源里来,有mysql、oracle、http等等等,怎么把数据统一到一个地方呢,datalinkx就负责做这个事。
项目质量也是杠杠的,已经有社招的哥们部署到生产环境正常使用了。
简历上怎么描述DatalinkX
- 使用分布式架构master + worker架构,支持worker横向扩展
- 使用flink、seatunnel作为底层高效稳定的数据流转引擎,支持互相切换
- 使用Chunjun(FlinkX)构建Flink流转任务元信息
- 使用Xxl-job做分布式定时调度任务
- 使用redis stream + SSE实现任务流转进度实时推送
- 使用redis实现分布式锁,控制分布式环境下流式任务只启动一次
- 自定义扩展数据源类加载机制,实现插拔式加载数据源driver驱动插件
- 基于OpenFegin封装内部RPC服务
- 使用基于模版方法+钩子函数设计任务生命周期,通过策略模式抽象数据源驱动实现驱动解耦
- 支持Docker容器化部署
- 借助Redis实现分布式锁,防止多实例流式任务重复提交
- 借助Ollama部署阿里通义千问大模型提供对话能力,部署Dmeta-embedding提供向量化能力
- 使用solon + 硅基流动实现function call协议实现对话式启停任务
- 使用Elasticsearch作为向量库构造RAG应用,并通过自定义@ComponentScan.Filter实现插拔式加载智能问答模块
- 借助OKSSE实现大模型问答GPT流式结果返回风格
项目文档
如果感到吃力亦可以入股成为股东,文档从架构设计、技术选型等方面完全讲透本项目,文档不光包含了代码讲解,还有股东积累的面试问题,包括面试官问起项目背景的回答套路,以及各种经典问题回答,保证股东们稳稳拿到offer。