【微服务架构】什么是微服务? — 全面了解微服务架构

简介: 【微服务架构】什么是微服务? — 全面了解微服务架构

What is Microservices — Edureka

您有没有想过,什么是微服务以及扩展行业如何与它们集成,同时构建应用程序以满足客户的期望?

要了解什么是微服务,您必须了解如何将单体应用程序分解为独立打包和部署的小型微型应用程序。本文将让您清楚了解开发人员如何使用微服务根据需要扩展其应用程序。

在本文中,您将了解以下内容:

  • 为什么是微服务?
  • 什么是微服务?
  • 微服务架构的特点
  • 微服务架构的优势
  • 设计微服务的最佳实践
  • 使用微服务的公司

为什么是微服务?

现在,在我告诉你微服务之前,让我们看看在微服务之前流行的架构,即单体架构。

用外行的话来说,你可以说它类似于一个大容器,其中应用程序的所有软件组件都组装在一起并紧密打包。

列出了单体架构的挑战:


Challenges of Monolithic Architecture — What is Microservices

 

不灵活——无法使用不同的技术构建单体应用程序

不可靠——即使系统的一个功能不起作用,那么整个系统也不起作用

不可扩展——应用程序无法轻松扩展,因为每次需要更新应用程序时,都必须重新构建整个系统

阻碍持续开发——应用程序的许多功能不能同时构建和部署

开发缓慢——单体应用程序的开发需要大量时间来构建,因为每个特性都必须一个接一个地构建

不适合复杂应用程序——复杂应用程序的特性具有紧密耦合的依赖关系

上述挑战是导致微服务发展的主要原因。

什么是微服务?

微服务,又名微服务架构,是一种架构风格,它将应用程序构建为围绕业务领域建模的小型自治服务的集合。



Microservices Representation —What Is Microservices

在微服务架构中,每个服务都是自包含的,并且实现了单一的业务能力

传统架构与微服务的区别

将电子商务应用程序视为一个用例,以了解它们之间的区别。

我们在上图中观察到的主要区别在于,所有功能最初都在共享单个数据库的单个实例下。但是,对于微服务,每个特性都被分配了一个不同的微服务,处理它们自己的数据,并执行不同的功能。

现在,让我们通过查看其架构来更多地了解微服务。参考下图:



Differences Between Monolithic Architecture and Microservices - What is Microservices

 

微服务架构


Microservice Architecture - What is Microservices

  • 来自不同设备的不同客户端尝试使用不同的服务,例如搜索、构建、配置和其他管理功能。
  • 所有服务都根据其域和功能进行分离,并进一步分配给各个微服务。
  • 这些微服务有自己的负载均衡器和执行环境来执行它们的功能,同时在自己的数据库中捕获数据。
  • 所有微服务都通过无状态服务器(REST 或消息总线)相互通信。
  • 微服务借助服务发现了解其通信路径,并执行自动化、监控等操作功能。
  • 然后,微服务执行的所有功能都通过 API 网关与客户端通信。
  • 所有内部点都从 API 网关连接。因此,任何连接到 API 网关的人都会自动连接到整个系统。

现在,让我们通过查看其特性来了解更多关于微服务的信息。

微服务功能



Features Of Microservices — What is Microservices

  • 解耦——系统内的服务在很大程度上是解耦的。因此,整个应用程序可以轻松构建、更改和扩展。
  • 组件化——微服务被视为可以轻松更换和升级的独立组件。
  • 业务能力——微服务非常简单,专注于单一能力。
  • 自治——开发人员和团队可以彼此独立工作,从而提高速度。
  • 持续交付——通过软件创建、测试和批准的系统自动化,允许频繁发布软件。
  • 责任——微服务不关注应用程序作为项目。相反,他们将应用程序视为他们负责的产品
  • 去中心化治理——重点是为正确的工作使用正确的工具。这意味着没有标准化的模式或任何技术模式。开发人员可以自由选择最有用的工具来解决他们的问题
  • 敏捷性——微服务支持敏捷开发。任何新功能都可以快速开发并再次丢弃

微服务的优势


Advantages of Microservices - What is Microservices

  • 独立开发——所有微服务都可以根据各自的功能轻松开发
  • 独立部署——根据他们的服务,他们可以单独部署在任何应用程序中
  • 故障隔离——即使应用程序的一项服务不工作,系统仍然继续运行
  • 混合技术栈——不同的语言和技术可用于构建同一应用程序的不同服务
  • 粒度缩放——单个组件可以根据需要进行缩放,无需将所有组件一起缩放

设计微服务的最佳实践

在当今世界,复杂性已成功渗透到产品中。微服务架构承诺让团队保持扩展并更好地运作。

以下是设计微服务的最佳实践:


Best Practices To Design Microservices - What is Microservices

现在,让我们看一个用例来更好地理解微服务。

用例:购物车应用程序

让我们看一个购物车应用程序的经典用例。

当您打开购物车应用程序时,您看到的只是一个网站。但是,在幕后,购物车应用程序具有接受付款的服务、客户服务等。

假设这个应用程序的开发人员已经在一个整体框架中创建了它。请参考下图:


Monolithic Framework Of Shopping Cart Application — What is Microservices

因此,所有功能都放在一个代码库中,并位于一个底层数据库下。

现在,让我们假设市场上出现了一个新品牌,开发人员希望将即将推出的品牌的所有细节都放在这个应用程序中。

然后,他们不仅需要为新标签重新设计服务,还必须重新构建整个系统并相应地进行部署。

为了避免此类挑战,该应用程序的开发人员决定将他们的应用程序从单体架构转变为微服务。参考下图了解购物车应用的微服务架构。


Microservice Architecture of Shopping Cart Application — What is Microservices

这意味着开发人员不会创建 Web 微服务、逻辑微服务或数据库微服务。相反,他们为搜索、推荐、客户服务等创建单独的微服务。

这种类型的应用程序架构不仅可以帮助开发人员克服以前架构面临的所有挑战,还可以帮助购物车应用程序轻松构建、部署和扩展。

使用微服务的公司

有很多公司使用微服务来构建应用程序,这些只是仅举几例:


Companies using Microservices - What is Microservices

这将我们带到关于什么是微服务的文章的结尾。我希望您发现这篇文章内容丰富,并为您的知识增加了价值。

相关文章
|
22小时前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
13 6
|
22小时前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
7 1
|
4天前
|
监控 安全 应用服务中间件
微服务架构下的API网关设计策略与实践####
本文深入探讨了在微服务架构下,API网关作为系统统一入口点的设计策略、实现细节及其在实际应用中的最佳实践。不同于传统的摘要概述,本部分将直接以一段精简的代码示例作为引子,展示一个基于NGINX的简单API网关配置片段,随后引出文章的核心内容,旨在通过具体实例激发读者兴趣,快速理解API网关在微服务架构中的关键作用及实现方式。 ```nginx server { listen 80; server_name api.example.com; location / { proxy_pass http://backend_service:5000;
|
6天前
|
缓存 监控 API
探索微服务架构中的API网关模式
随着微服务架构的兴起,API网关成为管理和服务间交互的关键组件。本文通过在线零售公司的案例,探讨了API网关在路由管理、认证授权、限流缓存、日志监控和协议转换等方面的优势,并详细介绍了使用Kong实现API网关的具体步骤。
22 3
|
7天前
|
运维 NoSQL Java
后端架构演进:微服务架构的优缺点与实战案例分析
【10月更文挑战第28天】本文探讨了微服务架构与单体架构的优缺点,并通过实战案例分析了微服务架构在实际应用中的表现。微服务架构具有高内聚、低耦合、独立部署等优势,但也面临分布式系统的复杂性和较高的运维成本。通过某电商平台的实际案例,展示了微服务架构在提升系统性能和团队协作效率方面的显著效果,同时也指出了其带来的挑战。
41 4
|
6天前
|
存储 缓存 监控
探索微服务架构中的API网关模式
探索微服务架构中的API网关模式
20 2
|
6天前
|
JavaScript 持续交付 Docker
解锁新技能:Docker容器化部署在微服务架构中的应用
【10月更文挑战第29天】在数字化转型中,微服务架构因灵活性和可扩展性成为企业首选。Docker容器化技术为微服务的部署和管理带来革命性变化。本文探讨Docker在微服务架构中的应用,包括隔离性、可移植性、扩展性、版本控制等方面,并提供代码示例。
31 1
|
7天前
|
弹性计算 Kubernetes Cloud Native
云原生架构下的微服务设计原则与实践####
本文深入探讨了在云原生环境中,微服务架构的设计原则、关键技术及实践案例。通过剖析传统单体架构面临的挑战,引出微服务作为解决方案的优势,并详细阐述了微服务设计的几大核心原则:单一职责、独立部署、弹性伸缩和服务自治。文章还介绍了容器化技术、Kubernetes等云原生工具如何助力微服务的高效实施,并通过一个实际项目案例,展示了从服务拆分到持续集成/持续部署(CI/CD)流程的完整实现路径,为读者提供了宝贵的实践经验和启发。 ####
|
30天前
|
缓存 监控 API
探索微服务架构中的API网关模式
【10月更文挑战第5天】随着微服务架构的兴起,企业纷纷采用这一模式构建复杂应用。在这种架构下,应用被拆分成若干小型、独立的服务,每个服务围绕特定业务功能构建并通过HTTP协议协作。随着服务数量增加,统一管理这些服务间的交互变得至关重要。API网关作为微服务架构的关键组件,承担起路由请求、聚合数据、处理认证与授权等功能。本文通过一个在线零售平台的具体案例,探讨API网关的优势及其实现细节,展示其在简化客户端集成、提升安全性和性能方面的关键作用。
70 2
|
1月前
|
存储 缓存 监控
探索微服务架构中的API网关模式
【10月更文挑战第1天】探索微服务架构中的API网关模式
85 2