1.5 分布式系统面试题解析
(1)和单块系统相比,分布式系统的基本特性是什么?
□ 考点分析
这是一道比较经典的面试题,考查的是面试者对分布式系统基本特性的理解。通常,这种面试题的答案没有非常明确的标准,更多的是对一些概念的讨论和分享。面试官会根据面试者对基础概念的理解程度来做出判断。
□ 解题思路
针对这一道面试题,面试者要做的就是回答出关于分布式系统基本特性的几个关键名词,包括网络传输的三态性、请求的容错性、系统的异构性和数据的一致性等。在回答过程中,面试者可以先从单块系统所存在的问题入手,引出分布式系统的基本结构,再基于这种基本结构分析对应的特性,这样整体的回答思路比较完整和清晰。至于具体的回答内容,可以将本章所给出的关于分布式系统基本特性的描述作为重点并做一定的扩展,措辞上比较灵活,能够做到自圆其说即可。
(2)你能描述出分布式系统和微服务架构之间的区别和联系吗?
□ 考点分析
这是一道比较容易混淆相关概念的面试题,因为在微服务架构和分布式系统之间有很多概念是相互交融的。微服务架构是目前面试的一大热点,面试者对微服务基本概念的理解是面试官经常会考查的方面。
□ 解题思路
面试者首先要明确分布式系统和微服务架构是不同时代的产物。分布式系统已经诞生几十年了,而微服务架构是最近几年才出现的一个名词。因此,微服务架构势必构建在分布式系统的基础之上,两者之间是一种递进和扩展的关系。但凡分布式系统具备的特性微服务架构也都具备,但微服务架构又额外添加了注册中心、配置中心、服务网关等技术组件,同时更加依赖DevOps等基础设施。在回答这道面试题时,面试者可以先简要阐述分布式系统的基本特性,然后引出微服务架构的技术组件。在本章中,我们对这两部分内容都做了详细的分析,该分析内容可以直接作为回答内容。
(3)分布式系统的开发应该具备哪些技术组件?
□ 考点分析
这是一道考查对技术知识体系的把握程度的面试题,可以很好地反映出面试者对分布式系统开发过程的理解程度。对分布式系统而言,技术组件还是比较明确和统一的,面试者只需把这些技术组件一一进行阐述即可。
□ 解题思路
构建分布式系统是一个比较复杂的过程,需要引入一批技术组件,常见的包括远程调用、负载均衡、服务容错、服务降级等。同时,因为目前构建分布式系统的主要架构模式就是微服务架构,所以也需要介绍注册中心、服务网关、配置中心、消息通信等组件。在面试过程中,需要对这些技术组件一一阐述,从而体现面试者对这一领域所涉及知识体系的认知的完整性。同时,如果对本章所介绍的动态代理、应用缓存、资源管理等组件也有一定的展开讲述,那无疑更加能够得到面试官的认可。