关于微服务中API 网关,你了解多少?
在微服务体系结构中,不同的松散耦合服务根据各自的具体需求进行部署,每个服务都有一个更细粒度的api模型来服务不同的客户端(web、移动性和第三方api)。今天,我们主要关注微服务中的api网关,并深入讨论为什么需要api网关、它们的功能以及相关的设计模式。
API网关的起源
API网关是客户机和服务器之间的附加层,充当从客户端到服务器的反向代理路由请求。类似于面向对象的设计模式,它为API提供了一个单一的入口点,封装了底层的系统架构。显然,它是为了解决客户端与每个部署的微服务之间直接通信的挑战而出现的:
如果微服务向客户端公开了一个细粒度的api,客户端应该向每个微服务提出请求。在一个典型的单个页面中,可能需要多个服务器往返来满足请求。对于网络条件较差的设备(例如移动设备)来说,这可能会更糟。
微服务中各种通信协议的存在,如GRPC、节俭、REST、AMQP等,使得客户很难轻易地采用所有这些协议。
通用网关功能(如身份验证、授权、日志记录)必须在每个微服务中实现。
要在不中断客户端连接的情况下对微服务进行更改是很困难的。例如,在合并或分割微服务时,可能需要重写一些客户端代码。
简而言之,API网关的行为就像API管理员,但重要的是不要将API管理与APIGateway混为一谈。
API网关的功能
路线
网关封装底层系统并将其与客户端分离,为客户端提供一个与微服务系统通信的单一入口点。
API网关的集成集成了一些边缘重复,而不需要每个微服务来实现它们。它包括以下功能:
认证和授权
服务发现集成
缓存响应结果
重试策略,保险丝,QoS
限速节流
负载平衡
日志记录、链接跟踪、关联
标题、查询字符串和声明转义
IP白名单
IAM
集中日志管理(服务、错误日志等之间的事务ID)
身份提供者、身份验证和授权
后端服务前端模式(BFFBackendforFron趋向)
它是API网关模式的一个变体。它提供基于客户端的多个网关,而不是为客户提供一个单一的入口点。目的是根据客户的需要提供自定义API,从而消除为所有客户创建通用API的浪费。
BFF的基本概念是为每个用户体验开发一个利基后端。PhilCalzado(PhilCalado)的指导是"一个体验,一个BFF。"如果客户(iOS客户端、Android客户端、Web浏览器等)的需求差异很大,并且严格要求单个代理或API的发布时间,那么BFF是一个很好的解决方案。还应该指出,更复杂的设计需要复杂的步骤。
GraphQL是API的一种查询语言。PhilCalado关于BFF和GraphQL的想法相似,但并不相互排斥。他补充说,BFF与您的端口形状无关,而是给予客户相对于应用程序的自主权,在应用程序中,您可以使用许多BFF或OSFA构建GraphQLAPI(一刀切)。
最后,下面是由API网关实现的一些提示:在此过程中,可能存在一个单一的故障点或瓶颈,响应时间由于通过API网关而增加的网络跳变和复杂性风险而增加。
- 新迪天工®CAD V2023 R1 版本发布!4个超实用的增强功能请拿好
- 这一次,送上东方祝福 | JULEEJULEE茱俪「东方系列」珠宝相片盒发布
- 艺卓发布新一代24.1"USB-C连接的sRGB色彩管理显示器CS2400R
- NBA篮球盛宴震撼来袭,青瞳视觉为咪咕虚拟直播提供全流程服务助力打CALL!
- 美的工业技术旗下MOTINOVA亮相 EUROBIKE 2023
- 北京许昌搬家公司长途搬家公司上门打包装
- 宜宾黑石材+湛江黑+蒙古黑墓碑石材;墓碑石材是人类纪念死者
- 代尔塔DT115防静电限次型防化服-连体防护服
- 离心粒化技术在建筑材料生产中的应用与发展
- 高温杀菌锅做出的产品做出来的产品有哪些优势?
- 潜行创新打造尖端水下科技产品,全方位升级泳池清洁体验
- 舜云互联陆续中标西藏巨龙铜业全生命周期服务项目 开启全面合作新模式
- 全国政协委员、新疆维吾尔自治区人民政府参事刘明军一行再度参观考察那拉本源乳业
- 热烈欢迎新疆商务厅全疆考察团莅临新疆那拉本源乳业
- 首个茶水间评价标准发布,促进办公场景消费升级
- 代尔塔ALAINA级内置气密重型防化服-锦勇
- 高温杀菌锅主要用在哪些行业?通常在行业中的作用是什么?
- 赣州拖车救援24小时道路救援汽车搭电送油救援
- 如何选择中国SimexPUR-99控制器的总代理
- 高考结束,自驾川藏线旅游,探索西藏之美。自驾游拉萨
- 618战绩出炉!看家居品牌如何在今年消费大环境下脱颖而出?
- 意草草书创始人——赵文生
- 弘扬传统文化.振兴文化强国——徐瑞明
- 企业在选择和租赁钢材库厂房时应--注意的几个安全事项
- 中工集团名居尚品重钢别墅更需要团队的合作奋斗