SpringCloud面试题, 分布式和微服务有什么区别?
SpringCloud面试题, 分布式和微服务有什么区别?
QA
Step 1
Q:: 分布式系统和微服务架构有什么区别?
A:: 分布式系统是指多个独立的计算机节点通过网络连接协同工作,共同完成一个系统任务。分布式系统的核心目的是提高系统的性能、可靠性和可扩展性。微服务架构是分布式系统的一种具体实现方式,它将应用程序拆分为多个小型的、独立部署的服务,每个服务都负责特定的功能。微服务架构强调每个服务的独立性和自治性,服务之间通过轻量级通信协议(如HTTP/
REST)进行交互。微服务架构通常用来解决单体应用的复杂性和难以扩展的问题。
Step 2
Q:: Spring Cloud 是如何支持微服务架构的?
A:: Spring Cloud 提供了一套工具和框架,用于帮助开发人员构建和管理微服务架构。它包括服务注册与发现(Eureka)、负载均衡(Ribbon)、断路器(Hystrix)、配置管理(Config Server)、服务网关(Zuul/
Gateway)等组件。这些工具使得开发人员能够轻松地实现服务之间的通信、故障处理和配置管理,简化了微服务架构的开发和运维。
Step 3
Q:: 微服务的优缺点是什么?
A:: 优点包括:1)服务独立部署,减少了因单个服务更改而导致的整体应用的重新部署;2)技术栈多样性,开发人员可以根据服务的具体需求选择合适的技术;3)提高系统的弹性和可扩展性。缺点包括:1)运维复杂度增加,需要处理服务间的通信、配置、监控等问题;2)网络延迟和调用失败的可能性增加;3
)分布式系统带来的数据一致性挑战。
Step 4
Q:: 服务发现是什么,Spring Cloud 中如何实现?
A:: 服务发现是指在分布式系统中,服务实例能够自动发现彼此的位置并进行通信的过程。在 Spring Cloud 中,服务发现通常通过 Eureka 实现。Eureka 是一个服务注册和发现组件,服务实例启动时会将自己注册到 Eureka 服务器,其他服务可以通过 Eureka 服务器查询服务实例的位置并进行调用。
Step 5
Q:: 什么是断路器模式,为什么需要它?
A:: 断路器模式是一种保护服务的设计模式,用于防止单个服务的故障蔓延到整个系统。当服务调用的错误率达到一定阈值时,断路器会自动“跳闸”,暂时中断对该服务的调用,以防止更多的请求失败。经过一段时间后,断路器会尝试恢复调用,判断服务是否已恢复正常。在 Spring Cloud 中,Hystrix 是实现断路器模式的工具。