微服务之间通信协议怎么选?为什么要避免过于“脆”的协议(例如强绑定某语言运行时)?
How do you choose inter-service communication protocols and why avoid brittle, runtime-coupled protocols?
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: medium
分类: System Design
标签: protocols, backward compatibility
参考答案摘要
答案 通信协议要在 性能、可演进性、跨语言性、可观测性 之间平衡。REST/JSON 易用、生态广;gRPC/Protobuf 更高效且有强类型;事件/消息适合解耦与异步。避免强绑定某运行时的协议(如强依赖 JVM 的远程调用)是因为它会限制消费者技术栈,且兼容性/升级更难,长期会把系统锁死在某种实现细节里。
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。