SpringCloud 面试题, 单体应用,SOA,微服务架构有什么区别?
SpringCloud 面试题, 单体应用,SOA,微服务架构有什么区别?
QA
Step 1
Q:: 单体应用、SOA 和微服务架构有什么区别?
A:: 单体应用是将所有功能模块打包在一个应用中,通常存在难以维护、扩展性差等问题。SOA(面向服务的架构)通过将应用划分为多个独立的服务,通过企业服务总线(ESB)进行通信,每个服务可以独立开发、部署和维护,但它们往往是重型的,且过度依赖中央总线。微服务架构是一种轻量级的 SOA,它将应用划分为多个小的、松耦合的服务,这些服务独立部署、独立扩展,使用轻量级的通信机制(如 HTTP/
REST)。
Step 2
Q:: SpringCloud 如何帮助实现微服务架构?
A:: SpringCloud 提供了微服务架构所需的一系列工具和库,如服务注册与发现(Eureka)、负载均衡(Ribbon)、断路器(Hystrix)、配置管理(Config)、消息驱动(Stream)、网关(Gateway)等。它们帮助开发者更容易地实现服务之间的通信、配置管理、容错处理等,简化了微服务架构的搭建与维护。
Step 3
Q:: 什么是服务注册与发现?在 SpringCloud 中如何实现?
A:: 服务注册与发现是微服务架构中关键的一部分,它允许服务动态注册到服务注册表中,并让其他服务发现并调用这些服务。在 SpringCloud 中,Eureka 是一个常用的服务注册与发现组件。服务启动后会自动注册到 Eureka 服务器,其他服务可以通过 Eureka 获取该服务的地址信息。
Step 4
Q:: 什么是断路器模式?SpringCloud 中如何实现?
A:: 断路器模式是一种保护服务不被故障服务拖垮的机制。当某个服务不可用时,断路器会阻止对该服务的请求,并提供默认的应急响应。SpringCloud 中使用 Hystrix 来实现断路器。Hystrix 可以监控服务的健康状态,当请求失败率超过一定阈值时,自动开启断路器,从而保护系统的稳定性。
Step 5
Q:: 微服务架构下如何进行配置管理?
A:: 在微服务架构中,每个服务通常有独立的配置文件,这使得配置管理变得复杂。SpringCloud Config 提供了集中化的配置管理服务,允许我们将配置存储在远程仓库中(如 Git),各个微服务可以在启动时从 Config Server 动态获取配置,从而实现配置的集中管理与实时更新。