什么是微服务
1 什么是微服务
根据James Lewis和Martin Fowler的说法,“微服务架构风格是一种将单个应用程序开发为一组小型服务的方法。每个微服务都可以独立运行,且微服务间的通信采用轻量级协议。这些服务围绕业务功能构建,并使用完全自动化的机制完成部署。”
这些服务可以用不同的编程语言编写并使用不同的数据存储技术。
2 微服务的特点
- 基于REST暴露服务。
- 都是小型可部署单位。
- 服务必须可以发布在云端。
微服务定义了一种体系结构的方法,该方法将应用程序划分为实现业务需求的松散耦合服务池。它类似于基于服务的体系结构(SOA)。基于微服务的体系结构的最重要特征是,它可以用于大型复杂应用程序的连续交付。
微服务拆分了应用程序并构建逻辑上独立的较小应用程序。例如,我们可以在Amazon AWS的帮助下以低的成本构建一个云应用程序。
在上图中,每个微服务都有自己的业务层和数据库。如果我们更改其中某个微服务,不会影响其他服务。这些服务通过使用轻量级协议(例如HTTP或REST)相互通信。
3 微服务遵循的原则
微服务有以下原则:
- 单一职责原则
- 以业务驱动而非技术
- 隔离故障
- 架构自动化
- 独立部署
3.1 单一责任原则
单一职责原则规定,程序中的类或模块应仅承担一项责任。任何微服务一次都不能承担多个责任。
3.2 以业务驱动而非技术
微服务永远不会限制使用最适合于业务需求的技术栈或数据库,甚至不同微服务可以采用不同技术栈构建。
3.3 隔离故障
一个大型应用程序几乎不受单个模块故障的影响,因为服务可能会随时失败。所以,微服务架构中应该能够快速检测故障,甚至自动恢复故障。
3.4 架构自动化
架构自动化其实就是脚本化的过程。借助脚本化,我们可以将相同的配置应用于单个节点或数千个节点。也称为配置管理。
3.5 独立部署
微服务与平台无关。这意味着我们可以独立设计和部署它们,而不会影响其他服务。
热门文章
优秀文章