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