个人随笔
目录
3*4=12种高性能、高可用、可扩展架构设计的方法
2026-02-24 20:44:25

一、高性能架构(核心:提吞吐量、降延迟)

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 生成)

 2

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2