1、您对微服务有何了解?
微服务,又称微服务架构,是一种架构风格,它将应用程序构建为以业务领域
为模型的小型自治服务集合。一文详解微服务架构
通俗地说,你必须看到蜜蜂如何通过对齐六角形蜡细胞来构建它们的蜂窝状
物。他们最初从使用各种材料的小部分开始,并继续从中构建一个大型蜂箱。
这些细胞形成图案,产生坚固的结构,将蜂窝的特定部分固定在一起。
这里,每个细胞独立于另一个细胞,但它也与其他细胞相关。这意味着对一个
细胞的损害不会损害其他细胞,因此,蜜蜂可以在不影响完整蜂箱的情况下重
建这些细胞。
请参考上图。这里,每个六边形形状代表单独的服务组件。与蜜蜂的工作类 似,每个敏捷团队都使用可用的框架和所选的技术堆栈构建单独的服务组件。 就像在蜂箱中一样,每个服务组件形成一个强大的微服务架构,以提供更好的 可扩展性。此外,敏捷团队可以单独处理每个服务组件的问题,而对整个应用 程序没有影响或影响最小。
2、说说微服务架构的优势
优势 | 说明 |
---|---|
独立开发 | 所有微服务都可以根据各自的功能轻松开发 |
独立部署 | 根据他们所提供的服务,可以在任何应用中单独部署 |
故障隔离 | 即使应用中的一个服务不起作用,系统仍然继续运行 |
混合技术栈 | 可以用不同的语言和技术来构建同一应用程序的不同服务 |
粒度缩放 | 各个组件可根据需要进行扩展,无需将所有组件融合到一起 |
3、微服务有哪些特点?
4、设计微服务的最佳实践是什么?
以下是设计微服务的最佳实践:
图 6:设计微服务的最佳实践 – 微服务访谈问题
5、微服务架构如何运作?
微服务架构具有以下组件:
6、微服务架构的优缺点是什么?
微服务架构的优点 | 微服务架构的缺点 |
---|---|
自由使用不同的技术 | 增加故障排除挑战 |
每个微服务都侧重于单一功能 | 由于远程呼叫而增加延迟 |
支持单个可部署单元 | 增加了配置和其他操作的工作量 |
允许经常发布软件 | 难以保持交易安全 |
确保每项服务的安全性 | 艰难地跨越各种便捷跟踪数据 |
多个服务是并行开发和部署的 | 难以在服务之间进行编码 |
7、单片,SOA 和微服务架构有什么区别?
8、在使用微服务架构时,您面临哪些挑战?
开发一些较小的微服务听起来很容易,但开发它们时经常遇到的挑战如下。
9、SOA 和微服务架构之间的主要区别是什么?
SOA | 微服务 |
---|---|
遵循“尽可能多的共享”架构方法 | 遵循“尽可能少分享”架构方法 |
重要性在于“业务功能”重用 | 重要性在于“有界背景”的概念 |
它们有共同的治理和标准 | 它们专注于人们的合作和其他选择的自由 |
使用企业服务总线(ESB)进行通信 | 简单的消息系统 |
它们支持多种消息协议 | 它们使用轻量级协议,如 HTTP/REST 等 |
多线程,有跟多的开销来处理 I/O | 单线程,通常使用 Event Loop 功能进行非 锁定 I/O 处理 |
最大化应用程序服务可重用性 | 专注于解耦 |
传统的关系数据库更常用 | 现代关系数据库更常用 |
系统的变化需要修改整体 | 系统的变化是创造一种新的服务 |
DevOps/Continuous Delivery 正在变得流 行,但还不是主流 | 专注于 DevOps/持续交付 |
10、微服务有什么特点?
您可以列出微服务的特征,如下所示:
图 7:微服务的特征 – 微服务访谈问题
11、什么是领域驱动设计?
图 8: DDD 原理 – 微服务面试问题
12、为什么需要域驱动设计(DDD)?
图 9:我们需要 DDD 的因素 – 微服务面试问题
13、什么是无所不在的语言?
如果您必须定义泛在语言(UL),那么它是特定域的开发人员和用户使用的通 用语言,通过该语言可以轻松解释域。无处不在的语言必须非常清晰,以便它将所有团队成员放在同一页面上,并以 机器可以理解的方式进行翻译。
14、什么是凝聚力?
模块内部元素所属的程度被认为是凝聚力。
15、什么是耦合?
组件之间依赖关系强度的度量被认为是耦合。一个好的设计总是被认为具有高
内聚力和低耦合性。
16、什么是 REST / RESTful 以及它的用途是什么?
Representational State Transfer(REST)/ RESTful Web服务是一种帮助计 算机系统通过 Internet 进行通信的架构风格。这使得微服务更容易理解和实 现。 微服务可以使用或不使用 RESTful API 实现,但使用 RESTful API 构建松散 耦合的微服务总是更容易。
17、什么是不同类型的微服务测试?
在使用微服务时,由于有多个微服务协同工作,测试变得非常复杂。因此,测
试分为不同的级别。