小时候看电视的时候总看到有人内功深厚,天下武功一点就会,武功最后变成无招胜有招。。。
工作后,一些老前辈总是说要练好内功,不要会用个redis就沾沾自喜,花里胡哨的没有用,内功才是根本。
可是什么是内功,内功包含什么,内功有什么用?
内功就是通用的理论和java基础。
觉得我胡说的请举手。
最近我在研读分布式事务,分布式中间件,nacos ,seta,skywalking,zookeep,redis 。rabbimq ,rocketmq ,kafka等的实现原理以及基本springboot原理。
这些中间件都有一些通用的内功。
分布式中间件
这类的中间件,一旦带分布式,就要涉及网络,基本上依据netty做基础就没远跑了,netty有用到java nio 零拷贝,池化技术。还有一致性,可用性,锁的技术。CAS,juc的妙用。
springboot
springboot的绝妙start就是java spi的延伸而已。有什么可豪横的
mybatis
mybatis明明一个接口,一个mapper.xml文件,怎么就运行了呢?这不是反java吗,java不是不能接口实例化吗?人家用的动态代理哟,没有想到吧。
nacos
nacos明明就一个声明,怎么就实现了强大功能了?监听Springboot bean加载完消息 你要了解一下。
rpc
rpc的实现明明就是一个声明(feign)或者只是在xml配置一下(dubbo),怎么就能连接到另外一个机器了。动态代理再了解一下。
springcloud
springcloud到底做了什么。springcloud只是一个规范。如果springcloud只是一个规范,怎么会有springcloud包。因为那个包里实现了规范,如果你接入就要符合那个包里的规范。我不想全遵守怎么办,不想那就学阿里,怎么实现一套喽。
学完了一套的中间件,我发现确实用的都是一些java的基本功能。这些也都是我上大学的时候学过的。但是我上大学的时候也不知道怎么用啊,这些内功学完上大学后也没见怎么高大上啊。
因为学内功就是一个屁话。老老实实学中间件
因为学内功就是一个屁话。老老实实学中间件
因为学内功就是一个屁话。老老实实学中间件
是不是看到上面说的话觉得很有道理可以又觉得无从下手啊。中间件浩如烟海,代码更是动不动上万行,岂不是还没有学就吓到了。
别急。我给你一个思路。
- 学习 juc,网络编程,这些知道有印象就OK了,因为学完就忘记了
- 学习 netty。这个也不不要学太深入,因为太深入会吓到你。能实现一个聊天功能就OK
- 学习java spi。然后延伸到spring boot的start的学习
- 学习手撸中间件,关注我,手撸中间件正在推出中。我可以推荐几个简单的实现,比如手撸消息中间件,avatormq kclient从这些中间件中你可以巩固复习以前学的东西。
- 学习更多的标准的中间件 rocketmq zookeeper之类的。这些要买书了
- 学习alibaba springcloud
努力学习。一起学习
多动手,多用,你就是未来YYDS
多动手,多用,你就是未来YYDS
多动手,多用,你就是未来YYDS