Day269,linux高级编程面试题

  • 热点key的问题如何解决?一旦发生热点key的情况,很有可能产生量倾斜,这就会导致,特定的几台机器压力特别大,甚至导致redis宕机,引发缓存雪崩,巨额流量涌入关系型数据库,就有可能导致核心链路发生故障。

3、 对于热门商品读请求的几种方案


  • 检查热点SKU名单,将对于热点请求的数据进行,一主多从+哨兵的redis集群架构,有多个从主机负责处理读请求。

  • 在redisCluster集群架构下,利用flink,storm等的实时计算技术,对这SKU进行热点感知,只要是热点品就将数据同步给多台master,并改变lua脚本的执行请求路由的策略。

4、对于热门商品读写请求几种方案


  • 升级redis单机硬件

  • 采用多级缓存策略

即每台服务器上,设置一个访问计数器,每隔一段时间将累加器里的数据和redis中的数值相加并将相加后的值刷入本地缓存,那么每次用户读请求过来就是读每台机器上的本地缓存了,这样做的坏处是关于热点SKU的一些数据展示给用户的信息,都不是实时的。


二、瞬时高流量下,Mysql查询缓慢原因

==============================================================================

1、一些硬件知识


市面上常见的硬盘有:

  • 机械硬盘(Hard Disk Drive,HDD)

  • 固态硬盘(Solid State Drive,SSD)

本次主要向大家讲解机械硬盘的相关知识,机械硬盘的大致结构如下图↓:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZBFRL6bO-1621169866268)(http://qskpmm1b6.hn-bkt.clouddn.com/20210516200206.png)]

可以看到,一个磁盘最主要的是由多个盘片组成,且每个盘片又由两个盘面组成,每个盘面上都有一个读写磁头


下面近距离地看看盘片的构成,如下图↓所示:

image-20210516200606585

这东西是不是有点像过去使用的蚊香片呢?那一层层的灰色圆环被称为磁道,磁道上的那个绿色弧段部分,被称为扇区,从硬件层面来说,扇区是我们读写文件的最小单位,一般扇区的大小是512字节,也有4096字节的,但是在系统层面是以一个磁盘块为最小的读写单位,一般一个磁盘块大小为4096字节,如果是512字节的扇区磁盘,那么一个磁盘块,就是由8个连续的扇区组成。


2、磁盘IO操作的时间的影响因素


决定磁盘Io速度的一些主要因素:

  1. 寻道时间: 将读写磁头移动至正确的磁道上所需要的时间,这部分是IO读写效率的最核心因素,我们开发时最应该掌控的也应该是这一块内容了,所谓的磁盘顺序读写就是极大的减少了磁头所要移动的磁道数量,磁盘的平均寻道时间一般在3-15ms,一般都在10ms左右。

  2. 旋转延迟时间: 盘片将目标扇区移动到读写磁头下方所需要的时间,取决于磁盘的运转速度。

  3. 数据传输时间:完成传输数据所需要的时间。

其中后两个因素我们平时不需要去关注,第一点尤为关键。

我们如果自己开发中间件系统的话,就要去多多考虑这种因素。


3、Innodb存储引擎的索引树结构


为了增强mysql数据查询效率就会根据不同的业务建立不同的索引

如图↓:

image-20210516201313014

假设要搜索元素14就只能把这个链上的数据都给遍历一遍也就是O(N)的时间复杂度,而且我们在做一个假设,就是你遍历一个节点都要在磁盘上读取,如果现在有几百万条数据,怎么玩的话你想想是一个什么样的结果


那么如果把它变为二叉树会怎么样呢?如图↓:

image-20210516201446752

可以看到如果用二叉树的数据结构将这些节点组织起来,基本上可以天然的过滤掉一半的数据读写就能定位到,我们要的数据了。


看上去好像挺不错的,但是如果发生下图↓一类的情况呢?

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

15289)]
[外链图片转存中…(img-eGyntcuN-1710782915289)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[外链图片转存中…(img-xeQzDZhU-1710782915290)]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值