无法验证app(无法验证app需要互联网连接以验证是否信任开发者)

Q1 .你对微服务了解多少?微服务,也称为微服务架构,是一种架构风格,它基于业务领域将应用程序构建成一个自治服务的小集合。通俗地说,你必须看到蜜蜂是如何通过排列

Q1 .你对微服务了解多少?

微服务,也称为微服务架构,是一种架构风格,它基于业务领域将应用程序构建成一个自治服务的小集合。

通俗地说,你必须看到蜜蜂是如何通过排列六边形蜡细胞来建造它们的蜂窝的。他们开始使用各种材料的小零件,然后用它们建造一个大蜂巢。这些细胞形成图案,产生坚固的结构,并将蜂窝的特定部分固定在一起。在这里,每个细胞独立于另一个细胞,但也与其他细胞相关。这意味着对一个细胞的损害不会损害其他细胞,因此蜜蜂可以在不影响整个蜂巢的情况下重建这些细胞。

微服务问题50问

图1:微服务的细胞表示——微服务的面试问题

请参考上图。这里,每个六边形代表一个单独的服务组件。类似于bees的工作,每个敏捷团队使用可用的框架和选择的技术栈来构建单独的服务组件。就像在蜂巢中一样,每个服务组件形成一个强大的微服务架构,以提供更好的可扩展性。此外,敏捷团队可以独立处理每个服务组件的问题,对整个应用程序没有影响或影响很小。

Q2 .微服务架构有什么优势?

微服务问题50问

图2:微服务的优势——微服务面试问题

独立开发 – 所有微服务都可以根据各自的功能轻松开发独立部署 – 基于其服务,可以在任何应用程序中单独部署它们故障隔离 – 即使应用程序的一项服务不起作用,系统仍可继续运行混合技术堆栈 – 可以使用不同的语言和技术来构建同一应用程序的不同服务粒度缩放 – 单个组件可根据需要进行缩放,无需将所有组件缩放在一起

Q3 .微服务有什么特点?

微服务问题50问

图3:微服务的特点——微服务的面试问题

解耦 – 系统内的服务很大程度上是分离的。因此,整个应用程序可以轻松构建,更改和扩展组件化 – 微服务被视为可以轻松更换和升级的独立组件业务能力 – 微服务非常简单,专注于单一功能自治 – 开发人员和团队可以彼此独立工作,从而提高速度持续交付 – 通过软件创建,测试和批准的系统自动化,允许频繁发布软件责任 – 微服务不关注应用程序作为项目。相反,他们将应用程序视为他们负责的产品分散治理 – 重点是使用正确的工具来做正确的工作。这意味着没有标准化模式或任何技术模式。开发人员可以自由选择最有用的工具来解决他们的问题敏捷 – 微服务支持敏捷开发。任何新功能都可以快速开发并再次丢弃

Q4 .设计微服务的最佳实践有哪些?

以下是设计微服务的最佳实践:

微服务问题50问

图4:设计微服务的最佳实践——微服务的面试问题

Q5 .微服务架构是如何工作的?

微服务架构具有以下组件:

微服务问题50问

图5:微服务架构–微服务面试问题

客户端 – 来自不同设备的不同用户发送请求。身份提供商 – 验证用户或客户身份并颁发安全令牌。API网关 – 处理客户端请求。静态内容 – 容纳系统的所有内容。管理 – 在节点上平衡服务并识别故障。服务发现 – 查找微服务之间通信路径的指南。内容交付网络 – 代理服务器及其数据中心的分布式网络。远程服务 – 启用驻留在IT设备网络上的远程访问信息。

Q6 .微服务架构的优缺点是什么?

微服务架构的优势

微服务架构的缺点

自由使用不同的技术

增加故障排除挑战

每个微服务专注于一个单一的功能。

由于远程呼叫而增加延迟

支持单一可部署单位

增加了配置和其他操作的工作量。

允许软件频繁发布。

很难保证交易的安全。

确保每个服务的安全性。

很难跨越各种界限跟踪数据。

多个服务被并行开发和部署。

很难在服务之间编码。

Q7 .单片、SOA、微服务架构有什么区别?

微服务问题50问

图6:单片SOA和微服务的比较——微服务的面试问题

单片架构类似于大容器,其中应用程序的所有软件组件组装在一起并紧密封装。一个面向服务的架构是一种相互通信服务的集合。通信可以涉及简单的数据传递,也可以涉及两个或多个协调某些活动的服务。微服务架构是一种架构风格,它将应用程序构建为以业务域为模型的小型自治服务集合。

Q8 .使用微服务架构时,你面临哪些挑战?

开发一些更小的微服务听起来很容易,但是开发时经常遇到的挑战如下。

自动化组件:难以自动化,因为有许多较小的组件。因此,对于每个组件,我们必须遵循Build,Deploy和Monitor的各个阶段。易感性:将大量组件维护在一起变得难以部署,维护,监控和识别问题。它需要在所有组件周围具有很好的感知能力。配置管理:有时在各种环境中维护组件的配置变得困难。调试:很难找到错误的每一项服务。维护集中式日志记录和仪表板以调试问题至关重要。

Q9 .SOA和微服务架构的主要区别是什么?

SOA和微服务的主要区别如下:

前进速度

微服务

遵循“尽可能共享”的架构方法

遵循“尽可能少地共享”的架构方法

重要性在于业务功能重用。

重要性在于“有界背景”的概念

他们有共同的治理和标准。

他们关注人们的合作和其他选择的自由。

使用企业服务总线(ESB)进行通信。

简单信息系统

它们支持多种消息协议。

他们使用HTTP/REST等轻量级协议。

多线程处理I/O的开销更大.

单线程通常使用事件循环函数进行未锁定的I/O处理。

最大化应用服务的可重用性。

关注脱钩

传统的关系数据库更常用。

现代关系数据库更常用

系统的变化需要整体的修改。

系统变更是为了创建新的服务。

ops/连续交付正在变得流行,但还不是主流。

关注开发运维/持续交付

Q10 .微服务有什么特点?

您可以列出微服务的特征,如下所示:

微服务问题50问

图7:微服务的特点——微服务的面试问题

Q11 .什么是领域驱动设计?

微服务问题50问

图8: DDD原则——微服务面试问题

问题12 .你为什么需要领域驱动设计(DDD)?

微服务问题50问

图9:我们需要DDD的因素——微服务面试问题

问题13 .什么是无处不在的语言?

如果非要定义无处不在的语言(UL),那么它就是特定领域的开发者和用户使用的通用语言,通过它可以很容易地解释领域。

无处不在的语言必须非常清晰,以便将所有团队成员放在同一页面上,并以机器可以理解的方式翻译他们。

Q14 .什么是凝聚力?

一个模块的内部元素所属的程度被认为是内聚。

问题15 .什么是耦合?

组件之间的依赖强度的度量被认为是耦合。一个好的设计总是被认为具有高内聚和低耦合。

问题16 .什么是REST/RESTful,它的目的是什么?

表述性状态转移(REST)/RESTful web服务是一种帮助计算机系统通过互联网进行通信的架构风格。这使得微服务更容易理解和实现。

微服务可以在有或没有RESTful API的情况下实现,但是使用RESTful API构建松散耦合的微服务总是更容易。

Q17 .你对Spring Boot了解多少?

事实上,随着新功能的增加,弹簧变得越来越复杂。如果您必须启动一个新的spring项目,您必须添加构建路径或maven依赖项,配置应用服务器,并添加spring配置。所以一切都得从头说起。

Spring Boot是这个问题的解决方案。使用spring boot可以避免所有的样板代码和配置。所以,基本上把自己想象成在烤蛋糕。春天就像做蛋糕所需的食材,而春靴就是你手中完整的蛋糕。

微服务问题50问

图10:Spring Boot因素——微服面试问题

Q18 .什么是弹簧导向的执行器?

Spring Boot执行器提供restful Web服务来访问生产环境中运行的应用程序的当前状态。在执行程序的帮助下,您可以检查各种指标并监控您的应用程序。

Q19 .什么是春云?

据Spring Cloud官网介绍,Spring Cloud为开发者提供了在分布式系统中快速构建一些常见模式(如配置管理、服务发现、断路器、智能路由、领导选举、分布式会话、集群状态)的工具。

问题20 .春云解决了哪些问题?

在使用Spring Boot开发分布式微服务时,我们面临的问题很少是Spring Cloud能够解决的。

与分布式系统相关的复杂性 – 包括网络问题,延迟开销,带宽问题,安全问题。处理服务发现的能力 – 服务发现允许集群中的进程和服务找到彼此并进行通信。解决冗余问题 – 冗余问题经常发生在分布式系统中。负载平衡 – 改进跨多个计算资源(例如计算机集群,网络链接,中央处理单元)的工作负载分布。减少性能问题 – 减少因各种操作开销导致的性能问题。

问题21 .Spring MVC应用中的WebMvcTest注释有什么用?

微服务问题50问

当测试目标只关注Spring MVC组件时,使用WebMvcTest标注对Spring MVC应用进行单元测试。在上面显示的快照中,我们只想启动ToTestController。当执行这个单元测试时,所有其他控制器和映射都不会启动。

问题22 .能否给出关于休息和微服务的要点?

休息

虽然可以用很多方式实现微服务,但是REST over HTTP是实现微服务的一种方式。REST还可以用于其他应用,比如Web应用、API设计和MVC应用,提供业务数据。

微服务

微服务是一种架构,其中系统的所有组件都放在单独的组件中,这些组件可以单独构建、部署和扩展。微服务的一些原则和最佳实践有助于构建弹性应用。

简而言之,你可以说REST是构建微服务的媒介。

问题23 .微服务测试有哪些不同的类型?

在使用微服务的时候,测试变得非常复杂,因为有很多微服务在一起工作。因此,测试分为不同的级别。

在底层,我们有面向技术的测试,如单元测试和性能测试。这些是完全自动化的。在中间层面,我们进行了诸如压力测试和可用性测试之类的探索性测试。在顶层, 我们的 验收测试数量很少。这些验收测试有助于利益相关者理解和验证软件功能。

问题24 .你对分布式事务了解多少?

分布式事务是指单个事件导致两个或多个独立的数据源发生突变,无法以原子方式提交的任何情况。在微服务的世界中,它变得更加复杂,因为每个服务都是一个工作单元,大多数时候,多个服务必须协同工作才能使业务成功。

问题25 .什么是幂等,用在哪里?

幂等性是指能够以这样一种方式做两次事情,最终结果保持不变,即好像只做了一次一样。

用法:在远程服务或数据源中使用幂等,这样当它多次接收指令时,它只处理指令一次。

问题26 .什么是有界语境?

有界上下文是领域驱动设计的核心模式。DDD战略设计部的重点是处理大型模型和团队。DDD通过将大规模模型分成不同的有界环境并阐明它们之间的相互关系来处理它们。

问题27 .什么是双因素身份认证?

双因素身份验证为帐户登录过程启用了第二级身份验证。

微服务问题50问

图11:双因素身份验证的表示——微服务面试问题

因此,假设用户只需输入用户名和密码,这被认为是单因素身份验证。

问题28 .双因素身份认证的凭据类型有哪些?

这三种证书是:

微服务问题50问

图12:双因素认证的证书类型-微服务面试问题

问题29 .什么是客户证书?

客户端用来向远程服务器发送经过身份验证的请求的数字证书称为客户端证书。客户端证书在许多相互认证设计中起着非常重要的作用,为请求者的身份提供了强有力的保证。

Q30 .PACT在微服务架构中的作用是什么?

PACT是一个开源工具,它允许测试服务提供商和消费者之间的交互,并将其与合同隔离,从而提高微服务集成的可靠性。

微服务中的使用:

用于在微服务中实现消费者驱动的合同。测试微服务的消费者和提供者之间的消费者驱动的合同。

检查下一批。

Q31 .OAuth是什么?

OAuth代表oauth2.0协议。这允许通过启用客户端应用程序(例如,第三方提供商脸书、GitHub等)来访问资源所有者的资源。)在HTTP服务上。因此,您可以与另一个站点共享存储在一个站点中的资源,而无需使用其凭据。

Q32 .康威定律是什么?

“任何设计系统(广义定义)的组织都将产生一个设计,其结构是该组织的沟通结构的副本。”梅尔·康威

微服务问题50问

图13:康威定律的表述——微服面试问题

该定律基本上试图传达这样一个事实:为了使软件模块工作,整个团队应该有良好的沟通。因此,系统的结构反映了产生它的组织的社会边界。

Q33 .你对测试合同了解多少?

根据Martin Flower的说法,契约测试是在外部服务的边界上进行的测试,以验证它是否符合消费者服务所期望的契约。

此外,契约测试没有深入测试服务的行为。更具体地说,它测试服务调用的输入输出是否包含所需的属性和响应延迟,以及吞吐量是否在允许的范围内。

Q34 .什么是端到端微服务测试?

端到端测试验证工作流中的每个流程都正常运行。这确保了系统作为一个整体协同工作并满足所有要求。

通俗地说,你可以说端到端测试是一种在一定时间后测试一切的测试。

微服务问题50问

图14:测试级别-微服务面试问题

Q35 .容器在微服务中的用途是什么?

容器是管理基于微服务的应用程序的好方法,这样它们就可以单独开发和部署。您可以将微服务封装在容器映像及其依赖关系中,然后您可以使用它来滚动按需实例的微服务,而无需任何额外的工作。

微服务问题50问

图15:容器的表示及其在微服务中的使用——微服务面试问题

Q36 .微服务架构干嘛?

干代表不要重复自己。它基本上促进了重用代码的概念。这就导致了库的开发和共享,进而导致了紧密耦合。

Q37 .什么是消费者驱动的契约(CDC)?

这基本上是一种开发微服务的模式,以便外部系统可以使用它们。我们在处理微服务的时候,有一个具体的提供商在搭建,有一个或者多个消费者在使用微服务。

通常,提供者在XML文档中指定接口。但是在消费者驱动的契约中,每个服务消费者传达提供者期望的接口。

Q38 .Web和RESTful API在微服务中的作用是什么?

服务微体系结构基于这样一个概念,即所有服务都应该能够相互交互以构建业务功能。因此,要实现这一点,每个微服务都必须有一个接口。这使得Web API成为微服务非常重要的推手。RESTful API,基于Web的开放网络原理,为构建微服务架构的组件之间的接口提供了最合理的模型。

Q39 .你对微服务架构中的语义监控了解多少?

语义监控,也称为全面监控,将自动化测试与监控应用程序结合起来,以检测业务失败因素。

Q40 .我们如何进行跨功能测试?

跨功能测试是对非功能性需求的验证,即那些不能像普通功能一样实现的需求。

Q41 .怎样才能消除测试中的不确定性?

非确定性测试(NDT)基本上是一种不可靠的测试。所以,有时他们可能会通过,显然有时他们可能会失败。当它们失败时,它们将重新运行。

消除测试不确定性的一些方法如下:

隔离异步远程服务隔离时间资源泄漏

Q42 .Mock和Stub有什么区别?

烟蒂

一个有助于运行测试的虚拟对象。在某些可以硬编码的条件下提供固定行为。永远不会测试存根的任何其他行为。

例如,对于空堆栈,您可以创建一个只为empty()方法返回true的存根。因此,堆栈中是否有元素并不重要。

一个虚拟对象,其中最初设置了某些属性。此对象的行为取决于set属性。也可以测试对象的行为。

例如,对于客户对象,您可以通过设置名称和年龄来模拟它。您可以将年龄设置为12,然后测试isAdult()方法,当年龄大于18时,该方法将返回true。因此,您的模拟客户对象适用于指定的条件。

Q43 .你对迈克·科恩的测试金字塔了解多少?

Mike Cohn提供了一个名为测试金字塔的模型。这描述了软件开发所需的自动化测试的类型。

微服务问题50问

图16: Mike Cohn的测试金字塔-微服务面试问题

根据金字塔,第一层应该具有最高的测试次数。在服务层,测试数量应该小于单元测试级别,但大于端到端级别。

Q44 .Docker的用途是什么?

Docker提供了一个容器环境,可以用来托管任何应用程序。在这里,软件应用程序和支持它的依赖项被紧密地打包在一起。

所以这个打包的产品叫容器,因为是由Docker完成的,所以叫Docker容器!

Q45 .什么是金丝雀释放?

金丝雀发布是一种降低在生产中引入新软件版本风险的技术。这是通过慢慢地将更改传播给少数用户,然后将它们发布到整个基础结构来实现的,也就是说,让每个人都可以使用它们。

Q46 .什么是持续集成(CI)?

持续集成(CI)是每次团队成员提交版本控制变更时自动构建和测试代码的过程。这鼓励开发人员通过在每个小任务完成后将变更合并到共享的版本控制存储库中来共享代码和单元测试。

Q47 .什么是持续监控?

监控持续深入的监控覆盖范围,从浏览器中的前端性能指标,到应用程序性能,再到主机虚拟化基础架构指标。

Q48 .架构师在微服务架构中的角色是什么?

微服务架构中的架构师扮演以下角色:

决定整个软件系统的布局。帮助确定组件的分区。因此,他们确保组件相互粘合,但不紧密耦合。与开发人员共同编写代码,了解日常生活中面临的挑战。为开发微服务的团队提供某些工具和技术的建议。提供技术治理,以便技术开发团队遵循微服务原则。这里推荐一下我的Java后端技术裙: 834962734,群里有(分布式架构、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、等学习资源)进群免费送给每一位Java小伙伴,不管你是转行,还是工作中想提升自己能力都可以!

Q49 .我们可以用微服务创建一个状态机吗?

我们知道,每个拥有自己数据库的微服务都是一个可独立部署的程序单元,这反过来允许我们创建一个状态机。因此,我们可以为特定的微服务指定不同的状态和事件。

比如我们可以定义订单微服务。订单可以有不同的状态。订单状态的转变可以是订单微服务中的独立事件。

Q50 .微服务中的反应式扩展是什么?

电抗扩展也称为Rx。这是一种设计方法。我们通过调用多个服务来收集结果,然后编译复合响应。这些调用可以是同步的或异步的,阻塞的或非阻塞的。与传统流程相反,Rx是分布式系统中非常流行的工具。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/146064.html

发表回复

登录后才能评论