走进Java架构!从单体式架构迁移到微服务架构,全网疯传

前言

不知道大家有没有这样的经历,明明感觉自己这个技术掌握的还行,能写在简历里肯定是有点自信的,但是被面试官一问,就感觉啥也不是

当我从面试的大楼里出来的时候脑袋里还是昏昏沉沉的,你压根不知道我经历了什么,我就面试一个开发岗位,有必要问我这么多

后来咨询了一下我在阿里的师兄,他是这么说的:现在的就业竞争很激烈,在考察技术的时候不单单是停留在应用层面,底层的原理你也要有所了解,这样在遇到不可控问题的时候你才能游刃有余的解决掉。
跟他谈了蛮久,了解到我一些问题后,直接给了我一份他的学习笔记,让我回去用两个星期啃完,大家一起来看看吧
由于篇幅影响,只展示一下大概内容吧

Spring技术内幕深入解析Spring架构与设计原理

Spring核心实现

image

1、为什么使用redis

分析:博主觉得在项目中使用redis,主要是从两个角度去考虑:性能并发。当然,redis还具备可以做分布式锁等其他功能,但是如果只是为了分布式锁这些其他功能,完全还有其他中间件(如zookpeer等)代替,并不是非要使用redis。因此,这个问题主要从性能和并发两个角度去答。
回答:如下所示,分为两点
(一)性能
如下图所示,我们在碰到需要执行耗时特别久,且结果不频繁变动的SQL,就特别适合将运行结果放入缓存。这样,后面的请求就去缓存中读取,使得请求能够迅速响应

题外话:忽然想聊一下这个迅速响应的标准。其实根据交互效果的不同,这个响应时间没有固定标准。不过曾经有人这么告诉我:“在理想状态下,我们的页面跳转需要在瞬间解决,对于页内操作则需要在刹那间解决。另外,超过一弹指的耗时操作要有进度提示,并且可以随时中止或取消,这样才能给用户最好的体验。”
那么瞬间、刹那、一弹指具体是多少时间呢?
根据《摩诃僧祗律》记载

一刹那者为一念,二十念为一瞬,二十瞬为一弹指,二十弹指为一罗预,二十罗预为一须臾,一日一夜有三十须臾。

那么,经过周密的计算,一瞬间为0.36 秒,一刹那有 0.018 秒.一弹指长达 7.2 秒。
(二)并发
如下图所示,在大并发的情况下,所有的请求直接访问数据库,数据库会出现连接异常。这个时候,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问数据库。

2、使用redis有什么缺点

分析:大家用redis这么久,这个问题是必须要了解的,基本上使用redis都会碰到一些问题,常见的也就几个。
回答:主要是四个问题
(一)缓存和数据库双写一致性问题
(二)缓存雪崩问题
(三)缓存击穿问题
(四)缓存的并发竞争问题

总结

这个月马上就又要过去了,还在找工作的小伙伴要做好准备了,小编整理了大厂java程序员面试涉及到的绝大部分面试题及答案免费分享给大家,希望能帮助到大家,有需要的朋友可以看下面的免费领取方式

资料领取方式:狂戳这里

在这里插入图片描述

在这里插入图片描述

18632061992)]

[外链图片转存中…(img-ewwCoeKu-1618632061993)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值