微服务面试相关内容了解下~(一)

原文地址:微服务面试相关内容了解下~(一)

1、微服务是什么?

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

以蜜蜂通过对齐六角形蜡细胞构建蜂窝为例,它们最初使用各种材料的小部分开始,并继续从中构建一个大型蜂箱,这些细胞形成图案,产生坚固的结构,将蜂窝的特定部分固定在一起,此处每个蜡细胞互相独立,但互相之间也有关联,这也意味着单个细胞受到损伤之后不会影响其它部位,因此,蜜蜂可在不影响完整蜂箱情况下,重建这些受到损伤的蜡细胞。

参考下图:

每个六边形表示单独的服务组件,与蜜蜂的工作类似,各敏捷团队使用各自框架和技术堆栈构建单独服务组件,就像在蜂箱中一样,各个服务共同形成一个强大的微服务架构,可提供更好的扩展性,此外,各敏捷团队可单独处理各服务组件,对整个应用程序没有影响或影响最小。

2、微服务架构的优势?

  1. 独立开发,所有微服务都可根据各自的功能轻松开发。

  2. 独立部署,根据各自所提供的服务,可在任何应用中单独部署。

  3. 故障隔离,即便应用中某一服务不起作用,系统仍可继续运行。

  4. 混合技术栈,可用不同语言和技术来构建同一应用程序的不同服务。

  5. 粒度缩放,各组件可根据需要进行扩展,无需将所以组件融合到一起。

3、微服务的特点?

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

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

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

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

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

  6. 责任:微服务不关注应用程序作为项目,只将应用程序视为自己负责的产品。

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

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

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

注释如下:

  1. 01:为每个微服务分别存储数据

  2. 02:将代码保持在类似的成熟度级别

  3. 03:为每个微服务单独构建

  4. 04:部署到容器

  5. 05:将服务设计为无状态服务

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

具有以下组件:

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

  2. 身份提供商:验证用户身份并颁发安全令牌。

  3. API网关:处理客户端请求。

  4. 静态内容:容纳系统的所有内容。

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

  6. 服务发现:查找微服务之间通信路径指南。

  7. 内容交付网络:代理服务器及其数据中心的分布式网络。

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

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

微服务架构的优点:

  1. 自由使用不同的技术。

  2. 每个微服务都侧重于单一功能。

  3. 支持单个可部署单元。

  4. 允许经常发布软件。

  5. 确保每项服务的安全性。

  6. 多个服务是并行开发和部署的。

微服务架构的缺点:

  1. 增加故障排除挑战。

  2. 由于远程呼叫而增加延迟。

  3. 增加配置和其它操作的工作量。

  4. 难以保持交易安全。

  5. 艰难的跨越各种便捷跟踪数据。

  6. 难以在服务之间进行编码。

7、单片(monolithic)、SOA、微服务架构(microservices)的区别?

分析如下:

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

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

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

至此,本次分享就结束了,后期会慢慢补充。

以上仅为个人观点,不一定准确,能帮到各位那是最好的。

好啦,到这里本文就结束了,喜欢的话就来个三连击吧。

扫码关注公众号,获取更多优质内容。

  

Guess you like

Origin blog.csdn.net/luyaran/article/details/121383604