当前位置: 首页 > news >正文

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

相关文章:

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

前言 作为一个年迈的夹娃练习生,每次到了春招秋招面试实习生时都能看到一批简历,十个简历里得有七八个是写商城或者外卖项目。 不由得想到了我大四那会,由于没有啥项目经验,又想借一个质量高点的项目通过简历初筛,就…...

一、Vue3组合式基础[ref、reactive]

一、ref 解释:ref是Vue3通过ES6的Proxy实现的响应式数据,其与基本的js类型不同,其为响应式数据,值得注意的是,reactive可以算是ref的子集,ref一般用来处理js的基本数据类型如整型、字符型等等(也可以用来处…...

unity网页远程手机游戏Inspector面板proxima

https://www.unityproxima.com/docs...

聊聊spring事务12种场景,太坑了

前言 对于从事java开发工作的同学来说,spring的事务肯定再熟悉不过了。 在某些业务场景下,如果一个请求中,需要同时写入多张表的数据。为了保证操作的原子性(要么同时成功,要么同时失败),避免数…...

mysql 数据查重与查重分页

起因是公司的crm录入不规范,有重复数据。 之后考虑到需要手动处理,首先需要自动找出重复的数据 查重要求: 存在多个不允许重复的字段,任一字段重复,则判断为同一个客户。划分到同一重复组中。 查重sql如下 SELECT C…...

微服务(12)

目录 56.k8s是怎么进行服务注册的? 57.k8s集群外流量怎么访问Pod? 58.k8s数据持久化的方式有哪些? 59.Relica Set和Replication Controller之间有什么区别? 60.什么是Service Mesh(服务网格)&#x…...

​iOS实时查看App运行日志

目录 一、设备连接 二、使用克魔助手查看日志 三、过滤我们自己App的日志 📝 摘要: 本文介绍了如何在iOS iPhone设备上实时查看输出在console控制台的日志。通过克魔助手工具,我们可以连接手机并方便地筛选我们自己App的日志。 &#x1f4…...

【计算机毕业设计】SSM健身房管理系统

项目介绍 本项目为后台管理系统,主要分为管理员与用户两种角色; 登录页面,管理员首页,会员增删改查,教练增删改查,运动器材管理等功能。 用户角色包含以下功能: 用户登录页面,用户首页,选择课程,选择教练等功能。 环境需要 1.运行环境&a…...

嵌入式Linux之MX6ULL裸机开发学习笔记(IMX启动方式-启动设备的选择)

一,硬件启动方式选择 1.启动方式的选择 6ull支持多种启动方式。 比如可以从 SD/EMMC、 NAND Flash、 QSPI Flash等启动。 6ull是怎么支持多种外置flash启动程序的。 1.启动方式选择: BOOT_MODE0 and BOOT_MODE1,这两个是两个IO来控制的,…...

K8S Ingress-Nginx导出TCP端口

ingress-nginx导出TCP端口 Exposing TCP and UDP services - Ingress-Nginx Controllerhttps://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/exposing-tcp-udp-services.md helm upgrade ingress-nginx导出redis 6379端口(这种方式最简单&…...

索引类型-哈希索引

一. 前言 前面我们简单介绍了数据库的B-Tree索引,下面我们介绍另一种索引类型-哈希索引。 二. 哈希索引的简介 哈希索引(hash index) 基于哈希表实现,只有精确匹配索引所有列的查询才有效。对于每一行数据,存储引擎都会对所有索引列计算一个…...

uniapp中组件库的Textarea 文本域的丰富使用方法

目录 #平台差异说明 #基本使用 #字数统计 #自动增高 #禁用状态 #下划线模式 #格式化处理 API #List Props #Methods #List Events 文本域此组件满足了可能出现的表单信息补充,编辑等实际逻辑的功能,内置了字数校验等 注意: 由于…...

LLM、AGI、多模态AI 篇三:微调模型

文章目录 系列LLM的几个应用层次Lora技术其他微调技术FreezeP-TuningQLoRA指令设计构建高质量的数据微调步骤系列 LLM、AGI、多模态AI 篇一:开源大语言模型简记 LLM、AGI、多模态AI 篇二:Prompt编写技巧 LLM、AGI、多模态AI 篇三...

IPC之十二:使用libdbus在D-Bus上异步发送/接收信号的实例

IPC 是 Linux 编程中一个重要的概念,IPC 有多种方式,本 IPC 系列文章的前十篇介绍了几乎所有的常用的 IPC 方法,每种方法都给出了具体实例,前面的文章里介绍了 D-Bus 的基本概念以及调用远程方法的实例,本文介绍 D-Bus…...

ES6之生成器(Generator)

✨ 专栏介绍 在现代Web开发中,JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性,还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言,JavaScript具有广泛的应用场景&#x…...

Matlab技巧[绘画逻辑分析仪产生的数据]

绘画逻辑分析仪产生的数据 逻分上抓到了ADC数字信号,一共是10Bit,12MHZ的波形: 这里用并口协议已经解析出数据: 导出csv表格数据(这个数据为补码,所以要做数据转换): 现在要把这个数据绘制成波形,用Python和表格直接绘制速度太慢了,转了一圈发现MATLAB很好用,操作方法如下:…...

Go面试题学习

1.并发安全性 Go语言中的并发安全性是什么?如何确保并发安全性? 并发安全性是指在并发编程中,多个goroutine对共享资源的访问不会导致数据竞争和不确定的结果。 使用互斥锁(Mutex):通过使用互斥锁来保护…...

SQL效率-查询条件需避免使用函数处理索引字段

一个sql效率的问题 问题 假设created_at 是date类型、是索引,那么以下2种方式有没效率差异: WHERE TO_CHAR(created_at, ‘YYYY-MM-DD’) ‘2020-02-01’WHERE created_at TO_DATE(‘2020-02-01’ , ‘YYYY-MM-DD’) DBA回复 有的,第一…...

【Spring 篇】Spring:轻松驾驭 Java 世界的利器

在 Java 开发领域,Spring 框架无疑是一颗璀璨的明星,它不仅提供了全面的企业级特性,还为开发者提供了简便而强大的开发方式。本文将深入探讨 Spring 框架的简介、配置和快速入门,带你轻松驾驭 Java 世界的利器。 Spring 简介 Sp…...

八个LOGO素材网站推荐分享

即时设计资源广场 在UI界面设计中,为了找到合适的图标icon,你有没有尝试过翻遍整个网络,找到自己想要的,却无法下载或收费使用?最后,只收集图标icon材料需要半天时间。专业设计师使用的图标icon设计材料“…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

Go语言多线程问题

打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...

spring Security对RBAC及其ABAC的支持使用

RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...

macOS 终端智能代理检测

🧠 终端智能代理检测:自动判断是否需要设置代理访问 GitHub 在开发中,使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新,例如: fatal: unable to access https://github.com/ohmyzsh/oh…...

aardio 自动识别验证码输入

技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”,于是尝试整合图像识别与网页自动化技术,完成了这套模拟登录流程。核心思路是:截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...