随笔分类 -  面试专用

1 2 3 下一页

摘要:分布式服务的接口幂等性如何设计? 通过Token和Redis来实现接口幂等性。用户操作时,系统生成一个Token并存储在Redis中,当用户提交操作时,系统会验证Token的存在性,并在验证通过后删除Token,确保每个Token只被处理一次。 元宝解析: 接口幂等性是分布式系统设计中一个至关重要的 阅读全文

posted @ 2025-11-06 11:26 黑子菜园 阅读(11) 评论(0) 推荐(0)

摘要:undo log和redo log的区别是什么? 候选人:redo log记录的是数据页的物理变化,用于服务宕机后的恢复,保证事务的持久性。而undo log记录的是逻辑日志,用于事务回滚时恢复原始数据,保证事务的原子性和一致性。 事务中的隔离性是如何保证的呢?(你解释一下MVCC) 候选人:事务的 阅读全文

posted @ 2025-11-06 10:57 黑子菜园 阅读(18) 评论(0) 推荐(0)

摘要:超大分页通常发生在数据量大的情况下,使用LIMIT分页查询且需要排序时效率较低。 可以通过覆盖索引和子查询来解决。首先查询数据的ID字段进行分页,然后根据ID列表用子查询来过滤只查询这些ID的数据,因为查询ID时使用的是覆盖索引,所以效率可以提升。 阅读全文

posted @ 2025-11-06 10:49 黑子菜园 阅读(8) 评论(0) 推荐(0)

摘要:可以跟上一篇“MySQL内置的InnoDB的索引结构“结合起来看 了解过索引吗?(什么是索引) 索引在项目中非常常见,它是一种帮助MySQL高效获取数据的数据结构,主要用来提高数据检索效率,降低数据库的I/O成本。同时,索引列可以对数据进行排序,降低数据排序的成本,也能减少CPU的消耗。 索引的底层 阅读全文

posted @ 2025-11-06 10:39 黑子菜园 阅读(43) 评论(0) 推荐(0)

摘要:MySQL中,如何定位慢查询? MySQL本身也提供了慢查询日志功能。可以在MySQL的系统配置文件中开启慢查询日志,并设置SQL执行时间超过多少就记录到日志文件,比如我们之前项目设置的是2秒,超过这个时间的SQL就会记录在日志文件中,我们就可以在那里找到执行慢的SQL。 那这个SQL语句执行很慢, 阅读全文

posted @ 2025-11-06 10:35 黑子菜园 阅读(24) 评论(0) 推荐(0)

摘要:1、MyBatis执行流程? 读取MyBatis配置文件mybatis-config.xml。 构造会话工厂SqlSessionFactory。 会话工厂创建SqlSession对象。 操作数据库的接口,Executor执行器。 Executor执行方法中的MappedStatement参数。 输入 阅读全文

posted @ 2025-11-06 10:19 黑子菜园 阅读(6) 评论(0) 推荐(0)

摘要:- 讲一下网络的七层模型 - TCP IP在哪一层? - TCP四次挥手讲一下 - TIME_WAIT状态是客户端还是服务端? - 为什么有TIME_WAIT状态 - 利用TIME_WAIT 会存在什么安全攻击问题? 以下是回答: 阅读全文

posted @ 2025-10-31 14:48 黑子菜园 阅读(6) 评论(0) 推荐(0)

摘要: 阅读全文

posted @ 2025-10-31 14:41 黑子菜园 阅读(6) 评论(0) 推荐(0)

摘要:1,先解释什么是单点登录:单点登录的英文名叫做:Single Sign On(简称SSO) 2,介绍自己项目中涉及到的单点登录(即使没涉及过,也可以说实现的思路) 3,介绍单点登录的解决方案,以JWT为例 I. 用户访问其他系统,会在网关判断token是否有效 II. 如果token无效则会返回40 阅读全文

posted @ 2025-10-30 17:43 黑子菜园 阅读(13) 评论(0) 推荐(0)

摘要:面试官:谈谈你对ThreadLocal的理解 候选人: ThreadLocal 主要功能有两个, 第一个是可以实现资源对象的线程隔离,让每个线程各用各的资源对象,避免争用引发的线程安全问题, 第二个是实现了线程内的资源共享 面试官:好的,那你知道ThreadLocal的底层原理实现吗? 候选人: 在 阅读全文

posted @ 2025-10-30 10:55 黑子菜园 阅读(34) 评论(0) 推荐(0)

摘要:XA模式:强一致性。一阶段准备事务,不释放持有的资源,二阶段提交或回滚,释放资源。无代码侵入 AT模式:最终一致性,seata默认使用。一阶段直接提交,不锁定资源,利用数据快照实现数据回滚。无代码侵入 TCC模式(try、confirm、cancel):最终一致。一阶段直接提交事务,释放数据库资源, 阅读全文

posted @ 2025-06-30 10:50 黑子菜园 阅读(92) 评论(0) 推荐(0)

摘要:1、两个人同时打开了一个表单,A先修改完成并提交成功了,B没有刷新页面,也做了修改数据并提交。 问:如何保证数据一致性,即A的修改不会被B覆盖 解决方案:使用乐观锁。表里增加版本号字段,更新的时候根据版本号来(也可以用时间戳,只是存在精度问题) 2、假设一张表有姓名、分数、课程三个字段,如何查出所有 阅读全文

posted @ 2025-05-29 23:08 黑子菜园 阅读(251) 评论(0) 推荐(0)

摘要:结论:limit offset,size比limit size要慢,且offset值越大,sql的执行速度越慢。 当offset过大,会引发深度分页的问题,目前不管是mysql还是elasticsearch都没有很好的方法去解决这个问题,只能通过限制查询数量或 分批获取的方式进行规避。 大部分时候是 阅读全文

posted @ 2022-06-08 11:06 黑子菜园 阅读(393) 评论(0) 推荐(0)

摘要:总结:1、尽量让数据都保留在filesystem os cache文件系统操作缓存里,查询速度是毫秒级的; 2、数据预热(跟前一个一样,也是留在cache里),冷热分离(存在不同的shard分片上) 3、数据写入es的document文件前,在java逻辑里先处理好类似联表的操作,后续直接拿docu 阅读全文

posted @ 2022-06-06 17:27 黑子菜园 阅读(4351) 评论(0) 推荐(0)

摘要:一、ES写数据的大致步骤: [客户端 ] 请求 > [ 协调节点] hash一下数据 > [primary shard ] 同步数据 > [ replica shard] ^ | | 通知协调节点 | 1、客户端发送请求过来一条数据(document) 随机选择集群中的一个节点Node2(此时Nod 阅读全文

posted @ 2022-06-06 00:11 黑子菜园 阅读(2046) 评论(0) 推荐(0)

摘要:1、倒排索引:Lucene检索库 2、基于Lucerne 的分布式搜索引擎elasticSearch 核心思想就是在多台机器上启动多个es进程实例,组成一个es集群。 (1)搞一个索引(索引是es存储数据的基本单位,创建索引的时候可以设置分片的数量),将索引拆分成多个shard分片,每个shard存 阅读全文

posted @ 2022-05-30 17:29 黑子菜园 阅读(558) 评论(0) 推荐(0)

摘要:一、Java虚拟机内存区域 Java虚拟机运行时数据区包括几部分内存:方法区、Java堆、虚拟机栈、本地方法栈、程序计数器 1、程序计数器:线程私有的内存区域 字节码解释器工作时就是通过改变程序计数器的值来选取下一条需要执行的字节码指令。 多线程就是通过线程轮流切换并分配处理器执行时间的方式来实现的 阅读全文

posted @ 2022-05-16 11:23 黑子菜园 阅读(66) 评论(0) 推荐(0)

摘要:Eureka服务注册中心 Config服务配置中心 Ribbon客户端负载均衡 Zuul 服务网关 Hytrix 容错处理,保护系统,控制故障范围 扩展: 1、eureka跟nacos的异同: 共同点:(1)都支持服务注册和服务拉取;(2)都支持服务提供者心跳方式做健康检测; 区别:(1)nacos 阅读全文

posted @ 2022-04-19 18:03 黑子菜园 阅读(27) 评论(0) 推荐(0)

摘要:1、配置 Web.xml配置url的匹配规则,及spring主配置文件的加载路径,配置注解@controller @service @AutoWired @RequestMapping 2、初始化 加载并解析配置信息、IOC容器、DI操作,HandlerMappingde初始化 Web容器调用dis 阅读全文

posted @ 2022-04-19 18:01 黑子菜园 阅读(36) 评论(0) 推荐(0)

摘要:第一范式1NF:无重复的域(原子性) 第二范式2NF:在1NF基础上,表中每个记录必须可以被唯一区分(主键的概念)2NF要求实体的属性完全依赖于主关键字 第三范式3NF:3NF是2NF的一个子集,任何非主属性不得传递依赖于主属性。 阅读全文

posted @ 2022-04-19 17:44 黑子菜园 阅读(100) 评论(0) 推荐(0)

1 2 3 下一页

导航