微服务体系结构是一种将大型应用程序分解为一组较小的服务的方法。 每个服务都在自己的进程中运行,并使用
HTTP/HTTPS、WebSocket 或 AMQP 等协议与其他进程进行通信。
每个微服务在特定的上下文边界内实现特定的端到端域或业务功能,每个微服务都必须自主开发,并且可以独立部署。
微服务的一些主要特征包括:
- 微服务具有规模小、独立和松散耦合的特点。 每个微服务具有一个单独的代码库,可由小型开发团队进行管理。 微服务是独立部署的。
- 团队可以更新现有微服务,而无需重新生成和重新部署整个应用程序。 微服务负责将其数据或外部状态保存到各自的数据库中。
- 与整体体系结构不同,微服务不共享数据库。 微服务使用定义完善的 API 相互通信。 每个服务的内部实现细节均对其他服务隐藏。
- 支持polyglot 编程。 例如,微服务无需共享相同的技术堆栈、库或框架。