架构 (IT)后端开发者

什么是微服务架构,它的优缺点是什么?

用 Hintsage AI 助手通过面试

回答。

微服务架构是一种构建软件系统的方法,其中应用程序由小型、独立的服务组成,每个服务负责特定的业务任务,并独立于其他服务进行开发和部署。

优点:

  • 可扩展性:每个服务可以单独扩展。
  • 开发独立性:不同团队可以快速开发独立的服务。
  • 故障恢复:一个服务的故障不会导致整个系统崩溃。

缺点:

  • 管理复杂性:需要配置交互、监控和平衡。
  • 部署复杂性:许多服务难以协调。
  • 通信成本增加:服务通过网络连接,这增加了延迟并需要可靠的集成。

Python(Flask)微服务的REST示例:

from flask import Flask, jsonify app = Flask(__name__) @app.route('/user/<int:user_id>') def get_user(user_id): return jsonify({"user_id": user_id, "name": "Ivan"}) if __name__ == "__main__": app.run(port=5001)

关键特点:

  • 每个服务都是独立的应用程序。
  • 容易为不同的服务引入新技术或语言。
  • 需要考虑网络交互的错误和数据一致性的保障。

误导性问题。

微服务可以共享同一个数据库吗?

在从单体迁移的阶段这是可以接受的,但与理念相悖,因为每个服务应该独立存储其数据以最小化依赖并确保独立发展。

微服务架构一定要使用Docker吗?

不,Docker简化了部署和隔离,但微服务也可以在没有容器化的情况下实现,例如使用虚拟机或甚至单独的物理服务器。

如果服务之间的API合同被破坏,但CI/CD管道一切正常,会发生什么?

API合同的故障将导致服务之间的交互错误,这只有通过集成测试才能发现。CI/CD中的绿色构建并不保证不同版本的服务相互兼容。