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最热微服务面试题(上)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

淘宝十年产品事

淘宝十年产品事

苏杰 / 电子工业出版社 / 2013-10-15 / 55.00

产品经理发展到一定阶段,再要成长,光靠学习一些知识、技能已经不够,必须通过经典案例来学习,而本书,就提供了小到页面细节、大到平台架构的丰富案例。电商从业者,无法无视“淘宝”这个标杆的存在,本书可帮助大家做出更好的选择。愿意思考的人们,也可以从“淘宝”这个产品,或者说社会 现象、经济现象里,找到每天都能体会到的那些变化的原因,从而想得更明白,活得更通透。 本书细数淘宝成立十年来经历的重大变化,......一起来看看 《淘宝十年产品事》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具