什么是微服务
这些年来,微服务大行其道,当你要构建一个大型应用的时候,这几乎是必须的一种架构风格。这篇文档将会带你了解什么是微服务。
服务化架构
微服务时一种面向服务的架构风格,也成为服务化架构。除了微服务外,还有另一种面向服务化的架构 SOA(Service Oriented Architecture,2000 年提出)。他们之间的对比如下:

SOA 是通过企业总线将松散的组件连接到一起,使用总线进行通信。而微服务则是通过 Rest 风格的 HTTP 请求或者 RPC 请求来进行服务之间的通信。
SOA 架构模式存在性能开销大、治理成本高、可能存在单点故障、扩展性差、集成成本高、复杂性高等问题。
他们之间的异同如下表所示:
SOA | 微服务 | |
|---|---|---|
共同点 | 分布式应用,以服务为中心的松耦合应用架构模式,服务之间通过定义明确的接口和协议进行通信 | |
目标 | 解决异构系统 的服务化 | 解决互联网系统快速交付 |
服务粒度 | 相对粗 | 相对细 |
适用性 | 跨企业、大企业跨部门的复杂应用系统建设 | 适合小型团队的持续化发布 |
也随着物联网规模的扩大,应用的需要支持敏捷开发迭代。在 2010 年前后提出了微服务的概念。并且 Google、Amazon、Facebook、Netflix 等互联网巨头纷纷采用这种架构风格并取得了成功。
微服务是面向服务的架构风格
首先来看维基百科对其的描述:
在软件工程中,微服务架构是一种面向服务的架构设计风格。它是一系列松耦合、细粒度的服务的集合,采用了轻量级的通信协议。
微服务架构是一种软件架构风格,它是将一个应用程序拆分成一组小型、自治的服务,每个服务都围绕着特定的业务功能进行构建。这些服务可以独立部署、扩展和维护,彼此之间通过轻量级的通信机制进行交互,通常采用HTTP协议或消息队列。

微服务架构适用于复杂的应用程序和大型团队,它可以提高灵活性、可维护性和可扩展性。然而,微服务架构也带来了一些挑战,如服务发现、分布式事务、一致性管理等问题需要仔细处理。成功采用微服务架构需要深思熟虑,并结合适当的工具和最佳实践。
总结
本文是关于微服务架构的介绍和概述。它讨论了微服务作为一种服务导向架构风格,指出了它与SOA(服务导向架构)的相似之处和不同之处,并提供了微服务实践的成功案例。
文档提到了 SOA 和微服务的共同点,例如都是以服务为中心的松耦合架构模式,并且服务之间通过定义明确的接口和协议进行通信。但是它们的目标、服务粒度和适用性有所不同:SOA更适用于大企业和复杂系统的集成,而微服务更倾向于快速交付和适合小团队持续发布。
微服务架构通过划分应用程序为一系列小型、自治的服务来提高应用的灵活性、可维护性和可扩展性。这些服务是围绕特定业务功能构建的,可以独立部署、扩展和维护,并通常使用HTTP协议或消息队列进行轻量级通信。
虽然微服务架构提供了很多优势,但也引入了一些挑战,如服务发现、分布式事务处理和一致性管理等,这些都需要在采用微服务时考虑。
文档还强调了微服务架构在互联网公司中的普及,特别是随着物联网规模的扩大以及对敏捷开发迭代需求的增长,谷歌、亚马逊、脸书和奈飞等巨头都采用了微服务架构并成功实施。
本文为理解微服务提供了一个基础,包括它的定义、特点、与 SOA 的比较,以及它在现代软件开发中的实际应用。