内容简介: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要求与领域专家持续的合作。
以上所述就是小编给大家介绍的《2019最热微服务面试题(上)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 服务器后台开服面试心得
- 真的跪了!微服务架构27连问面试题配答案
- 抖音、腾讯、阿里、美团春招服务端开发岗位硬核面试(上)
- 抖音、腾讯、阿里、美团春招服务端开发岗位硬核面试(二)
- 抖音、腾讯、阿里、美团春招服务端开发岗位硬核面试(二)
- 面试官:CAP 都搞不清楚,别跟我说你懂微服务
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
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》 这本书的介绍吧!