zenith-docs 1.0.0 Help

什么是微服务

这些年来,微服务大行其道,当你要构建一个大型应用的时候,这几乎是必须的一种架构风格。这篇文档将会带你了解什么是微服务。

服务化架构

微服务时一种面向服务的架构风格,也成为服务化架构。除了微服务外,还有另一种面向服务化的架构 SOA(Service Oriented Architecture,2000 年提出)。他们之间的对比如下:

1140b mz wj5r9u4p bzbo c

SOA 是通过企业总线将松散的组件连接到一起,使用总线进行通信。而微服务则是通过 Rest 风格的 HTTP 请求或者 RPC 请求来进行服务之间的通信。

SOA 架构模式存在性能开销大、治理成本高、可能存在单点故障、扩展性差、集成成本高、复杂性高等问题。

他们之间的异同如下表所示:

SOA

微服务

共同点

分布式应用,以服务为中心的松耦合应用架构模式,服务之间通过定义明确的接口和协议进行通信

目标

解决异构系统 的服务化

解决互联网系统快速交付

服务粒度

相对粗

相对细

适用性

跨企业、大企业跨部门的复杂应用系统建设

适合小型团队的持续化发布

也随着物联网规模的扩大,应用的需要支持敏捷开发迭代。在 2010 年前后提出了微服务的概念。并且 Google、Amazon、Facebook、Netflix 等互联网巨头纷纷采用这种架构风格并取得了成功。

微服务是面向服务的架构风格

首先来看维基百科对其的描述:

在软件工程中,微服务架构是一种面向服务的架构设计风格。它是一系列松耦合、细粒度的服务的集合,采用了轻量级的通信协议。

微服务架构是一种软件架构风格,它是将一个应用程序拆分成一组小型、自治的服务,每个服务都围绕着特定的业务功能进行构建。这些服务可以独立部署、扩展和维护,彼此之间通过轻量级的通信机制进行交互,通常采用HTTP协议或消息队列。

microservice features

微服务架构适用于复杂的应用程序和大型团队,它可以提高灵活性、可维护性和可扩展性。然而,微服务架构也带来了一些挑战,如服务发现、分布式事务、一致性管理等问题需要仔细处理。成功采用微服务架构需要深思熟虑,并结合适当的工具和最佳实践。

总结

本文是关于微服务架构的介绍和概述。它讨论了微服务作为一种服务导向架构风格,指出了它与SOA(服务导向架构)的相似之处和不同之处,并提供了微服务实践的成功案例。

文档提到了 SOA 和微服务的共同点,例如都是以服务为中心的松耦合架构模式,并且服务之间通过定义明确的接口和协议进行通信。但是它们的目标、服务粒度和适用性有所不同:SOA更适用于大企业和复杂系统的集成,而微服务更倾向于快速交付和适合小团队持续发布。

微服务架构通过划分应用程序为一系列小型、自治的服务来提高应用的灵活性、可维护性和可扩展性。这些服务是围绕特定业务功能构建的,可以独立部署、扩展和维护,并通常使用HTTP协议或消息队列进行轻量级通信。

虽然微服务架构提供了很多优势,但也引入了一些挑战,如服务发现、分布式事务处理和一致性管理等,这些都需要在采用微服务时考虑。

文档还强调了微服务架构在互联网公司中的普及,特别是随着物联网规模的扩大以及对敏捷开发迭代需求的增长,谷歌、亚马逊、脸书和奈飞等巨头都采用了微服务架构并成功实施。

本文为理解微服务提供了一个基础,包括它的定义、特点、与 SOA 的比较,以及它在现代软件开发中的实际应用。

Last modified: 06 August 2024