一、高性能架构(核心:提吞吐量、降延迟)
1. 多级缓存
核心原理:遵循局部性原理,分层存储(本地缓存+分布式缓存),减少数据库直连
面试重点:缓存一致性(Cache Aside Pattern)、缓存三大问题(穿透/击穿/雪崩)及解决方案
2. 数据库读写分离
核心原理:主库(Master)抗写、从库(Slave)抗读,通过BinLog实现主从同步
面试重点:容忍主从同步延迟,强一致性业务需强制读主库
3. 数据分区(分库分表)
核心原理:按Hash/Range规则,将海量数据分散到多个数据库节点,降低单机压力
面试重点:分片键(Sharding Key)选择、避免数据倾斜
4. 异步并发
核心原理:串行同步改并行异步(CompletableFuture/Reactor模式),缩短响应时间
面试重点:适用于IO密集型任务,注意上下文切换成本
二、高可用架构(核心:冗余、故障隔离,组件故障不影响服务)
1. 熔断与限流
核心原理:限流(入口拦截过载流量,令牌桶/漏桶);熔断(切断故障下游,防止雪崩)
面试重点:限流护自身,熔断护下游及整体链路
2. 池化技术
核心原理:预创建资源容器(线程、连接、对象),借出归还,避免频繁创建销毁开销
面试重点:核心池大小(Core Size)、最大池大小(Max Size)的合理配置
三、可扩展架构(核心:拆分、解耦,适配业务增长)
1. 微服务架构
核心原理:按业务领域(DDD)拆分单体应用为独立部署服务,实现开发/部署/扩容解耦
面试重点:服务粒度控制,规避分布式事务复杂性
2. 消息队列解耦
核心原理:生产者/消费者通过中间件交互,互不感知,实现解耦+流量削峰
面试重点:消息可靠投递(不丢消息)、幂等性处理(不重复消费)
3. 无状态设计
核心原理:服务节点不存储会话状态(Session),状态外置(Redis/JWT),支持节点随意扩展
面试重点:JWT(空间换时间)、Redis Session(时间换空间)的区别与适用场景
4. 插件化/SPI机制
核心原理:定义标准接口,通过配置加载具体实现,实现逻辑可扩展
面试重点:Java SPI/Dubbo SPI,遵循开闭原则(OCP)
(注:文档部分内容可能由 AI 生成)
