50道微服务经典面试题,想进大厂你必须弄懂(内附答案)

本文分享了50道关于微服务的面试题,涵盖微服务的优势、特点、最佳实践、架构运作等方面。内容包括解耦、独立开发与部署、故障隔离、技术栈多样性、粒度缩放等关键点。还讨论了微服务架构的优缺点、与单片、SOA的区别,以及面临的挑战,如自动化组件、易感性、配置管理和调试等。此外,还提到了Spring Boot、Spring Cloud在微服务中的作用。最后,强调了微服务测试的复杂性和重要性,以及相关面试题和学习资料。
摘要由CSDN通过智能技术生成

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

图1:微服务的蜂窝表示 – 微服务访谈问题

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

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和微服务之间的主要区别如下:

SOA

微服务

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

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

重要性在于 业务功能 重用

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

他们有 共同的 治理 和标准

他们专注于 人们的 合作 和其他选择的自由

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

简单的消息系统

它们支持 多种消息协议

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

多线程, 有更多的开销来处理I / O.

单线程 通常使用Event Loop功能进行非锁定I / O处理

最大化应用程序服务可重用性

专注于 解耦

传统的关系数据库 更常用

现代 关系数据库 更常用

系统的变化需要修改整体

系统的变化是创造一种新的服务

DevOps / Continuous Delivery正在变得流行,但还不是主流

专注于DevOps /持续交付

Q10。微服务有什么特点?

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

50道微服务经典面试题,想进大厂你必须弄懂(内附答案)

图7:微服务的特征 – 微服务访谈问题

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

50道微服务经典面试题,想进大厂你必须弄懂(内附答案)

图8: DDD原理 – 微服务面试问题

Q12。为什么需要域驱动设计(DDD)?

50道微服务经典面试题,想进大厂你必须弄懂(内附答案)

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

Q13。什么是无所不在的语言?

如果您必须定义泛在语言(UL),那么它是特定域的开发人员和用户使用的通用语言,通过该语言可以轻松解释域。

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

Q14。什么是凝聚力?

模块内部元素所属的程度被认为是凝聚力

Q15。什么是耦合?

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

Q16。什么是REST / RESTful以及它的用途是什么?

Representational State Transfer(REST)/ RESTful Web服务是一种帮助计算机系统通过Internet进行通信的架构风格。这使得微服务更容易理解和实现。

微服务可以使用或不使用RESTful API实现,但使用RESTful API构建松散耦合的微服务总是更容易。

Q17。你对Spring Boot有什么了解?

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

Spring Boot是解决这个问题的方法。使用spring boot可以避免所有样板代码和配置。因此,基本上认为自己就好像你正在烘烤蛋糕一样,春天就像制作蛋糕所需的成分一样,弹簧靴就是你手中的完整蛋糕。

50道微服务经典面试题,想进大厂你必须弄懂(内附答案)

图10: Spring Boot的因素 – 微服务面试问题

Q18。什么是Spring引导的执行器?

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

Q19。什么是Spring Cloud?

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

Q20。Spring Cloud解决了哪些问题?

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

  • 与分布式系统相关的复杂性 – 包括网络问题,延迟开销,带宽问题,安全问题。

  • 处理服务发现的能力 – 服务发现允许集群中的进程和服务找到彼此并进行通信。

  • 解决冗余问题 – 冗余问题经常发生在分布式系统中。

  • 负载平衡 – 改进跨多个计算资源(例如计算机集群,网络链接,中央处理单元)的工作负载分布。

  • 减少性能问题 – 减少因各种操作开销导致的性能问题。

Q21。在Spring MVC应用程序中使用WebMvcTest注释有什么用处?

50道微服务经典面试题,想进大厂你必须弄懂(内附答案)

在测试目标只关注Spring MVC组件的情况下,WebMvcTest注释用于单元测试Spring MVC应用程序。在上面显示的快照中,我们只想启动ToTestController。执行此单元测试时,不会启动所有其他控制器和映射。

Q22。你能否给出关于休息和微服务的要点?

休息

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

微服务

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

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

Q23。什么是不同类型的微服务测试?

在使用微服务时,由于有多个微服务协同工作,测试变得非常复杂。因此,测试分为不同的级别。

  • 底层,我们有**面向技术的测试,**如单元测试和性能测试。这些是完全自动化的。

  • 中间层面,我们进行了诸如压力测试和可用性测试之类的探索性测试。

  • 顶层, 我们的 验收测试数量很少。这些验收测试有助于利益相关者理解和验证软件功能。

Q24。您对Distributed Transaction有何了解?

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

Q25。什么是Idempotence以及它在哪里使用?

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

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

Q26。什么是有界上下文?

有界上下文是域驱动设计的核心模式。DDD战略设计部门的重点是处理大型模型和团队。DDD通过将大型模型划分为不同的有界上下文并明确其相互关系来处理大型模型。

Q27。什么是双因素身份验证?

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

50道微服务经典面试题,想进大厂你必须弄懂(内附答案)

图11: 双因素认证的表示 – 微服务访谈问题

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

最后

小编在这里分享些我自己平时的学习资料,由于篇幅限制,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

程序员代码面试指南 IT名企算法与数据结构题目最优解

这是” 本程序员面试宝典!书中对IT名企代码面试各类题目的最优解进行了总结,并提供了相关代码实现。针对当前程序员面试缺乏权威题目汇总这一-痛点, 本书选取将近200道真实出现过的经典代码面试题,帮助广“大程序员的面试准备做到万无一失。 “刷”完本书后,你就是“题王”!

image.png

《TCP-IP协议组(第4版)》

本书是介绍TCP/IP协议族的经典图书的最新版本。本书自第1版出版以来,就广受读者欢迎。

本书最新版进行」护元,以体境计算机网络技不的最新发展,全书古有七大部分共30草和7个附录:第一部分介绍一些基本概念和基础底层技术:第二部分介绍网络层协议:第三部分介绍运输层协议;第四部分介绍应用层协议:第五部分介绍下一代协议,即IPv6协议:第六部分介绍网络安全问题:第七部分给出了7个附录。

image.png

Java开发手册(嵩山版)

这个不用多说了,阿里的开发手册,每次更新我都会看,这是8月初最新更新的**(嵩山版)**

image.png

MySQL 8从入门到精通

本书主要内容包括MySQL的安装与配置、数据库的创建、数据表的创建、数据类型和运算符、MySQL 函数、查询数据、数据表的操作(插入、更新与删除数据)、索引、存储过程和函数、视图、触发器、用户管理、数据备份与还原、MySQL 日志、性能优化、MySQL Repl ication、MySQL Workbench、 MySQL Utilities、 MySQL Proxy、PHP操作MySQL数据库和PDO数据库抽象类库等。最后通过3个综合案例的数据库设计,进步讲述 MySQL在实际工作中的应用。

image.png

Spring5高级编程(第5版)

本书涵盖Spring 5的所有内容,如果想要充分利用这一领先的企业级 Java应用程序开发框架的强大功能,本书是最全面的Spring参考和实用指南。

本书第5版涵盖核心的Spring及其与其他领先的Java技术(比如Hibemate JPA 2.Tls、Thymeleaf和WebSocket)的集成。本书的重点是介绍如何使用Java配置类、lambda 表达式、Spring Boot以及反应式编程。同时,将与企业级应用程序开发人员分享一些见解和实际经验,包括远程处理、事务、Web 和表示层,等等。

image.png

JAVA核心知识点+1000道 互联网Java工程师面试题

image.png

image.png

企业IT架构转型之道 阿里巴巴中台战略思想与架构实战

本书讲述了阿里巴巴的技术发展史,同时也是-部互联网技 术架构的实践与发展史。

image.png

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
达式、Spring Boot以及反应式编程。同时,将与企业级应用程序开发人员分享一些见解和实际经验,包括远程处理、事务、Web 和表示层,等等。

[外链图片转存中…(img-Rec0SJBt-1713381445204)]

JAVA核心知识点+1000道 互联网Java工程师面试题

[外链图片转存中…(img-N1XL8hrm-1713381445205)]

[外链图片转存中…(img-qVkd2HQU-1713381445205)]

企业IT架构转型之道 阿里巴巴中台战略思想与架构实战

本书讲述了阿里巴巴的技术发展史,同时也是-部互联网技 术架构的实践与发展史。

[外链图片转存中…(img-OC0BFHrf-1713381445206)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-cLi6s5wW-1713381445206)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值