1. Spring Cloud 組件介紹
答題結(jié)構(gòu):核心組件 + 功能說明 + 應(yīng)用場景簡述
- Eureka:服務(wù)注冊與發(fā)現(xiàn)組件,類似于服務(wù)的“電話本”。
- Ribbon:客戶端負(fù)載均衡工具,配合 RestTemplate 使用,實(shí)現(xiàn)服務(wù)間的請求負(fù)載均衡。
- Feign:聲明式服務(wù)調(diào)用工具,簡化服務(wù)間的 HTTP 通信,基于 Ribbon 和 Hystrix。
- Hystrix / Resilience4j:服務(wù)容錯、熔斷、降級組件,用于防止雪崩效應(yīng)。
- Gateway:API 網(wǎng)關(guān)組件,提供統(tǒng)一入口、權(quán)限校驗、路由轉(zhuǎn)發(fā)等功能。
- Config:集中式配置管理,支持動態(tài)刷新,適合多環(huán)境配置統(tǒng)一管理。
- Bus:配合 Config 使用,實(shí)現(xiàn)配置動態(tài)刷新傳播。
- Sleuth + Zipkin:分布式鏈路追蹤,分析請求在各服務(wù)之間的調(diào)用鏈路。
2. 大批量插入數(shù)據(jù)的辦法
答題結(jié)構(gòu):常用方法 + 優(yōu)化建議 + 實(shí)戰(zhàn)經(jīng)驗
- 使用 JDBC 批處理(
addBatch()+executeBatch()),一次性提交多條 SQL。 - 使用數(shù)據(jù)庫特性,如 MySQL 的
LOAD DATA INFILE,性能極高。 - ORM 框架優(yōu)化,例如 MyBatis 使用
foreach標(biāo)簽 + 手動 commit 控制事務(wù)大小。 - 合理設(shè)置事務(wù)大小(如每 500 或 1000 條提交一次),防止內(nèi)存占用過高。
- 使用中間件(如 Kafka + Flink)進(jìn)行異步緩沖再寫入數(shù)據(jù)庫。
3. RocketMQ 應(yīng)用場景
答題結(jié)構(gòu):核心優(yōu)勢 + 場景舉例
- 解耦異步:訂單系統(tǒng)中,下單后發(fā)送消息到庫存、物流系統(tǒng)。
- 削峰填谷:秒殺搶購場景,先寫入 MQ,消費(fèi)者異步消費(fèi)。
- 事務(wù)消息:例如電商系統(tǒng)中訂單生成與扣款操作需要強(qiáng)一致性。
- 廣播消息:全量通知多個系統(tǒng),如系統(tǒng)升級廣播。
- 延時消息:比如 30 分鐘未支付訂單自動取消。
4. Redis 的數(shù)據(jù)結(jié)構(gòu)和應(yīng)用場景
答題結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu) + 典型應(yīng)用
- String:最基本類型,常用于緩存簡單對象、計數(shù)器。
- Hash:適合存儲對象,如用戶信息(user:id -> {name, age})。
- List:消息隊列(先進(jìn)先出),比如評論列表、日志收集。
- Set:無序不重復(fù),適合標(biāo)簽、點(diǎn)贊用戶集合等。
- ZSet(有序集合):排行榜、延遲隊列(score 控制時間戳)。
- Bitmap:統(tǒng)計活躍用戶、簽到、布隆過濾器底層實(shí)現(xiàn)。
- HyperLogLog:大數(shù)據(jù)去重統(tǒng)計,如 UV(獨(dú)立訪客)計數(shù)。
5. Git 分支的 release 和 merge 區(qū)別
答題結(jié)構(gòu):用途 + 流程對比
-
release 分支:用于預(yù)發(fā)布、穩(wěn)定測試階段。通常從
develop分出,測試通過后 merge 到master和develop。 -
merge:是 Git 的操作,不是分支;用于將一個分支的變更合并到另一個分支。
- 合并方式:
--no-ff、--squash等。 - 注意沖突處理與歷史記錄維護(hù)。
- 合并方式:
6. Redis 的高可用方案
答題結(jié)構(gòu):核心方案 + 各自特點(diǎn)
- 主從復(fù)制:基礎(chǔ)高可用架構(gòu),讀寫分離,主庫故障無法自動切換。
- 哨兵 Sentinel:自動故障轉(zhuǎn)移 + 客戶端通知 + 主從結(jié)構(gòu)。
- Redis Cluster:分片 + 高可用,適合大規(guī)模數(shù)據(jù)處理。
- 持久化機(jī)制:RDB(快照)和 AOF(日志)雙重保障。
- Keepalived + VIP:構(gòu)建高可用服務(wù)入口層。
7. MySQL 索引類型介紹
答題結(jié)構(gòu):類型 + 應(yīng)用場景
- 主鍵索引(Primary Key):唯一性 + 自動創(chuàng)建聚簇索引。
- 唯一索引(Unique):保證列唯一性。
- 普通索引(Index):提高查詢效率,無唯一性限制。
- 聯(lián)合索引(Composite Index):多列組合索引,需注意最左前綴原則。
- 全文索引(Fulltext):適用于大文本 LIKE 查詢,如搜索引擎功能。
- 空間索引(Spatial):用于地理信息系統(tǒng)(GIS)。
8. 分庫分表場景
答題結(jié)構(gòu):背景 + 具體應(yīng)用 + 難點(diǎn)
- 場景:單表數(shù)據(jù)量過大(千萬級以上)或單庫連接壓力大。
- 分表:如訂單表按用戶 ID、時間進(jìn)行分表。
- 分庫:不同業(yè)務(wù)分庫,或按租戶、地區(qū)等邏輯隔離。
- 實(shí)現(xiàn)方式:ShardingSphere、MyCat、中間件路由等。
- 難點(diǎn):跨庫事務(wù)、全局 ID、聚合查詢、數(shù)據(jù)遷移。
9. Linux 常用命令
答題結(jié)構(gòu):按使用場景分類
-
文件管理:
ls,cd,cp,mv,rm,mkdir,touch -
權(quán)限管理:
chmod,chown,chgrp,umask -
進(jìn)程管理:
ps,top,kill,htop,nice -
網(wǎng)絡(luò)管理:
ping,netstat,ss,curl,wget,telnet -
磁盤管理:
df,du,mount,umount -
日志查看:
tail -f,less,grep -
系統(tǒng)資源:
uptime,free,vmstat,iostat -
包管理(CentOS):
yum install,rpm -qa
?