从我之前的博客,你必须已经对微服务架构有了基本的了解。在本博客中,您将深入了解架构概念并使用优步案例研究来实现它们。
在本博客中,您将了解以下内容:
您可以参考什么是微服务来了解微服务的基本原理和优点。
如果我给你微服务的定义,那将是公平的。因此,没有适当的微服务/微服务架构定义,但可以说它是一个由执行不同操作的小型,可单独部署的服务组成的框架。
微服务专注于单个业务域,可以作为完全独立的可部署服务实现,并在不同的技术堆栈上实现它们。
图1:单片和微服务架构之间的区别 – 微服务架构。
请参阅上图以了解单片和微服务架构之间的区别。为了更好地理解两种架构之间的差异,您可以参考我之前的博客,什么是微服务。
为了让您更好地理解,让我告诉您微服务架构的一些关键概念。
在使用微服务开始构建自己的应用程序之前,需要明确应用程序的范围和功能。
以下是在讨论微服务时应遵循的一些准则。
现在,您在设计微服务时已经阅读了基本指南,让我们了解微服务的架构。
典型的微服务架构(MSA)应包含以下组件:
请参考下图。
图2:微服务架构 – 微服务架构。
我知道架构看起来有点复杂,但让我为你简化一下。
该体系结构从不同类型的客户端开始,从尝试执行各种管理功能的不同设备(如搜索,构建,配置等)开始。
然后,来自客户端的这些请求在身份提供者上传递,身份提供者验证客户端的请求并将请求传递给API网关。然后通过定义良好的API网关将请求传递给内部服务。
由于客户端不直接调用服务,因此API网关充当客户端将请求转发到适当的微服务的入口点。
使用API网关的优点包括:
在接收到客户端的请求之后,内部体系结构由微服务组成,这些微服务通过消息相互通信以处理客户端请求。
他们通过两种类型的消息进行通信:
您可能会想到的下一个问题是使用微服务的应用程序如何处理其数据?
好吧,每个微服务都拥有一个私有数据库来捕获他们的数据并实现相应的业务功能。此外,微服务数据库仅通过其服务API进行更新。请参考下图:
图3:处理数据的微服务的表示 – 微服务架构。
微服务提供的服务被转发到任何支持不同技术栈的进程间通信的远程服务。
在微服务自身通信之后,他们将静态内容部署到基于云的存储服务,该服务可以通过内容交付网络(CDN)将它们直接传递给客户端。
除了上述组件外,还有一些其他组件出现在典型的微服务架构中:
该组件负责平衡节点上的服务和识别故障。
充当微服务的指南,以便在维护节点所在的服务列表时找到它们之间的通信路由。
现在,让我们来看看这个架构的优缺点,以便更好地理解何时使用这个架构。
请参阅下表。
通过比较Uber以前的架构和现在的架构,让我们更多地了解微服务。
像许多创业公司一样,优步开始了它的旅程,采用了单一建筑,专为单一城市的单一产品而建。当时似乎清理了一个代码库,并解决了Uber的核心业务问题。然而,随着优步开始在全球范围内扩展,他们在可扩展性和持续集成方面严格面临各种问题。
图4: Uber的单片架构 – 微服务架构。
上图描绘了优步以前的架构。
因此,如果您在此注意到所有功能,例如乘客管理,计费,通知功能,付款,旅行管理和驾驶员管理都是在一个框架内组成的。
当优步开始在全球范围内扩张时,这种框架引入了各种挑战。以下是一些突出的挑战
为了避免这些问题,优步决定改变其架构,并关注其他超级增长型公司,如亚马逊,Netflix,Twitter和其他许多公司。因此,优步决定将其单片架构分解为多个代码库,以形成微服务架构。
请参考下图查看Uber微服务架构。
图5:优步微服务架构 – 微服务架构。
通过这种方式,优步将其架构从单片机转变为微服务。