• 面试时可能会问到的微服务相关的面试题
  • 发布于 2个月前
  • 192 热度
    0 评论
1. 说说微服务架构的优势?
.独立开发 所有微服务都可以根据各自的功能轻松开发
.独立部署 根据他们所提供的服务,可以在任何应用中单独部署
.故障隔离 即使应用中的一个服务不起作用,系统仍然继续运行
.混合技术栈 可以用不同的语言和技术来构建同一应用程序的不同服务
.粒度缩放 各个组件可根据需要进行扩展,无需将所有组件融合到一起

2. 你对微服务是怎么理解的?
微服务,又名微服务架构,是一种架构风格,它将应用构建为一个小型自治服务的集合,以业务领域为模型。通俗地说,就像蜜蜂通过对蜡制的等边六角形单元来构建它们的蜂巢。他们最初从使用各种材料的小单元开始,一点点的搭建出一个大型蜂巢。这些小单元组成坚固的结构,将蜂窝的特定部分固定在一起。这里,每个小单元都独立于另一个,但它也与其他小单元相关。

这意味着对一个小单元的损害不会损害其他的单元,因此,蜜蜂可以在不影响完整蜂巢的情况下重建这些单元。

3. 微服务有哪些特点?
.解耦(Decoupling) - 系统内的服务很大程度上是分离的。因此整个应用可以被轻松构建、修改和扩展
.组件化(Componentization) - 微服务被视为可以被轻松替换和升级的独立组件
.业务能力(Business Capabilities) - 微服务非常简单,专注于单一功能
.自治(Autonomy) - 开发人员和团队可以相互独立工作,从而提高效率
.持续交付(ContinousDelivery) - 允许频繁发版,通过系统自动化完成对软件的创建、测试和审核,
.责任(Responsibility) - 微服务不把程序作为项目去关注。相反,他们将程序视为自己负责的产品
.分散治理(Decentralized Governance) - 重点是用正确的工具去做正确的事。这意味着没有任何标准化模式或着技术模式。开发人员可以自由选择最合适的工具来解决自己的问题
.敏捷性(Agility) - 微服务支持敏捷开发。任何新功能都可以快速开发并被再次丢弃

4. 设计微服务的最佳实践是什么?
.为每个微服务分开数据存储
.将代码保持在类似的成熟度等级上
.为每个微服务进行单独的构建
.部署到容器中
.将服务器视为无状态的

5. 什么是领域驱动设计(DDD)?
.专注于核心领域逻辑
.在模型上找到综合的设计
.不断与领域专家合作,改进应用程序模型并解决与领域相关的问题

6. 为什么需要域驱动设计(DDD)?
.映射领域
.降低复杂性
.可测试性
.可维护性
.知识丰富的设计
.将业务和服务结合在一起
.上下文集中
.通用语言

7.  什么是内聚?
内聚是一个模块内部各元素之间相关联程度的度量

8. 什么是耦合?
组件之间依赖关系强度的度量被称为耦合。好的设计总是高内聚和低耦合的。

9. 什么是REST/RESTful ?它的用途是什么?
Representational State Transfer(REST)/ RESTful (表述性状态转移)是一种帮助计算机系统通过 Internet 进行通信的架构风格。这使得微服务更容易理解和实现。

微服务可以用 RESTful API 来实现,当然也可以不用,但是用 RESTful API 去构建松散耦合的微服务总是更容易些。
用户评论