- 博客(6)
- 收藏
- 关注
原创 kafka原理
不过当消息量巨大的时候这个映射也会变很大,kafka 维护的是一个稀疏索引(sparse index),即不是所有的消息都有一个对应的位置,对于没有位置映射的消息来说,一个二分查找就可以解决了。为了能够快速定位给定消息在日志文件中的位置,一个简单的办法就是维护一个映射,key 就是消息的偏移量,value 就是在日志文件中的偏移量,这样只需要一次文件读取就可以找到对应的消息了。其中一项就是消费者的再均衡。消息在 kafka 的存储是分多个分区的,那么消费者消息分区的消息也就有一个分区分配策略。
2024-03-15 16:37:23 1735
原创 高级java开发工程师面试题之----mysql
客户端通过连接器链接,然后分析器分析sql,优化器youhuasql再通过执行器执行,最后更新存储引擎。
2024-03-14 22:10:21 1815
原创 高级java开发工程师面试题之-----redis篇
每隔一定的时间,会扫描一定数量的数据库的expires字典中一定数量的key,并清除其中已过期的key。有了以上过期策略的说明后,就很容易理解为什么需要淘汰策略了,因为不管是定期采样删除还是惰性删除都不是一种完全精准的删除,就还是会存在key没有被删除掉的场景,所以就需要内存淘汰策略进行补充。每进行一次redis操作的时候,redis都会检测可用内存,判断是否要进行内存淘汰,当超过可用内存的时候,redids 就会使用对应淘汰策略。缓存雪崩:大批量的热点key过期,大批量的没有被缓存的数据。
2024-03-13 22:15:03 452
原创 高级java开发工程师面试题之-----JVM篇
1、JVM怎么加载class文件的老规矩 先上图(不懂得先背图,图比源码好背多了)1、JVM怎么加载class文件的步骤如下加载-》验证-》准备-》-识别-》初始化-》使用-》销毁,加载:将各种数据源(可能是 class 文件、也可能是 jar 包,甚至网络)class字节码转化为二进制字节流(符合方法区域数据结构)加载到内存中并生成一个class对象BootStrampClassLoader:加载JAVA_HOME下lib目录中的如rt.jar。
2024-03-13 17:10:51 875
原创 高级java开发工程师面试题-Spring篇
以下问题是本人以及同事面试中遇到的一些问题,记录分享给大家,希望每个人都能拿到自己期望的offer 1spring bean的生命周期为了方便大家理解 这里提供两张图,第一张是粗略图 第二张比较详细。大家根据各自的情况选择这里针对第二张图进行详细解析(一般来说先给面试官解释第一张图,第二张给面试官留坑,等他详细问)1.1第一步:定义一个类,该类必须实现BeanNameAware接口public class User im
2024-03-13 16:01:39 1626
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人