一线大厂架构师的微服务是什么水平
微服务架构的系统是一个分布式的系统,按业务进行划分为独立的服务单元,解决单体系统的不足,同时也满足越来越复杂的业务需求。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。
微服务就是将一个单体架构的应用按业务划分为一个个的独立运行的程序即服务,每种应用程序都在其自己的进程中运行。它们之间通过轻量级机制(通常是HTTP资源的API)进行通信(也可以采用消息队列来通信,如 RoocketMQ,Kafaka 等),可以采用不同的编程语言,使用不同的存储技术,自动化部署(如 Jenkins)减少人为控制,降低出错概率。服务数量越多,管理起来越复杂,因此采用集中化管理。所以通过自动部署机制进行独立部署,使这些服务的集中化管理已经是少的,它们可以用不同的编程语言编写,并使用不同的数据存储技术。例如 Eureka,Zookeeper 等都是比较常见的服务集中化管理框架。
接下来再给大家说一说一些大厂在面试这块的一些关于微服务的面试题。
一、什么是Spring Cloud?
在微服务中,SpringCloud是一个提供与外部系统集成的系统。它是一个敏捷的框架,可以短平快构建应用程序。与有限数量的数据处理相关联,它在微服务体系结构中起着非常重要的作用。
以下为 Spring Cloud 的核心特性:
- 版本化/分布式配置。
- 服务注册和发现。
- 服务和服务之间的调用。
- 路由。
- 断路器和负载平衡。
- 分布式消息传递。
二、什么是Spring Boot?
Spring boot是微服务面试问题的主要话题。
随着新功能的加入,Spring变得越来越复杂。无论何时启动新项目,都必须添加新的构建路径或Maven依赖项。简而言之,你需要从头开始做每件事。Spring Boot是一种帮助您避免所有代码配置的解决方案。
三、如何覆盖Spring Boot项目的默认属性?
这可以通过在application.properties文件中指定属性来完成。
例如,在Spring MVC应用程序中,您必须指定后缀和前缀。这可以通过在application.properties文件中输入下面提到的属性来完成。
- 对于后缀 - spring.mvc.view.suffix: .jsp
- 对于前缀 - spring.mvc.view.prefix: /WEB-INF/
四、Actuator在Spring Boot中的作用
它是重要的功能之一,可帮助您访问在生产环境中运行的应用程序的当前状态。有多个指标可用于检查当前状态。它们还为RESTful Web服务提供端点,可以简单地用于检查不同的度量标准。
五、如何在Spring Boot应用程序中实现Spring安全性?
实施需要少的配置。您需要做的就是spring-boot-starter-security在pom.xml文件中添加starter。您还需要创建一个Spring配置类,它将覆盖所需的方法,同时扩展 WebSecurityConfigurerAdapter 应用程序中的安全性。这是一些示例代码:
package com.gkatzioura.security.securityendpoints.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/welcome").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.permitAll()
.and()
.logout()
.permitAll();
}
}
相关文章