微服务架构是一种构建软件系统的方法,其中应用程序由小型、独立的服务组成,每个服务负责特定的业务任务,并独立于其他服务进行开发和部署。
优点:
缺点:
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中的绿色构建并不保证不同版本的服务相互兼容。