站务联系

内容

谈谈微服务设计中的 API 网关模式

发布时间:2021-03-09   来源:网络整理    
字号:

根据 Gartner 对微服务的定义:“微服务是范围窄小、封装密切、松散耦合、可独立布署且可独立伸缩的应用程序组件。”

与将模块高度耦合并布署为一个大的应用程序相比,微服务的目标是将应用程序充分分解或则时延为松散耦合的许多微服务或则模块,这样做对下边几点有巨大帮助:

在微服务构架中,我们依照各自的特定需求布署不同的松耦合服务,其中每位服务都有其更细细度的 API 模型,用以服务于不同的客户端(Web,移动跟第三方 API)。

客户端至微服务的连结

谈谈微服务设计中的 API 网关模式

在不中断客户端连结的状况下,很难在微服务中进行修改。例如,在合并或界定微服务时,可能还要再次撰写客户端部份代码。

API 网关

为了解决上述挑战,人们引进了一个附加层,该附加层坐落客户端跟服务器之间,充当从客户端至服务器的反向代理路由恳求。与面向对象设计的方式相同,它为封装底层系统构架的 API 提供了一个单一的入口,称为 API 网关。

简而言之,它的行为如同 API 管理员一样,但重要的是不要将 API 管理与 API Gateway 混为一谈。

谈谈微服务设计中的 API 网关模式

后端服务后端方式(BFF Backend for Frontend)

它是 API 网关方式的一种变体。它提供了基于客户端的多个网段,而不是提供给客户端一个单一的入口点。目的是按照客户端的需求提供量身订制的 API,从而祛除了为所有客户端制做通用 API 造成的大量的耗费。

谈谈微服务设计中的 API 网关模式

Netflix 的流媒体服务可在 1000 多种不同类别的设备(电视、机顶盒、智能相机、游戏系统、平板笔记本等)上使用,在高峰时段可以每秒处理 50,000 个恳求,这种需求是 OSFA (one-size-fits-all)的 REST API 难以满足的,因此它们为每位设备量身订制了 API 网关。

Netflix 的 Zuul 2 是所有踏入 Netflix 云基础构架的恳求的第一步。Zuul 2 大大改进了构架跟功能微端服务器,使我们的网段才能处理、路由跟保护 Netflix 的云系统,并帮助为我们的 1.25 亿会员提供最佳感受。

图说天下

×
二维码生成