一、 质量属性
1. 质量属性描述、关注点及其提升方法
考点:性能、可用性、安全性等属性的定义与提升策略(如性能的“资源调度”、可用性的“冗余”)。
解析:软件系统非功能性需求的核心,架构评估(如ATAM)的基础。
坑点:混淆可用性(系统正常运行时间)和可靠性(无故障运行概率)。
记忆法:口诀“性安可用易”(性能、安全、可用性、易用性)。
2. 易混淆质量属性对比
考点:可用性 vs 可靠性 vs 健壮性;性能 vs 可伸缩性。
解析:辨析概念边界,例如可伸缩性是面对需求增加时系统提升处理能力的能力。
坑点:将“可修改性”等同于“可维护性”(可修改性更强调修改的代价低)。
记忆法:对比表格法,列出核心定义词进行对比。
3. 质量属性场景的六要素
考点:刺激源、刺激、环境、制品、响应、响应度量。
解析:用于具体化质量需求,将抽象需求转化为可测试的场景。
坑点:遗漏“环境”或“响应度量”。
记忆法:口诀“源刺环制响度”(源头刺激环境,制品响应测度)。
二、 Redis
1. 数据结构
1. 两层含义
一个数据类型可以由多种底层结构实现,由 redisObject 的 encoding 字段动态决定。
2. 五种基础类型及底层映射
3. 核心底层结构
核心设计张力:内存效率 vs 操作性能。小数据走紧凑编码省内存,大数据自动切换为哈希表或跳表保性能。
4. 四种扩展类型
5. 选型原则
简单键值、计数、锁 → String
对象部分字段更新 → Hash
有序两端进出 → List
去重、集合运算 → Set
排序、范围查询、排行榜 → ZSet
海量布尔标记 → Bitmap
海量唯一计数且可接受近似 → HyperLogLog
地理位置查询 → GEO
需要消费者组和 ACK 的消息流 → Stream
注意大 Key 风险:单个 String 过大、单个 Hash 字段过多,会导致编码切换并可能阻塞单线程 Redis,应合理拆分 Key、控制集合规模。
考点:String、Hash、List、Set、ZSet及底层结构(SDS、跳表、字典)。
解析:不同场景选用不同结构(如排行榜用ZSet)。
坑点:底层编码方式(如ziplist跳表)的转换条件。
记忆法:场景记忆法(计数器-String,对象-Hash,消息-List,标签-Set,排名-ZSet)。
2. 淘汰策略
考点:8种淘汰策略(LRU, LFU, Random, TTL等),如何选择。
解析:内存打满时的清理机制。
坑点:noeviction(默认)会报错而非淘汰数据。
记忆法:分类记忆(随机、过期、全量、易失)。
3. 缓存失效及解决方法
考点:缓存穿透、缓存击穿、缓存雪崩。
解析:穿透(查不存在)、击穿(热点key失效)、雪崩(大量key同时失效)。
坑点:解决“击穿”用互斥锁,解决“穿透”用布隆过滤器或空对象。
记忆法:形象记忆(穿透:穿破底裤;击穿:击破一点;雪崩:大面积崩塌)。
4. RDB、AOF
考点:两种持久化方式的优缺点、混合持久化。
解析:RDB快但可能丢数据,AOF全但文件大恢复慢。
坑点:混淆两者的触发条件(fork子进程)。
记忆法:对比法(RDB=快照,AOF=日志)。
5. 主从复制、哨兵模式、集群模式
考点:高可用架构演进。
解析:主从(读写分离)、哨兵(自动故障转移)、集群(数据分片)。
坑点:哨兵模式下主节点挂掉后的选举过程;集群模式的哈希槽(16384)。
记忆法:演进法(单机 -> 备份 -> 自动监控 -> 分布式扩展)。
6. 常用指令
考点:基础操作(get/set/hset)及运维指令(info, keys)。
坑点:生产环境禁用
keys *(阻塞)。
7. 缓存模式、数据不一致解决方法
考点:旁路缓存(Cache Aside)、读写穿透、异步缓存。双写一致性。
解析:先更数据库还是先删缓存(推荐先更DB后删缓存)。
坑点:延时双删的适用场景。
记忆法:顺序法(DB优先,缓存删除)。
8. 数据库锁
考点:乐观锁(版本号)、悲观锁(行锁/表锁)。分布式锁(Redis Redlock)。
坑点:Redis实现分布式锁的死锁及超时问题。
9. 哈希、一致性哈希
考点:一致性哈希的引入原因、虚拟节点。
解析:解决普通哈希扩缩容带来的大规模数据迁移。
坑点:数据倾斜问题及虚拟节点解决法。
记忆法:环形记忆(数据映射到环上,顺时针找节点)。
三、 No SQL
1. 概念、特点
考点:CAP理论、BASE理论。
解析:非关系型,高并发、海量数据场景。
坑点:CAP三者不可兼得(通常P必须保证,C和A二选一)。
记忆法:缩写记忆(CAP:一致性、可用性、分区容忍性)。
2. 常见No SQL对比
考点:KV型(Redis)、文档型(MongoDB)、列族型(HBase)、图(Neo4j)。
坑点:选型混淆(如大数据宽表用HBase,复杂查询用MongoDB)。
3. 常见No SQL数据读写方法
考点:特定数据库的API调用及底层存储逻辑。
四、 消息队列
1. 特点和作用
考点:解耦、异步、削峰填谷。
记忆法:口诀“异解削”。
2. 存在问题及解决方案
考点:消息丢失(生产/存储/消费端)、重复消费(幂等性)、消息积压。
解析:通过ACK机制、死信队列、分布式事务消息解决。
坑点:只保证“至少一次”还是“恰好一次”。
记忆法:全链路记忆(产-存-消,对应三个环节的可靠性)。
五、 Elasticsearch
1. 分词原理
考点:Analyzer(Char Filter, Tokenizer, Token Filter)。中文分词器(IK)。
坑点:分词器不一致导致搜索不到(写入和查询需使用同一分词器)。
2. 倒排索引
考点:Term Dictionary, Term Index, Posting List。
解析:从“文档->词”变为“词->文档”的映射,实现极速检索。
记忆法:查字典法(根据字找页码,而不是一页页翻)。
六、 向量数据库
1. 概念和作用
考点:存储和检索高维向量,用于相似度计算。
解析:RAG架构的核心组件,解决大模型幻觉和私有数据问题。
2. 实现算法
考点:ANN(近似最近邻搜索),如HNSW、IVF。
记忆法:近似记忆(不求最准,但求最快,算个大概就行)。
七、 New SQL
1. 概念和特点
考点:结合了关系型数据库的ACID和非关系型的可扩展性(如TiDB)。
2. 一致性方案
考点:Raft/Paxos协议,分布式事务(2PC/3PC)。
八、 数据流图
1. 画图方法
考点:数据流图(DFD)的四大元素(外部实体、处理、数据存储、数据流)及平衡原则。
坑点:父图与子图不平衡(输入输出不匹配),黑洞/奇迹(有进无出/有出无进)。
记忆法:找茬法(检查输入输出数量是否守恒)。
九、 UML
1. 各种图概念
考点:用例图、类图、时序图、活动图、状态图、部署图的区别。
坑点:混淆时序图(强调时间顺序)和活动图(强调业务流程)。
记忆法:分类记忆(结构图 vs 行为图)。
十、 领域驱动 (DDD)
1. 概念
考点:核心域、支撑域、通用域;限界上下文;聚合根。
坑点:把贫血模型当作充血模型。
2. 表现层技术、各种技术对比和使用场景
考点:前后端分离、SSR、CSR。
3. 数据访问层技术、各种技术对比和使用场景
考点:ORM(MyBatis/Hibernate)、JPA对比。
十一、 云原生架构
1. 各种架构特点和对比
考点:微服务、Serverless、Service Mesh。
2. 容器技术-docker
考点:镜像、容器、仓库;隔离机制(Namespace, Cgroups)。
记忆法:集装箱记忆(标准化打包,随处运行)。
3. 容器技术-k8s
考点:Pod、Deployment、Service、Ingress;核心组件(API Server, etcd, Scheduler)。
坑点:Pod是最小调度单位,而不是容器。
十二、 微服务与SOA
1. 微服务与SOA对比
考点:微服务去中心化、独立部署;SOA强调企业总线(ESB)、粗粒度。
记忆法:大小对比(SOA大而全,微服务小而精)。
2. Restful架构
考点:资源导向,GET/POST/PUT/DELETE,状态码。
坑点:无状态性(Stateless)。
3. 服务注册模式
考点:注册中心(Nacos, Eureka, Zookeeper),服务发现机制(客户端/服务端发现)。
十三、 信息安全
1. 对称加密方法
考点:AES、DES。速度快,适合大量数据。
坑点:密钥分发困难。
2. 非对称加密方法
考点:RSA、ECC。公钥加密,私钥解密(或相反)。适合数字签名。
记忆法:对比记忆(对称=快,非对称=安全)。
十四、 大数据架构
1. Lambda架构图
考点:批处理层、速度处理层、服务层。
解析:兼顾实时和离线,但代码维护复杂(需维护两套代码)。
2. Lambda架构实现方法
考点:Hadoop + Spark + Storm/Flink。
3. Kappa架构图
考点:只保留流处理,通过消息队列(如Kafka)重放数据。
解析:架构简化,一套代码。
4. Kappa架构实现方法
考点:Kafka + Flink。
记忆法:希腊字母记忆(Λ像分叉,批流分离;K像一条直线,纯流处理)。
十五、 分布式系统
1. 一致性方法对比
考点:强一致性、弱一致性、最终一致性。2PC/3PC、TCC、Saga、本地消息表。
坑点:分布式事务无法做到绝对的强一致性(受限于CAP)。
2. 分片方案
考点:哈希分片、范围分片、一致性哈希。
解析:解决单机容量和性能瓶颈。
十六、 数据库
1. 分区方案
考点:垂直分库/分表、水平分库/分表。
坑点:水平分表后跨库JOIN和分布式ID问题。
记忆法:切蛋糕法(垂直按列切,水平按行切)。
2. 高可用模式
考点:主从复制、双主(MHA)、MGR(MySQL Group Replication)。
坑点:主从延迟(读写分离导致的数据不一致)。
十七、 AI大模型相关
1. RAG、向量化
考点:检索增强生成(Retrieval-Augmented Generation)。文档切片->向量化->召回->拼接Prompt。
解析:解决大模型知识更新慢和幻觉。
记忆法:开卷考试记忆(大模型是考生,向量库是参考书)。
2. MCP工作流
考点:Model Context Protocol(模型上下文协议),标准化大模型与外部工具的交互。
3. AGENT流程和技术
考点:规划(Planning)、记忆(Memory)、工具使用(Tools)。
解析:大模型从“聊天”走向“做事”。
4. MLOps与LLMOps对比
考点:传统机器学习运维 vs 大模型运维(重点在于提示词工程、微调、评估)。
5. Prompt 优化(提示词工程)
考点:Few-shot(少样本)、CoT(思维链)、角色扮演。
记忆法:面试法(给背景+给例子+定角色+分步骤)。
十八、 架构图技术
1. 架构图涉及到所有技术名词
考点:4+1视图(逻辑、开发、进程、物理、场景)。架构图的规范画法。