面試官:張總(嚴肅臉)
程序員:小王(緊張冒冷汗)
第一輪:分布式基礎
張總:說說Spring Cloud Alibaba的Sentinel和Nacos的區別? 小王:(結巴)那個...Sentinel是流量控制,Nacos是...是服務發現? 張總:(點頭)嗯,能分清基礎組件不錯。那Sentinel的熔斷策略具體怎么配置? 小王:(掏出手機翻筆記)記得是...是@SentinelResource注解?
第二輪:中間件實戰
張總:我們系統每天處理2億條消息,Kafka怎么保證Exactly Once? 小王:(擦汗)這個...要配合事務消息和冪等校驗? 張總:(微笑)說對了。那怎么設計跨集群的Kafka數據同步方案? 小王:(抓耳撓腮)可能...需要用MirrorMaker?
第三輪:分布式事務
張總:訂單系統要同時扣庫存和改賬戶余額,怎么保證一致性? 小王:(激動)可以用Seata的AT模式! 張總:(豎起大拇指)好!那TCC模式和SAGA模式有什么本質區別? 小王:(懵逼)那個...TCC是...需要業務參與?
第四輪:性能優化
張總:Redis集群怎么處理熱點Key? 小王:(自信)可以用Lua腳本+本地緩存! 張總:(驚訝)不錯!那Redisson的看門狗機制怎么實現的? 小王:(結巴)是...是通過定時任務續期?
第五輪:架構設計
張總:如果要支撐10萬QPS,你會怎么設計系統? 小王:(激動)用Nginx做反向代理,配合Sentinel限流... 張總:(點頭)很好。今天就到這里,回去等通知吧。
技術解析
1. Sentinel vs Nacos
- Sentinel:流量控制、熔斷降級、系統自適應保護
- Nacos:服務發現、配置管理、動態DNS
2. Kafka Exactly Once
- 生產端:事務消息+acks=all
- 消費端:冪等校驗+檢查點提交
3. 分布式事務模式
- AT模式:自動回滾,適合簡單業務
- TCC模式:需要業務編碼,適合復雜場景
- SAGA模式:長事務補償,適合跨服務場景
4. Redis熱點Key解決方案
- 本地緩存+Redis集群
- Lua腳本保證原子性
- 熱點Key自動遷移
5. 高并發架構
- CDN加速
- 消息隊列削峰
- 分庫分表
- 服務降級