Skip to content

微服务组件选型面试题:REST、Dubbo、gRPC、MQ、Gateway与Mesh

详细矩阵、Demo与Runbook见组件选型主线

问题标准回答原理页
REST、Dubbo、gRPC、MQ怎么选先看是否立即需要结果和是否要持久堆积;外部API偏REST,成熟Java体系可用Dubbo,多语言强IDL/流式偏gRPC,异步削峰和最终一致用MQ。通信选型
Gateway和Mesh区别Gateway主要治理南北向用户/API流量;Mesh治理东西向工作负载通信、mTLS和通用路由,两者可组合。Gateway与Mesh
服务发现有哪几种客户端发现由SDK选实例,ClusterIP由平台按连接选择,Headless把地址给Resolver,Mesh由代理维护EDS并选择。发现与负载
为什么多层重试危险每层次数相乘,2×2×3会形成12次Attempt;写请求还可能重复副作用。重复治理
mTLS能代替用户授权吗不能。mTLS证明工作负载身份,用户认证和资源授权由Gateway与Provider安全框架完成。能力Owner
上Mesh后还需要业务幂等吗需要。代理超时和重试不知道数据库是否提交,幂等、状态机、事务和补偿仍属于业务。能力Owner
JDK 8老项目怎样迁移先补契约、指标、Deadline和幂等,再逐项迁移Ribbon/Hystrix/Zuul/Sleuth,不能一次替换全部组件。技术栈
Boot 3新项目怎样选使用匹配的Cloud BOM,按场景选择Nacos/Consul/K8s发现、现代HTTP客户端、Gateway、Sentinel/Resilience4j和Micrometer/OTel。技术栈

项目回答模板

外部客户端走REST和Gateway,内部Java核心调用按团队体系选Dubbo或Feign,多语言流式采集用gRPC,支付后的积分、ES和通知通过Outbox+MQ。Kubernetes或客户端明确一个主要实例选择层,Mesh负责工作负载mTLS和通用遥测。Deadline从入口传播,重试集中一层且受预算控制,幂等和事务始终由Provider保证。

本章小结

选型回答必须同时讲业务语义、团队成本和能力所有权,不能只比较吞吐数字。