2022年顶级微服务面试解析

  36%的企业目前正在使用微服务,另有26%的企业正在研究如何实施这些服务。

  1.什么是Spring Cloud?

  在微服务中,Spring Cloud是一个提供与外部系统集成的系统。它是一个轻框架,可以快速构建应用程序。与有限数量的数据处理相关联,它在微服务架构中起着非常重要的作用。

  对于典型用例,Spring Cloud提供了开箱即用的体验以及下面提到的一系列广泛功能:

  版本化和分布式配置。发现服务注册。服务对服务请求。。路由。断路器和负载平衡。集群和选举。全局锁和分布式消息传递。

  2.什么是spring boot?

  Spring boot是微服务面试问题的主要话题。

  随着新功能的增加,Spring不断变得越来越复杂。无论何时启动新项目,都必须添加新的构建路径或Maven依赖项。简而言之,您需要从头开始做所有事情。Spring Boot是一种可以帮助您避免所有代码配置的解决方案。

  3.如何覆盖Spring Boot项目的默认属性?

  这可以通过在application.properties文件中指定属性来完成。

  例如,在Spring MVC应用程序中,您必须指定后缀和前缀。这可以通过在application.properties文件中输入下面提到的属性来完成。

  对于后缀 - spring.mvc.view.suffix: .jsp对于前缀 - spring.mvc.view.prefix: /WEB-INF/

  4.执行器在Spring Boot中的作用

  它是最重要的功能之一,可帮助您访问在生产环境中运行的应用程序的当前状态。有多个指标可用于检查当前状态。它们还为RESTful Web服务提供端点,可以简单地用于检查不同的度量标准。

  5.如何在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();

  }

  }

  6. Spring Boot支持哪些嵌入式容器?

  无论何时创建Java应用程序,都可以通过两种方法进行部署:

  使用外部的应用程序容器。将容器嵌入jar文件中。

  Spring Boot包含Jetty,Tomcat和Undertow服务器,所有服务器都是嵌入式的。

  Jetty - 用于大量项目,Eclipse Jetty可以嵌入到框架,应用程序服务器,工具和集群中。Tomcat - Apache Tomcat是一个开源JavaServer Pages实现,可以很好地与嵌入式系统配合使用。Undertow - 一个灵活而突出的Web服务器,它使用小型单一处理程序来开发Web服务器。

  7.微服务的端到端测试意味着什么?

  端到端测试 验证工作流中的所有流程,以检查一切是否按预期工作。它还确保系统以统一的方式工作,从而满足业务需求。

  8.什么是语义监控?

  它结合了对整个应用程序的监控以及自动化测试。语义监控的主要好处是找出对您的业务更有利可图的因素。

  从业务角度来看,语义监控以及服务层监控可以监控微服务。一旦检测到问题,它们就可以实现更快的隔离和 错误分类,从而减少修复所需的主要时间。它对服务层和事务层进行分类,以确定受可用性或性能不佳影响的事务。

  9.如何设置服务发现?

  有多种方法可以设置服务发现。我将选择我认为效率最高的那个,Netflix的Eureka。这是一个无忧无虑的程序,不会对应用程序造成太大影响。此外,它支持多种类型的Web应用程序。

  Eureka配置包括两个步骤 - 客户端配置和服务器配置。

  使用属性文件可以轻松完成客户端配置。在clas spath中,Eureka搜索了一个eureka-client.properties文件。它还搜索由特定于环境的属性文件中的环境引起的覆盖。

  对于服务器配置,您必须首先配置客户端。完成后,服务器将启动一个用于查找其他服务器的客户端。默认情况下,Eureka服务器使用客户端配置来查找对等服务器。

  10.为什么要选择微服务架构?

  这是一个非常常见的微服务面试问题,你应该准备好了!微服务架构提供了许多专业人员。这里有几个:

  微服务可以轻松适应其他框架或技术。单个进程的失败不会影响整个系统。为大企业和小型团队提供支持。可以在相对较短的时间内独立部署。

  11.为什么在微服务中需要报告和仪表板?

  报告和仪表板主要用于监视和维护微服务。有多种工具可以帮助实现此目的。 报告 和仪表板可用于:

  找出哪些微服务暴露了哪些资源。找出组件发生变化时受影响的服务。提供一个简单的点,只要需要文档,就可以访问它。部署的组件的版本。从组件中获得成熟感和合规性。

  12.为什么人们会犹豫使用微服务?

  我见过许多开发者在这个问题上摸索。毕竟,在面试微服务架构师角色时,他们会被问到这个问题,所以承认它的缺点可能有点棘手。以下是一些很好的答案:

  它们需要大量投资 - 微服务需要大量的合作。由于您的团队独立工作,他们应该能够始终保持良好的同步。他们需要建立繁重的架构 - 系统是分布式的,架构涉及很多。他们需要过多的计划来处理操作开销 - 如果您计划使用微服务架构,则需要为操作开销做好准备。他们有自主的工作人员选择 - 需要熟练的专业人员,他们可以支持异构分布的微服务。

  13. PACT如何运作?

  PACT是一个开源工具。它有助于测试消费者和服务提供商之间的互动。但是,它不包含在合同中,从而提高了应用程序的可靠性。消费者服务开发人员首先编写一个测试,该测试定义了与服务提供者的交互模式。测试包括提供者的状态,请求正文和预期的响应。基于此,PACT创建了一个针对其执行测试的存根。输出存储在JSON文件中。

  14.定义域驱动设计

  主要关注核心域逻辑。基于域的模型检测复杂设计。这涉及与领域专家定期合作,以解决与域相关的问题并改进应用程序的模型。在回答这个微服务面试问题时,您还需要提及DDD的核心基础知识。他们是:

  DDD主要关注域逻辑和域本身。复杂的设计完全基于域的模型。为了改进模型的设计并解决任何新出现的问题,DDD不断与领域专家合作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值