2022年Java秋招面试必看的 | 微服务面试题

前言

你有了解过Java微服务吗?知道什么是微服务架构吗?

微服务架构是一种架构风格和架构思想, 在传统软件应用架构的基础上,将系统业务按照功能拆分为更细的服务。

完整版面试题PDF下载地址:企业java面试真题汇总

拆分的每一个服务都是一个独立的应用,这些应用对外提供公共的API,可以独立承担对外服务的职责。通过此种思想方式所开发的软件服务实体就是“微服务”,而围绕着微服务思想构建的一系列结构,都可以称之为“微服务架构”。

1、您对微服务有何了解?

微服务,又称微服务 _架构_,是一种架构风格,它将应用程序构建为以业务领域为模型的小型自治服务集合

通俗地说,你必须看到蜜蜂如何通过对齐六角形蜡细胞来构建它们的蜂窝状物。他们最初从使用各种材料的小部分开始,并继续从中构建一个大型蜂箱。这些细胞形成图案,产生坚固的结构,将蜂窝的特定部分固定在一起。这里,每个细胞独立于另一个细胞,但它也与其他细胞相关。这意味着对一个细胞的损害不会损害其他细胞,因此,蜜蜂可以在不影响完整蜂箱的情况下重建这些细胞。

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

2、微服务架构有哪些优势?

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

3、微服务有哪些特点?

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

4、设计微服务的最佳实践是什么?

以下是设计微服务的最佳实践:
图片说明

5、微服务架构如何运作?

图片说明

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

6、微服务架构的优缺点是什么?

图片说明

7、单片,SOA和微服务架构有什么区别?

图片说明

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

8、在使用微服务架构时,您面临哪些挑战?

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

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

9、SOA和微服务架构之间的主要区别是什么?

图片说明

10、微服务有什么特点?

图片说明

11、什么是领域驱动设计?

12、为什么需要域驱动设计(DDD)?

13、什么是无所不在的语言?

14、什么是凝聚力?

15、什么是耦合?

16、什么是REST / RESTful以及它的用途是什么?

17、你对Spring Boot有什么了解?

18、什么是Spring引导的执行器?

19、什么是Spring Cloud?

20、Spring Cloud解决了哪些问题?

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

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

23、什么是不同类型的微服务测试?

24、您对Distributed Transaction有何了解?

25、什么是Idempotence以及它在哪里使用?

26、什么是有界上下文?

27、什么是双因素身份验证?

28、双因素身份验证的凭据类型有哪些?

29、什么是客户证书?

30、PACT在微服务架构中的用途是什么?

31、什么是OAuth?

32、康威定律是什么?

33、合同测试你懂什么?

34、什么是端到端微服务测试?

35、Container在微服务中的用途是什么?

36、什么是微服务架构中的DRY?

37、什么是消费者驱动的合同(CDC)?

38、Web,RESTful API在微服务中的作用是什么?

39、您对微服务架构中的语义监控有何了解?

40、我们如何进行跨功能测试?

41、我们如何在测试中消除非决定论?

42、Mock或Stub有什么区别?

43、您对Mike Cohn的测试金字塔了解多少?

44、Docker的目的是什么?

45、什么是金丝雀释放?

46、什么是持续集成(CI)?

47、什么是持续监测?

48、架构师在微服务架构中的角色是什么?

49、我们可以用微服务创建状态机吗?

50、什么是微服务中的反应性扩展?

上面的这些面试题都整理成了PDF文档,希望能帮助到你面试前的复习且找到一个好的工作,也节省你在网上搜索资料的时间来学习!

#秋招##面试#
全部评论

相关推荐

小厂面经,也是我的处女面(30min)1.自我介绍2.spring boot的自动装配原理(好多类和接口的单词都忘了全称是啥了,就说了记得的单词,流程应该说对了吧)3.有用过redis吗?主要是用在实现什么功能(说了技术派用redis的zset来实现排行榜)5.有了解过Redisson吗?讲一下对于分布式锁的了解以及在什么场景下应用(说了秒杀场景)6.对mysql有了解吗?包括它的索引优化和创建(把想起来的全说了)7.了解设计模式吗?比如单例模式,为什么要使用单例模式,它的优点是什么(昨天刚看的设计模式)8.工厂模式有了解吗?主要的使用场景是?(也是昨天刚看的)9.场景题:有7个服务器,需要在早上十点定时的向数据库中的用户表中的用户发短信,如果做到发送的消息不重复,且如果发送失败了需要知道是到哪个用户失败了,这样下次就直接从这个用户开始(我答了用spring task来实现定时,用分布式锁来保证只有一份服务器可以发送消息,用消息队列来存储消息,然后用消息确认机制来保证错误信息的记录,以及在数据库或者业务层面完成消息消费的幂等性)10.场景题:如果在系统启动的时间就将数据库的所有用户相关的信息都读到一个hashmap中(这个没啥思路,没答好)27届的投了一个星期终于有一个面试了,大部分公司都只招26的
inari233:已oc,拒了
查看9道真题和解析
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客企业服务