Java面试项目推荐,异构数据源数据流转服务DatalinkX

前言

作为一个年迈的夹娃练习生,每次到了春招秋招面试实习生时都能看到一批简历,十个简历里得有七八个是写商城或者外卖项目。

不由得想到了我大四那会,由于没有啥项目经验,又想借一个质量高点的项目通过简历初筛,就找到了谷粒商城,面对408集的视频教程实在是难以坚持到终点。。。并且很多时候都是因为项目里有庞大的增删改查而感到厌烦。(504w的播放量可不得人手一个嘛.....) 如果不想再把外卖商城项目写在简历上,不妨来看看基于Flink的异构数据源流转系统

【DatalinkX】基于Flink的异构数据源流转系统

Gitee仓库地址:

$ https://gitee.com/atuptown/datalinkx$ 

DatalinkX是一个基于Flink大数据引擎的异构数据源同步系统,本质上就是通过页面配置的方式将数据从从来源数据源将数据同步到目标数据源

既然是异构数据源流转系统,肯定既可以是相同类型的数据源之间流转,也可以是不同的数据源之间流转,有些年轻的朋友可能会疑惑,为什么要有那么多数据源呢?

MySQL

Oracle不开源

PostgreSQL

MySQL功能不够多

SQLite

你可以把我纳入到任何地方

DM达梦

国货之光,国产数据库!

MongoDB

为什么要用join,文档不香吗?

Redis

为什么要面向文档?动不动内存多快?

ElasticSearch

你们全文检索都不行

Clickhouse

BI场景下唯我独尊

HDFS

大数据时代,在座的都是弟弟

Memcached

为什么我们要用磁盘?

Bigtable

MongoDB对Web扩展性不行

Hbase

Bigtable不开源

Kafka

流式数据是未来

Plusar

懂不懂存算分离的魅力?

...

...

随着大数据时代的发展,业务场景的日益复杂,稍具规模的企业内部都会使用各种各样的数据源,不同的数据源类型在不同的场景下能够充分发挥各自的优势,更好的辅助于业务。

而业务数据存储在不同DB中,就需要一个异构数据源之间的数据流转工具来流转和管理数据。

亦或是不同部门之间做数据同步,比如做爬虫的同事把数据爬到了MySQLa,而后端同事的服务使用的都是MySQLb,你需要把爬虫同事的数据拿来完成业务开发。

手动同步一次可以,也不能天天手动同步吧,那么这时候如果你有DatalinkX,你只需配置好两个数据源的连接信息和同步任务,就会按照你定时的时间将MySQLa中的数据一条不漏的同步到MySQLb中。

技术架构

Spring Boot

2.4.3

项目脚手架

SpringData JPA

2.4.3

持久层框架

MySQL

8.0

DB数据库

Redis

5.0

RedisStream消息队列

ChunJun(原FlinkX)

1.10_release

袋鼠云开源数据同步框架

Flink

1.10.3

分布式大数据计算引擎

Xxl-job

2.3.0

分布式调度框架

Retrofit2

2.9.0

RPC通信服务

Jackson

2.11.4

反序列化框架

Maven

3.6.X

Java包管理

Vue.js

2.X

前端框架

AntDesignUI

3.0.4

前端UI

Docker

容器化部署

QA

  1. SpringBoot没啥好说的,Java后端的看家技能,基础脚手架依赖。版本比较低是因为懒得换了.....
  2. 为啥用JPA不用Mybatis是因为毕业之后一直在用JPA快忘了Mybatis咋用了,为了用的顺手就用JPA了,有不喜欢的同学直接用Mybatis、Mybtais-plus都可以,这个项目的重点不是DB层的增删改查
  3. FlinkX低版本跟高版本中我们需要的数据流转模块的差异不是很大,1.10_release我最熟悉直接用,当时咔咔调试源码
  4. Retrofit2基于Http的优雅RPC通信服务,项目里基于这个封装了一层通用clinet
  5. Xxl-job和Jackson没啥好说的,优秀的开源组件

在系统设计中,采用最新 JDK8 + SpringBoot2分布式架构,构建高性能大数据量下稳定可靠的数据流转系统。通过学习DatalinkX项目,不仅能了解其运作机制,还能接触最新技术体系带来的新特性,从而拓展技术视野并提升自身技术水平。

DatalinkX前后端分离架构,前端使用Vue + AntDesignUI,在学习过程中,通过前端系统直接调试后端服务,可以避免纯通过接口测试的繁琐,使得学习过程更加流畅高效。

项目文档

共计40核心技术文档,帮助你深入了解以及快速上手DatalinkX系统。项目中的文档包括六个部分,项目介绍、快速启动、核心技术文档、组件解析、常见问题Q&A、面试问题交流。可根据自己的兴趣选择深入了解核心技术或从零到一复刻系统。常见问题Q&A、面试问题交流这两个模块会根据反馈持续更新。

要去深入学习一个服务,最快的方式就是先把项目运行起来,然后结合服务的业务逻辑慢慢调试代码,所以大家不要因为没有接触过Flink、Xxl-Job等等相关组件就望而却步。只要基于SpringBoot的开发能力即可学习DatalinkX服务。

常见问题答疑

Q:DatalinkX的面向人群?

A:常年浸泡在增删改查的业务代码里的从业者、有Springboot基础的的学生、想搞个毕业设计的毕业生

Q:学了DatalinkX有什么好处?

A:

  1. 掌握合理的亿级数据同步架构设计
  2. 对多线程编程做一次深入实践
  3. 体验极致封装与多态技巧
  4. 多类型数据源插件设计技巧
  5. 掌握FlinkX优秀同步框架原理及使用
  6. 掌握基于Redis Stream的消息队列
  7. 了解Flink批流一体的大数据引擎
  8. 分布式调度系统Xxl-Job实践
  9. 企业级应用的部署与运维
  10. .....

Q:工作后有必要看DatalinkX吗

A:这个项目质量还是很高的,代码运用了很多设计模式去适配当下最流行的技术组件,如果苦恼工作中都是增删改查的朋友很有必要看一手。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/325799.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 CompletableFuture 分批处理任务

一、无返回值任务函数 // 数据分批 List<List<StatisticsDTO>> batches Lists.partition(statisticsList, BATCH_SIZE); List<CompletableFuture<Void>> futures new ArrayList<>(batches.size());// 数据处理 for (int i 0; i < batches…

Linux之常用压缩解压缩命令

Linux&#xff08;/ˈlɪnʊks/ LIN-uuks&#xff09;[11]是一个基于Linux内核的开源类Unix操作系统系列&#xff0c;[12]是Linus Torvalds于1991年9月17日首次发布的操作系统内核。[13][14][15] Linux通常被打包为Linux发行版&#xff08;发行版&#xff09;&#xff0c;其中包…

科锐16位汇编学习笔记 03 汇编指令

指令种类 数据传送指令算数运算类指令位操作类指令串操作类指令控制转移类指令处理器控制类指令 数据传送类指令 传送类指令不影响标志位&#xff0c;**除了标志位传送指令外。** 传送指令MOV&#xff08;move&#xff09; 说明 ​ 把一个字节或字的操作数从源地址传送至…

【C程序设计】C数组

C 语言支持数组数据结构&#xff0c;它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据&#xff0c;但它往往被认为是一系列相同类型的变量。 数组的声明并不是声明一个个单独的变量&#xff0c;比如 runoob0、runoob1、...、runoob99&#xff0c;而…

如何让CHAT使用python绘制概率密度图像?

问CHAT&#xff1a;用python绘制概率密度图像 CHAT回复&#xff1a;你可以使用Python的matplotlib库和numpy库进行概率密度的绘制。 以下是一个简单的例子&#xff1a; python import numpy as np import matplotlib.pyplot as plt #随机生成1000个正态分布的数 data np.rand…

年终总结——平凡又不平凡的2023

前言 总结不知道该如何写起&#xff0c;也不知该如何建立这一篇文章的大致框架&#xff0c;只知道我的2023大概也就分成两大块罢了。说起2023一整年&#xff0c;只能用平凡而又不平凡来形容&#xff0c;平凡在我依旧没有什么太突出的技术点&#xff0c;专业水平也一直处于龟速…

每天一杯羊奶,让身体更健康

每天一杯羊奶&#xff0c;让身体更健康 羊奶作为一种天然的健康饮品&#xff0c;越来越受到人们的关注和喜爱。它不仅口感醇厚&#xff0c;营养丰富&#xff0c;而且具有独特的保健功效。今天&#xff0c;小编羊大师带大家详细介绍一下每天喝一杯羊奶对身体的好处。 羊奶中的…

基于PyTorch的Transformer组件实现

最近看了不少介绍LLM工作原理的文章&#xff0c;发现每一篇都会试图跟读者讲明白作为baseline的Transformer架构到底长啥样。但是好像比较少有代码实现的示例和具体的例子帮助理解。于是自己也想尝试着写一篇含有代码实现和具体例子解释的文章&#xff0c;希望能够给喜欢编程朋…

瞧瞧别人家的电商【淘宝1688京东】API接口,那叫一个优雅

淘宝、京东等电商平台的API接口确实非常强大和优雅&#xff0c;它们提供了丰富的功能和数据&#xff0c;使得开发者可以轻松地与平台进行交互&#xff0c;实现各种应用和功能。 以下是一些可能会让你感到优雅的淘宝、京东等电商平台的API接口特点&#xff1a; 接口设计简洁明…

基于 Python+Django 技术栈,我开发了一款视频管理系统

学习过程中&#xff0c;遇到问题可以咨询作者 大家好&#xff0c;作为一名开发人员&#xff0c;平时比较愿意动手尝试各种有意思工具&#xff0c;因为笔者非常喜欢观看视频&#xff0c;尤其是YouTube、bilibili都是笔者非常喜欢的视频网站&#xff0c;所以想自己实现一个视频点…

Unity之摄像机

一、摄像机类型 1.1 透视摄像机 透视摄像机有近大远小的效果&#xff0c;与我们在现实中看到的效果相同。所以当两个同样大小的物体到摄像机的距离不同时我们看到的大小也会不同。Unity的3D项目中默认使用的就是透视摄像机。 1.2 正交摄像机 正交摄像机没有近大远小的效果&am…

simulink代码生成(六)——中断向量模块的配置

假如系统中存在多个中断&#xff0c;需要合理的配置中断的优先级与中断向量表&#xff1b;在代码生成中&#xff0c;要与中断向量表对应&#xff1b;中断相关的知识参照博客&#xff1a; DSP28335学习——中断向量表的初始化_中断向量表什么时候初始化-CSDN博客 F28335中断系…