17 道微服务面试题


(给ImportNew加星标,提高Java技能)


1、说说你对微服务有何了解


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


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


微服务的蜂窝表示


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


2、说说微服务架构的优势



3、微服务有哪些特点


  • 解耦:系统内的服务很大程度上是分离的。因此,整个应用程序可以轻松构建,更改和扩展。

  • 组件化:微服务被视为可以轻松更换和升级的独立组件。

  • 业务能力:微服务非常简单,专注于单一功能。

  • 自治:开发人员和团队可以彼此独立工作,从而提高速度。

  • 持续交付:通过软件创建,测试和批准的系统自动化,允许频繁发布软件。

  • 责任:微服务不关注应用程序作为项目。相反,他们将应用程序视为他们负责的产品。

  • 分散治理:重点是使用正确的工具来做正确的工作。这意味着没有标准化模式或任何技术模式。开发人员可以自由选择最有用的工具来解决他们的问题。

  • 敏捷:微服务支持敏捷开发。任何新功能都可以快速开发并再次丢弃。


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


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


设计微服务的最佳实践


5、微服务架构如何运作


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


  • 客户端:来自不同设备的不同用户发送请求

  • 身份提供商:验证用户或客户身份并颁发安全令牌

  • API 网关:处理客户端请求

  • 静态内容:容纳系统的所有内容

  • 管理:在节点上平衡服务并识别故障

  • 服务发现:查找微服务之间通信路径的指南

  • 网络:代理服务器及其数据中心的分布式网络

  • 远程服务:启用驻留在 IT 设备网络上的远程访问信息


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


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


单片 SOA 和微服务之间的比较


  • 单片架构类似于大容器,其中应用程序的所有软件组件组装在一起并紧密封装。

  • 一个面向服务的架构师一种相互通信服务器的集合。通信可以涉及简单的数据传递,也可以涉及两个或多个协调某些活动的服务。

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


    集合。


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


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


  • 自动化组件:难以自动化,因为有许多较小的组件。因此,对于每个组件,我们必须遵循 Build、Deploy 和 Monitor 的各个阶段。

  • 易感性:将大量组件维护在一起变得难以部署,维护,监控和识别问题。它需要在所有组件周围具有很好的感知能力。

  • 配置管理:有时在各种环境中维护组件的配置变得困难。

  • 调试:很难找到错误的每一项服务。维护集中式日志记录和仪表板以调试问题至关重要。


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


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



10、微服务有什么特点


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


微服务的特征


11、什么是领域驱动设计


DDD 原理


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


我们需要DDD的因素


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


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


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


14、什么是凝聚力


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


15、什么是耦合


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


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


Representational State Transfer(REST)/RESTful Web服务是一种帮组计算机系统通过Internet 进行通信的架构风格。这使得微服务更容易理解和实现。微服务可以使用或不使用RESTful API实现,但使用RESTful API构建松散耦合的微服务总是更容易。


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


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


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

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

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

转自:Go 大神 / 蜗牛


- EOF -

推荐阅读  点击标题可跳转

1、微服务中的鉴权该怎么做?

2、基于 Kubernetes 的微服务项目设计与实现

3、从 1.5 开始搭建一个微服务框架——链路追踪 traceId


看完本文有收获?请转发分享给更多人

关注「ImportNew」,提升Java技能

点赞和在看就是最大的支持❤️

相关推荐

  • 紧急提醒!黑客正利用假 ChatGPT 来推送恶意软件
  • 周鸿祎:ChatGPT可能两三年内产生自我意识;字节加入大模型之战;Ubuntu下一版本默认不再支持Flatpak| 极客头条
  • PM2学习(一)简介、安装、入门
  • 飞书真的会存在「体验优势」吗?
  • 强烈推荐一位Java架构师
  • Java 文档注解最全详解,建议收藏!
  • 请收藏,SpringBoot 参数校验/参数验证!
  • 我们从RabbitMQ迁移到了Kafka
  • 强到离谱!阿里P8前端面试全套笔记,即将删除~
  • 顶级Javaer都在使用的类库,真香!
  • 谈JVM线程和内存参数合理性设置
  • ChatGPT背后:从0到1,OpenAI的创立之路
  • ChatGPT负责人John Schulman:如何做好研究
  • 达特茅斯学院、亚利桑那州立大学、Meta AI、加州大学圣塔芭芭拉分校知名学者重磅来袭!
  • 搞懂 useState 和 useEffect 的实现原理
  • 要工业化又要限煤电,纠结的印度究竟怎么办?
  • 用力挖好这座能源大矿,中国富“甲”一方
  • 国家1号文件连蚯蚓都保护了,粮食安全问题到底多严峻?
  • 面试官:如何停止一个正在运行的线程?
  • 美国5名环境顾问前往俄亥俄州时坠机身亡;韩为防自杀禁产蜂窝煤遭批;台军“腾云”无人机起飞冲出跑道 | 每日大新闻