
面试
文章平均质量分 78
言之。
点一盏洁白的灯, 照一照漆黑的眠。
展开
-
十亿非法Key攻击,如何防止缓存穿透?
缓存穿透问题- **概念**:缓存穿透是指大量请求访问系统中不存在的数据,这些请求绕过缓存直接打到数据库上,导致数据库压力过大甚至崩溃。在面对十亿非法 Key 攻击时,这种情况会更为严重。- **危害**:由于缓存中没有这些非法 Key 对应的数据,每次请求都要查询数据库,若攻击请求量大,会使数据库负载过高,影响系统的可用性和性能。- **总结**:缓存穿透是一种因非法数据请求导致数据库压力过大的问题,理解其概念和危害是后续探讨解决方案的基础。原创 2025-02-17 21:44:30 · 11163 阅读 · 0 评论 -
SQL优化方式
程序员在实际开发中常用的八种 SQL 优化方式,包括避免 select *、小表驱动大表、用连接查询代替子查询、为 group by 字段设置索引、批量插入、使用 limit 及优化大翻页场景、能用 union all 就不用 union、join 的表不宜过多,并强调 SQL 调优多在索引调优基础上进行,还提到了 MySQL 高级优化需掌握的知识。原创 2025-02-09 20:58:51 · 11145 阅读 · 0 评论 -
秒杀系统设计总结
系统架构1. **微服务架构**:将复杂的秒杀系统拆分为多个独立的微服务,如用户服务、商品服务、订单服务、秒杀服务等。每个微服务专注于特定业务功能,降低系统耦合度,便于独立开发、测试和维护。通过负载均衡器(如Nginx)将用户请求均匀分发到各个微服务实例,确保负载均衡。同时,利用服务注册与发现组件(如Eureka、Zookeeper),实现微服务实例的动态管理,提高系统的可用性和可扩展性。2. **分布式部署**:在多个数据中心部署服务,这样当某个数据中心出现故障时,其他数据中心仍能继续提供服务,极大地原创 2025-02-09 20:49:12 · 10035 阅读 · 0 评论 -
面试高频题拆解
该视频主要围绕面试高频题,详细拆解了各题型的答题思路、考点、常见错误及应对技巧,为求职者提供了实用的面试指导。原创 2025-02-09 20:41:18 · 11132 阅读 · 0 评论 -
面试与项目汇报深度指南
面试或项目汇报时,深度展现至关重要。它不仅体现个人能力,还决定能否脱颖而出或获得认可。原创 2025-02-09 20:31:48 · 11284 阅读 · 0 评论 -
应对亿级流量的高并发场景
● 服务监控:建立完善的监控体系,对系统的各项指标如CPU使用率、内存使用率、响应时间、吞吐量等进行实时监控,及时发现和解决系统中的问题。○ 数据库中间件:使用MyCAT、ShardingSphere等数据库中间件,实现读写分离的自动化路由和数据管理,使应用层无需关心底层数据库的细节。○ 水平分表:将单表数据按照一定规则,如时间、ID哈希等,分散到多个表中,以减少单表数据量,提高查询性能。● 浏览器缓存:设置合理的缓存策略,让浏览器缓存一些常用的静态资源,减少重复加载,提高用户体验。原创 2025-02-09 11:34:45 · 11511 阅读 · 0 评论 -
使用redis实现 令牌桶算法 漏桶算法
流量控制算法,用于限制请求的速率。可以应对缓存雪崩。原创 2025-02-08 18:29:49 · 11378 阅读 · 0 评论 -
描述工作项目的难点和亮点
在描述自己在软件架构上的难点时,应该突出自己如何应对复杂的技术挑战、如何在技术选型、系统设计等方面做出决策。而在亮点部分,可以强调自己在架构中做出的创新,如何提升了系统的性能、可扩展性、可维护性,或者如何在项目中发挥了领导作用。通过具体实例来展示自己的能力,能够让面试官或评审更好地理解你的技术深度和解决问题的能力。原创 2025-02-07 12:22:24 · 11355 阅读 · 0 评论 -
【Spark速通】
Spark提供多种运行模式,包括local模式、stand alone模式和on yarn模式。local模式用于本地单机测试,若代码在该模式下运行通过,可提交到其他模式。stand alone模式需搭建Spark集群,代码提交到集群运行。若没有Spark集群,只有Hadoop集群,则可使用on yarn模式提交代码运行。原创 2025-01-29 23:48:25 · 11262 阅读 · 0 评论 -
解决幂等问题的4种方案
因辅助表字段唯一约束,并发操作时只有一个能成功插入,其他会抛出异常,以此保证业务操作幂等性。经100次并发压测,该方案解决了幂等性问题,被认为是通用方案,可在项目框架搭建初期推广。:先判断订单是否处理过,未处理则开启事务,获取订单当前版本号。更新时将状态置为成功且版本号加一,条件是当前版本号等于期望版本号,根据执行结果影响行数判断是否成功,成功则给账户加钱。加锁成功后再次判断业务是否执行,未执行则执行业务并释放锁;,将status设为1且条件为原状态是零,根据影响行数判断执行结果,成功则给账户加钱。原创 2025-01-29 10:56:18 · 11019 阅读 · 0 评论 -
【架构面试】三、高可用高性能架构设计
架构原理、分布式技术等是面试必考领域,高可用高性能需求考察频繁。面试常通过询问系统架构设计来考察能力,讲解架构设计过程就是证明系统高可用的过程,其中涉及SLA指标。原创 2025-01-25 21:28:27 · 11952 阅读 · 0 评论 -
Kafka 如何实现高性能
分布式架构与分区机制提高并行处理能力。顺序写入磁盘与批量处理减少 I/O 延迟。压缩与零拷贝提升网络和存储的效率。副本机制与消费者分组保证高可用性与吞吐量。流控与负载均衡保障系统在高并发下的稳定性。这些设计使得 Kafka 能够在大规模、高吞吐量、低延迟的场景中发挥出色的性能。原创 2025-01-25 21:03:35 · 11643 阅读 · 0 评论 -
【架构面试】二、消息队列和MySQL和Redis
消息从生产到消费分为生产、存储、消费三个阶段。生产阶段处理好返回值和异常可避免丢失;存储阶段由MQ保证,如broker做副本;消费阶段接收消息后执行完业务逻辑再确认可防止丢失。:在生产端给消息指定消息版本号,通过拦截器注入消息;消费端用拦截器检测版本连续性或消费状态,实现不侵入业务代码的消息检测。原创 2025-01-25 21:01:36 · 11619 阅读 · 0 评论 -
MQ的可靠消息投递机制
确保消息可靠投递:消息持久化、确认机制、幂等性设计。防止消息丢失与重复消费:重试机制、死信队列、幂等性设计。保证消息顺序性:分区机制、队列顺序。扩展能力:消费者扩展、积压管理、限流。监控与报警:消息延迟、积压、消费速率等指标的监控。原创 2025-01-25 20:53:07 · 11663 阅读 · 0 评论 -
【架构面试】一、架构设计认知
涉及分布式锁、中间件、数据库、分布式缓存、系统高可用等多个技术领域,旨在考查候选人的技术深度、架构设计能力与解决实际问题的能力。用 Redis 实现分布式锁会存在哪些问题?Redis 如何实现多节点之间的数据一致性?如何回答实现一个 RPC 框架?MQ 如何实现消息的不丢失、不重复消费以及积压等问题?架构师视角面试要点系统复杂度分析方法点评系统架构方案设计架构方案评估标准技术实现与面试总结分布式面试与CP理论重要性:在互联网技术面试里,分布式技术是必考内容,尤其在一线互联网公司对候选人的要求中,分布式系统设原创 2025-01-25 18:21:34 · 11932 阅读 · 0 评论 -
【面试题】 Java 三年工作经验(2025)
1. 为什么选择 spring boot 框架,它与 Spring 有什么区别?2. spring mvc 的执行流程是什么?3. 如何实现 spring 的 IOC 过程,会用到什么技术?4. spring boot 的自动化配置的原理是什么?5. 如何理解 spring boot 中的 star?6. spring boot 为什么要用嵌入式的 web 容器?原创 2025-01-23 00:30:17 · 11222 阅读 · 0 评论 -
【面试】Java 记录一次面试过程 三年工作经验
方法中,首先获取当前线程,然后获取线程的。实例作为键,要设置的值作为值存入。方法类似,先获取当前线程的。实例作为键获取对应的值。不存在则创建,接着将。原创 2025-01-23 00:07:10 · 10263 阅读 · 0 评论 -
【面试题】Java 多线程编程基础知识
通过对这些多线程编程基础知识的理解和掌握,可以更好地编写高效、稳定的多线程程序。原创 2025-01-23 00:00:07 · 11970 阅读 · 0 评论 -
【面试题】java基础概念
通过以上原理,JIT编译器能够在Java程序运行时,动态地对热点代码进行优化编译,将字节码转换为高效的本地机器码,从而显著提高Java程序的执行性能,使其能够在性能上与一些传统的编译型语言相媲美。原创 2025-01-22 23:57:55 · 11939 阅读 · 0 评论 -
【面试题Java】单例模式
为了防止反射和反序列化破坏单例,可以在单例类的私有构造函数中添加逻辑,判断是否已经创建过实例,如果是则抛出异常。对于对象克隆,可以重写。方法,返回单例实例而不是创建新的实例。对于枚举类型的单例,由于其本身的特性,天然防止了反射、反序列化和对象克隆的破坏。原创 2025-01-22 23:54:24 · 10408 阅读 · 0 评论 -
【面试常见问题】
求职者朱晓明虽表明自己善于交际、积极,23 年毕业且从事 java 开发,但只是罗列基本信息和性格特点,未突出对公司的价值与自身优势,显得平淡普通,难以引起面试官兴趣。阐述工作热情来源:讲述在阿里实习获得单独项目,掌控设计与编码,积累经验并接触新技术,从而爱上后端开发工作。突出工作经验与成果:有 3 年经验,在现公司构建数十种应用,助力公司基础设施现代化、自动化,涉及 CICD 构建微服务、更新现有微服务及相关技术运用。总结自身价值。原创 2025-01-22 23:50:08 · 10499 阅读 · 0 评论 -
【Java】内存相关面试题
是自动化内存管理的一部分,用于回收程序中不再使用的对象并释放其占用的内存。Java中的垃圾回收器主要负责回收堆内存中不再被引用的对象,避免内存泄漏,确保应用程序的内存管理高效。Java的垃圾回收机制主要依赖于 JVM 来自动进行对象的内存管理。它会定期扫描堆内存,标记不可达的对象,并回收其占用的内存。Java的垃圾回收采用的是。原创 2025-01-22 13:50:59 · 10028 阅读 · 0 评论 -
【Java】面试中遇到的两个排序
快速排序是一种高效的排序算法,特别适用于大数据集。尽管最坏情况下时间复杂度是O(n^2),但通过选择合适的基准和优化策略,快速排序在实际应用中表现通常非常好。归并排序是一种稳定且高效的排序算法,特别适合于大数据量的排序。它的时间复杂度为O(n log n),在最坏情况下也能保持较好的性能。不过,它的空间复杂度较高,需要额外的空间来存储临时数组。在实际应用中,归并排序适用于处理大规模数据集的排序。原创 2025-01-22 10:17:15 · 10551 阅读 · 0 评论 -
【Hadoop面试题2025】
Hadoop的NameNode负责管理所有文件和目录的元数据,如果存在大量小文件,会导致NameNode存储的元数据量急剧增加,最终可能导致内存不足,影响整个集群的稳定性。例如,使用文件的最后访问时间,周期性检查是否存在超过N个月未访问的冷文件,并采取清理或迁移策略。:系统中存在一些过时的数据,可能是某个时间段的备份文件,或者已经过期的日志文件、报表数据等,这些文件可能不会再被频繁访问。对于大数据处理框架,可以通过设置不同的存储层级,保证频繁访问的数据和冷数据的分离,避免冷数据影响热数据的处理效率。原创 2025-01-18 20:57:41 · 10896 阅读 · 0 评论 -
【大数据2025】MapReduce
-**起源与发展**:是2004年10月谷歌发表的MAPREDUCE论文的开源实现,最初用于大规模网页数据并行处理,现成为Hadoop核心子项目之一,是面向批处理的分布式计算框架。-**基本原理**:分为map和reduce两个阶段。map阶段将计算任务分发到数据节点并行运算,各节点得出部分结果;reduce阶段汇总部分结果得到最终结果,体现分而治之与并行运算思想,遵循计算跟着数据走、移动计算而非数据的原则。原创 2025-01-18 20:32:34 · 10642 阅读 · 0 评论 -
【大数据2025】Yarn 总结
Yarn是分布式通用资源管理系统,处于通用计算和数据存储中间位置。解决了MapReduce的问题,使资源调度更精细且通用性增强,可调度多种计算框架作业到HDFS运行,同时对MapReduce单点故障率高的问题也有相应解决措施(后续内容应会提及具体架构优化方式)。架构组成:高可用架构由多台主节点构成,其中一台主节点处于active管理状态,其余为standby热备状态。状态决策机制:主节点间状态由zookeeper管控。原创 2025-01-18 19:52:10 · 10475 阅读 · 0 评论 -
【大数据2025】Hadoop 万字讲解
定义:为满足海量数据存储与计算的技术或架构。4V特征数据规模巨大(Volume):如达到10PB、50PB等海量规模。数据生成和处理速度快(Velocity):如鞋厂2017年每天数据增量100TB,且需快速处理。数据多样性(Variety):涵盖结构化、非结构化和半结构化数据,互联网时代后两者占比更高。价值(Value):海量数据挖掘价值高,与人工智能结合潜力大,但价值密度低,因数据量庞大稀释了价值。满足这四个特征的场景即为大数据场景,也称大数据的4V特性。原创 2025-01-18 18:33:40 · 10933 阅读 · 0 评论 -
【k8s面试题2025】3、练气中期
一、可能的报错原因端口冲突原因当你为 Service 定义自定义端口时,可能会出现该端口与集群内其他服务使用的端口冲突的情况。这可能是因为选择了一个已经被其他 Service 或节点上的其他进程占用的端口号。例如,你在一个 Service 中设置端口为 8080,而另一个 Service 或者节点上的某个服务已经在使用 8080 端口进行通信,这样就会导致冲突。解决方法首先,使用检查集群中现有的服务端口,确保选择的自定义端口未被使用。可以使用或ss -tuln。原创 2025-01-16 22:55:09 · 11583 阅读 · 0 评论 -
【k8s面试题2025】2、练气初期
当需要在节点上运行一些特殊的监控工具或者管理工具容器时,静态Pod是一个很好的选择。例如,一个用于收集节点硬件信息的监控容器,将其作为静态Pod运行可以保证它在节点上持续运行,并且可以通过自定义的配置文件来灵活调整其运行参数。原创 2025-01-16 22:38:18 · 11602 阅读 · 0 评论 -
【k8s面试题2025】1、练气期
【代码】【k8s面试题2025】1、基础。原创 2025-01-16 21:42:41 · 10212 阅读 · 0 评论 -
k8s 的网络问题进行检查和诊断
通过以上步骤,可以从多个方面对 k8s 的网络问题进行检查和诊断,根据具体的检查结果,可以进一步深入分析和解决问题,确保 k8s 集群的网络正常运行。不同的网络问题可能需要不同的解决方法,可能涉及网络组件的重新配置、调整网络策略、修复 DNS 服务或修复网络接口等操作。原创 2025-01-16 13:34:14 · 10159 阅读 · 0 评论 -
k8s 集群组件
请注意,不同的 Kubernetes 版本和部署环境可能会有一些细微的差异,但上述核心组件及其功能基本相同。同时,在生产环境中,可能会有额外的组件或插件,如网络插件(Calico、Flannel 等)、存储插件(Ceph、NFS 等),它们也需要进行状态检查和维护,以保证集群的整体性能和功能。可以快速查看一些关键组件的状态,对于出现问题的组件,可以根据相应的日志和配置文件进行深入排查和解决,以确保集群的稳定性和可靠性。在 Kubernetes(k8s)中,以下是一些重要的集群组件,可以通过。原创 2025-01-16 13:17:14 · 11428 阅读 · 0 评论 -
k8s 容器反复重启
【代码】k8s 容器反复重启。原创 2025-01-16 11:01:59 · 11554 阅读 · 0 评论 -
【微服务】面试 8、分布式任务调度
主流工具:在分布式任务调度技术中,XXL - Job 是目前较为主流的工具。应用场景:在 Java 后台项目中,任务调度技术应用广泛。以 XXL - Job 为例,它主要解决了以下四个常见问题:集群任务重复执行:相比 Spring Task 在集群环境下可能出现多个实例执行同一任务的冲突情况,XXL - Job 能有效避免此类问题。Cron 表达式管理:Spring Task 将 Cron 表达式定义在代码中,而 XXL - Job 可在页面上定义,管理和修改更灵活便捷。定时任务失败处理。原创 2025-01-12 14:14:12 · 10628 阅读 · 0 评论 -
【微服务】面试 7、幂等性
首先解释幂等性概念,接着说明新增或修改操作可能引发幂等问题。对于新增数据,可根据表中是否有唯一索引选择使用数据库唯一索引,若没有则可采用分布式锁或 token 加 redis 方案,其中 token 加 redis 方案性能相对较高,并详细描述其流程。:适用于解决新增操作的幂等性问题,但要求表中有相应的唯一索引。原创 2025-01-12 14:00:40 · 10461 阅读 · 0 评论 -
【微服务】面试题 6、分布式事务
- 因微服务项目涉及远程调用可能引发分布式事务问题,需解决。- 主流解决方案有阿里 Seata 框架(含 XA、AT、TCC 模式)和 MQ。原创 2025-01-12 13:46:05 · 10733 阅读 · 0 评论 -
【微服务】面试题 5、分布式系统理论:CAP 与 BASE 详解
1998 年由加州大学科学家埃里克·布鲁尔提出,分布式系统存在一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)三个指标,且不能同时满足,此为 CAP 定理。原创 2025-01-12 12:24:59 · 10512 阅读 · 0 评论 -
【微服务】面试 4、限流
在没有 Nginx 或网关的情况下,可采用自定义连接器限流,但在一般微服务项目中,通常会有 Nginx 或网关,所以在面试中重点应阐述 Nginx 和网关的限流方式。原创 2025-01-12 12:13:59 · 11079 阅读 · 0 评论 -
【微服务】面试 3、 服务监控 SkyWalking
清晰呈现服务间调用关系,包括与数据库(如 MySQL、Redis)的调用关系,并且会将不健康的服务标红,方便直观了解服务架构健康状况和服务间的依赖关系,即使在服务数量较多的情况下也能清晰展示。原创 2025-01-12 11:35:48 · 10669 阅读 · 0 评论 -
【微服务】面试 2、服务雪崩
主要内容:以服务 d 为例,其包含修改和保存两个接口,若保存接口出现问题(如抛异常),服务 a 调用该接口时可加入降级逻辑。降级逻辑可提示用户“网络有问题,请稍后再试”,此时保存功能暂时不可用。核心概念:在接口出现问题时,通过自定义逻辑使部分服务功能暂时不可用,以保障服务稳定性。关键知识点:服务降级的触发条件(接口异常)、降级逻辑的设置方式(如提示信息)以及对服务功能的影响(部分功能不可用)。主要内容:由hystrix组件提供,有关闭、打开、半开三个状态,默认关闭,可在引导类上加注解开启。原创 2025-01-12 11:21:40 · 11042 阅读 · 0 评论