首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客688002910号
门头沟学院 Java
发布于湖南
关注
已关注
取消关注
@在下uptown:
如何学习一个大型分布式Java项目
前言很多同学在没有实习经验的时候看到一个多模块分布式项目总是有一种老虎吃天的无力感,就像我刚毕业去到公司接触项目的时候一样,模块多的夸张,想学都不知道从哪开始学,那么我们拿到一份代码后如何从头开始学习一个新项目呢。这里我们借助开源项目DatalinkX举例,开源项目都会有比较完善的readme,如果要学习开源项目一定要先仔细看一遍readme描述,会帮助你对这个服务有一个大体的认知。启服务动拿到开源代码后先给导入到IDEA里,先解析pom并下载依赖,如果编译器里出现红线,先解决红线问题。(很多同学在这一步就望而却步了,其实这一步往往都是环境问题导致的,属于最恶心的一步。)项目加载正常之后,冤有头债有主,先找有哪些启动类,换句话说先看哪些模块是作为web服务启动,现在的JavaWeb项目基本都是SpringBoot称霸武林,全局搜(ctronl + shit + f) @SpringBootApplication,这里插播一个面试题,大家都在心里默默回答一遍SpringBoot的启动流程,不会的先别看了,你应该在面试中到不了问项目的地步........搜索完你会发现,在DatalinkX中有两个模块作为服务模块,datalink-server与datalinkx-job,我们打开datalinkx-server的目录就会发现这是一个标准的web服务了,标准的四层模型,Controller、Service、Dao(repository)、Model(bean)如果你看了readme就会发现,这块服务用来跟业务数据库交互的服务,先有一个大体概念。再来看另一个启动模块datalinkx-job,你会发现这个模块跟web服务的四层结构没有一点关系。可能会疑惑没有controller怎么向外暴露入口呢,这时候再结合readme的描述发现使用了xxl-job,去看几篇xxl-job组件的文章就会反应过来,datalinkx-job是作为一个执行器,通过netty的方式暴露接口给xxl-job调度。请求追踪整体对系统有一个大体的业务认知,基于flink的异构数据源流转系统,核心业务就是用来流转数据的,什么是流转数据,说白了就是把A数据源的a库a1表的数据同步流转到B数据源的b库b1表,A和B两个数据源是不同架构的数据源,可以是mysql -> oracle,也可以是ES -> redis。对系统有了大概了解之后根据readme提供的线索配置好yml配置不出意外的话就可以启动起来,选择最简单的业务场景进行debug,创建数据源,通过在DsController里添加端点,一点一点分析调试业务代码。在调试中会发现datalinkx-server使用了其他子模块中的方法,在这个过程中不断扩展对整个服务的业务认知。组件分析很多同学看到服务中使用了各种中间件会心生畏惧,认为没有接触过组件,不知道怎么学或者认为学起来非常麻烦。这块我的建议是先知道这个组件是干什么的,能解决什么问题,再结合业务场景来思考为什么要用这个中间件,用这个中间件解决了什么问题。做到这一步一个项目基本上已经吃的差不多了,应付别人的提问没啥问题,剩下的就是加分项了。架构分析不想当架构师的工程师不是好工程师,虽然听起来挺冠冕堂皇,哥们就是来挣钱的,架构不架构个锤子,要不是想混口饭吃谁研究这玩意。但是不吹还不行,现在都喜欢问点分布式的东西,仔细分析下为什么server和job要分成两个服务启动呢,我们可以把它类比成传统分布式架构master + worker,在部署上我们可以横向扩展job模块来提升系统的性能。这些只是冰山一角,还有更多优秀的设计藏在代码里等你发掘。感兴趣的话可以加入交流群一起学习,如果感觉很吃力的话可以酌情考虑购买文档加入股东委员会。会有独立的股东群里交流项目细节、分享内推岗位、共享大厂笔试面试经验等。Gitee: https://gitee.com/atuptown/datalinkxGieHub: https://github.com/SplitfireUptown/datalinkx
点赞 2
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
08-08 11:37
门头沟学院 Java
不愧是字节,效率就是高
投了立马挂,不想某些公司一直泡池子让你觉得还有希望
投递字节跳动等公司10个岗位
点赞
评论
收藏
分享
08-11 18:21
重庆理工大学 机械结构工程师
互联网大厂这工时排名靠谱吗?
小红书比字节加班还多?
投递字节跳动等公司10个岗位
点赞
评论
收藏
分享
07-23 04:15
沈阳化工大学 Java
25届毕业即失业!
哎,学得太晚了。现在就是半桶水。海投已读不回,读了就是不合适。哎。😭怎么办啊。
想要45码大offe...:
编程语言三个也太猛了
点赞
评论
收藏
分享
06-19 22:53
江西应用科技学院 Java
求实习
大三找实习已老实,boss全是未读+已读不回,来个好心人把我捞走吧
积极的小学生不要香菜:
你才沟通多少,没500不要说难
点赞
评论
收藏
分享
08-13 16:13
哈尔滨工程大学 机械工程师
阿里你让我高攀不起
纯发疯帖,知道阿里bar高,没想到这么高看来是我不配了哈
投递阿里巴巴集团等公司10个岗位
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
总结常用的拖offer的几种话术
3.4W
2
...
26届秋招建议
1.8W
3
...
8月份面经整理的算法高频题集合
1.1W
4
...
小红书前端(已oc)
3900
5
...
字节二面-半技术半聊天?
3861
6
...
快手 秋招 一面
3861
7
...
大家离职都怎么开口的啊?
3760
8
...
8.13快手秋招Java后端二面记录
3596
9
...
小红书笔试
3307
10
...
家里人一直跟我说要给领导买点东西,搞好关系
3254
创作者周榜
更多
正在热议
更多
#
给26届的秋招建议
#
23027次浏览
656人参与
#
我的秋招“寄”录
#
31818次浏览
377人参与
#
实习的内耗时刻
#
35557次浏览
427人参与
#
独居后,你的生活是更好了还是更差了?
#
10220次浏览
159人参与
#
秋招,不懂就问
#
9022次浏览
87人参与
#
你上一次给父母打电话是什么时候
#
10564次浏览
103人参与
#
工作上你捅过哪些篓子?
#
15042次浏览
104人参与
#
你最近一次加班是什么时候?
#
76089次浏览
413人参与
#
规定下班时间vs实际下班时间
#
17268次浏览
133人参与
#
我的AI电子员工
#
11947次浏览
95人参与
#
在职场上,你最讨厌什么样的同事
#
22848次浏览
192人参与
#
如果校招重来我最想改变的是
#
277574次浏览
2885人参与
#
查收我的offer竞争力报告
#
195453次浏览
1290人参与
#
vivo求职进展汇总
#
220970次浏览
1367人参与
#
秋招想进国企该如何准备
#
82171次浏览
446人参与
#
大城市找工作会更容易吗
#
44257次浏览
352人参与
#
你觉得找工作该拿大厂还是小厂练手
#
200622次浏览
1761人参与
#
CVTE求职进展汇总
#
18023次浏览
296人参与
#
得物求职进展汇总
#
104109次浏览
836人参与
#
听劝,这个公司值得去吗
#
504718次浏览
1714人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务