最牛逼的 Java 框架,没有之一
有个读者是小作坊走出来的小猿,项目经验并不出彩,没有高并发、分布式经验,公司的前端、后台、服务器和数据库都部署在同一台机器上。面试时为了不显得自己太low,不经意间提了提在GitHub上有自己的开源框架,但是面试官似乎并不care。
面试中被问到了著名的redis哲学三连,“是什么?为什么?怎么用?”
不得不把肚子里仅有的关于Redis的知识都搜刮了一遍,仍然没有给出面试官想要的答案。这还不够,被继续追问Redis的数据存储方式、操作方法、读写操作在底层都是如何实现的。
除了低头委屈说不会,此时已经意识到了自身能力的严重缺失。平常只要坦白一点,对方会给个台阶下。这次都快被搞哭了,也没见面试官手下留情……
接着就是心理防线基本被攻破,追问索引的实现原理,创建一个索引怎么能加快查询效率。
结果也猜到了,只能再一次厚着脸皮主动承认答不出来,走回家已经是浑浑噩噩飘飘忽忽。
大家也知道平时只泛泛读一些技术书籍、技术文章,根本很难抓住技术的本质,干了三五年之后,感觉并没有积累到什么,跟刚毕业的大学生能力差不多。本质原因,是没有辨析清楚自己应该积累究竟是什么样的能力。
以Mybatis、Redis、JVM、springCloud为例,这些作为互联网面试必备的技术点,其底层原理及源码实现是必须要细过的知识点。
Mybatis相信很多人都会使用,但是当Mybatis整合到了Spring中发现在Spring中使用更加方便了。Spring在整合Mybatis时候做了哪些封装,以及做了哪些拓展,又是怎么实现这些封装以及拓展的?
Redis在互联中有大量的使用,根据业务的不同,其使用上也有所不同,但一般都有数据存储和缓存的一致性问题。在解决完Redis缓存穿透的问题后,缓存一致性的问题也需要着重考虑。
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。
CPU长期不足3%,系统吞吐量不够。在CPU负载不足的同时,偶尔会有用户反映请求的时间过长,我们意识到必须对程序及JVM进行调优。
评论