1. 你之前接触过的中间件里,挑一个最熟的讲讲它的核心设计,重点说为什么要这样设计如果讲消息队列,比较容易拉开差距的不是背概念,而是把吞吐、可靠性、顺序性和扩展性之间的取舍讲清楚。比如一套高吞吐 MQ 通常会采用顺序写磁盘、分区模型、批量发送、批量拉取和零拷贝来提升吞吐,但这么设计以后,消费顺序只能在单分区内严格保证,跨分区顺序就必须交给业务自己兜底。再比如可靠性不是简单开个副本就完事了,生产端要考虑重试和幂等,Broker 要考虑刷盘和副本同步策略,消费端还要考虑重复消费和位点提交时机。真正难的是理解这些机制不是孤立存在的,而是围绕吞吐、延迟、可恢复性一起做平衡。2. 软件工程里的设计原则你...