2019最热微服务面试题(上)

栏目: IT技术 · 发布时间: 4年前

内容简介:Nginx的一项调查显示,目前有36%的企业正在使用微服务,而另外26%的企业正在研究如何实现微服务。 因此,现在可能是开始从事微服务开发的好时机。 以下是一些最常见的微服务面试题。Spring Cloud在微服务中是一个提供与外部系统集成的系统。 这是一个可用于快速构建应用程序的框架。 它能够处理集群中大量的数据交互,从而在微服务体系结构中起着非常重要的作用。对于典型案例,Spring Cloud提供了开箱即用的体验以及一系列扩展功能:

Nginx的一项调查显示,目前有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 Actuator是做什么用的?

它是Spring Boot提供的重要功能之一。它可以帮助开发者检查在生产环境运行的应用程序的状态,其中包含多个指标可用于检查程序当前的状态。它还提供RESTful的接口,可以用于检查不同的指标。

5. 如何在Spring Boot应用程序使用Spring Security?

使用Spring Security几乎不需要配置。你需要做的就是在 pom.xml 文件中添加 spring-boot-starter-security 。你还需要创建一个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是一种开源JSP实现,可与嵌入式系统很好地配合使用
  • Undertow - 灵活而卓越的Web服务器,它通过使用一系列简单的小型Handler来构建一个复杂的Web服务器

7. 什么是微服务的端对端测试 (End-To-End Testing) ?

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

8. 什么是语义监控 (Semantic Monitoring)?

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

语义监视与服务层监视一起从业务的角度实现了对微服务的监视。一旦检测到问题,便可以更快地进行隔离和 错误分类 ,从而减少修复问题所需的时间。它对服务层和事务层进行分类,以找出受可用性或性能问题影响的事务。

9. 如何设置服务发现?

有多种方法可以用来设置服务发现。我推荐Netflix的Eureka,这是我认为最有效的。接入的过程非常简单,不需要对应用程序做很大的改动。另外,它支持多种类型的Web应用程序。

Eureka配置分成两个步骤,客户端配置和服务端配置。

使用配置文件可以轻松完成客户端的设置。Eureka会在classpath中搜索一个叫做 eureka-client.properties 的文件。它还能根据配置文件中指定的环境进行搜索。

在进行服务端配置之前,你必须首先配置客户端。在完成配置以后,服务器将启动用于查找其他服务器的客户端。默认情况下,Eureka服务器使用客户端配置来查找对端服务器。

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

这是一个非常常见的微服务面试问题,你应该做好准备! 微服务架构有许多优点,这里列出一些,

微服务可以轻松适配其他框架或技术

单点故障不会影响整个系统

不仅适合大型企业,同时也合适小型团队

每个服务可以独立部署,并且部署时间相对更少

11. 在微服务中为什么你需要服务报告和控制面板?

服务报表和控制面板主要用于监视和维护微服务。有多种 工具 可以帮助实现这个目标。 服务报告 和控制面板可用于:

  • 找出微服务公开的资源
  • 找出组件发生变更时受影响的服务
  • 提供查看文档的入口
  • 查看部署的组件版本
  • 检测组件的合规性和成熟度

12. 为什么大家对使用微服务犹豫不决?

我发现许多开发者对此问题感到困惑。毕竟,在面试微服务架构师角色时会被问到这个问题,因此承认其缺点可能会有些棘手。这里有一些比较好的答案:

  • 需要大量投资 - 微服务需要大量协作。由于各个团队之间互相独立的,为此他们需要始终能够保持良好的同步
  • 需要大量的基础设置建设 - 由于系统是分布式的,架构涉及很多不同的部分
  • 需要做超额的规划来处理运营开销 - 如果你打算使用微服务架构,则需要准备好运营管理的开销
  • 依赖于特定的人才队伍 - 需要熟练的、专业的工程师来支持异构分布的微服务

13. PACT是如何工作的?

PACT是一个开源工具。它有助于测试消费者(consumer)与服务提供者(service provider)之间的交互。然而消费者端的测试可以与服务提供者独立,消费者仅需关注自己调用的服务的可用性,在集群中的其他服务可以自由做出变更。消费者服务的开发者首先编写测试用例,其中定义了与服务提供者的交互方式,我们称为合同(contract)或在PACT中称为pact。合同包括服务提供者的状态,请求体和预期的响应。基于此,PACT对需要执行的测试创建相应的Stub。输出存储在JSON文件中。

14. 定义领域驱动设计

领域驱动设计的主要重点是核心领域逻辑。这涉及与领域专家的定期协作,以解决与该领域有关的问题并改善应用程序的模型。在回答这个微服务面试问题时,你还需要提及DDD的核心基础知识:

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

译自 https://dzone.com/articles/top ... -2019


以上所述就是小编给大家介绍的《2019最热微服务面试题(上)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Mastering JavaServer Faces

Mastering JavaServer Faces

Bill Dudney、Jonathan Lehr、Bill Willis、LeRoy Mattingly / Wiley / 2004-6-7 / USD 40.00

Harness the power of JavaServer Faces to create your own server-side user interfaces for the Web This innovative book arms you with the tools to utilize JavaServer Faces (JSF), a new standard that wi......一起来看看 《Mastering JavaServer Faces》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具