SpringCloud面试必备:核心特性与实战解析

需积分: 0 0 下载量 200 浏览量 更新于2024-08-03 收藏 70KB DOCX 举报
"SpringCloud 29 道面试题和答案文档包含了关于SpringCloud的关键知识点,包括其定义、核心特性,以及与SpringBoot相关的配置和安全实现方法。" SpringCloud是一个广泛使用的微服务架构框架,它旨在简化开发、部署和管理分布式系统的复杂性。这个框架集成了多种工具和服务,使得开发者能够快速构建具有弹性和高可用性的应用程序。SpringCloud的核心特性主要包括: 1. 版本化/分布式配置:通过Spring Cloud Config服务器,应用可以在分布式环境中管理和更新配置,确保所有服务始终使用最新的配置信息。 2. 服务注册和发现:Spring Cloud Netflix Eureka或Consul等组件允许服务实例自我注册,并且其他服务可以通过服务发现机制找到它们,促进服务间的通信。 3. 服务到服务的调用:使用Ribbon或Feign等组件,实现客户端负载均衡,使得服务之间能进行高效的通信。 4. 路由:Zuul或Spring Cloud Gateway作为API网关,可以实现动态路由、过滤器等功能,统一处理入站和出站请求。 5. 断路器:Hystrix或Resilience4j提供了断路器模式,防止服务级联失败,提高系统的稳定性。 6. 负载平衡:Ribbon和Spring Cloud LoadBalancer实现了客户端负载均衡,分散请求到多个服务实例,提高系统整体性能。 7. 分布式消息传递:通过Spring Cloud Stream或RabbitMQ、Kafka等消息中间件,支持服务间的异步通信和解耦。 在SpringBoot项目中,若要覆盖默认属性,可以在`application.properties`或`application.yml`文件中添加相应的键值对,例如,要改变Spring MVC视图解析的后缀和前缀,可以这样设置: ```properties spring.mvc.view.suffix=.jsp spring.mvc.view.prefix=/WEB-INF/ ``` SpringBoot Actuator是监控和管理应用程序的重要组件,它提供了一系列的健康检查、指标收集和审计日志等功能,便于开发者了解应用在生产环境中的实时状态。Actuator提供的RESTful端点可以用来查看内存使用、线程状态、HTTP请求统计等信息。 在SpringBoot应用程序中实现安全性,通常依赖于`spring-boot-starter-security`起步依赖。首先,在`pom.xml`文件中引入该依赖,然后创建一个配置类,继承`WebSecurityConfigurerAdapter`并覆盖其中的方法,以自定义安全规则。例如: ```java @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/").permitAll() // 允许访问根路径 .anyRequest().authenticated() // 其他请求需要认证 .and() .formLogin().permitAll() // 启用表单登录 .and() .logout().permitAll(); // 启用注销功能 } } ``` 以上代码表示所有请求都需要认证,除了根路径允许匿名访问,登录页面和注销功能也对外开放。可以根据实际需求调整这些配置,以满足特定的安全策略。