微服务中API网关的作用是什么?
创作时间:
作者:
@小白创作中心
微服务中API网关的作用是什么?
引用
CSDN
1.
https://blog.csdn.net/shao_yc/article/details/129016650
什么是API网关?
API网关是微服务架构中的重要组成部分,它封装了系统内部的复杂结构,使得客户端只需要与API网关交互,就能实现跨服务的通信。API网关可以看作是微服务系统的"门面",负责处理所有进入系统的请求。
为什么要用API网关?
当系统外部的应用或客户端访问系统时,会遇到以下情况:
- 系统需要判断它们的权限
- 如果传输协议不一致,需要对协议进行转换
- 如果调用水平扩展的服务,需要做负载均衡
- 一旦请求流量超出系统承受的范围,需要做限流控制
- 针对每个请求以及回复,系统会记录响应的日志
因此,只要是涉及到对系统的请求,并且能够从业务中抽离出来的功能,都有可能在网关上实现。API网关的主要作用包括:
- 身份验证和安全:确保用户和上传的文件安全,类似于防火墙的作用
- 协议转换:将不同协议转换为系统可识别的格式
- 负载均衡:均匀分配请求到不同的服务实例
- 流量控制、审查和检测:通过拦截器实现限流和监控
- 动态路由:根据请求特征动态选择服务实例
- 压力测试:支持双十一、双十二等高并发场景的压测
- 静态响应处理:实现页面的动静分离,直接返回静态内容
API网关架构
API网关的整体架构通常包括以下几个部分:
- Gateway-Core:核心网关,负责接收客户端请求,调度、加载和执行组件,将请求路由到服务端,并处理其返回的结果。
- Gateway-Admin:网关管理界面,用于配置API、组件等系统基础信息,如限流策略、缓存配置、告警设置等。
- Gateway-Monitor:监控日志,生成各种运维管理报表,实现自动告警等功能,主要为支撑核心系统服务。
API网关是如何实现这些功能的?
协议转换
系统内部服务之间的调用可以统一使用一种协议,如HTTP或GRPC。当遇到不同协议时,API网关通过泛化调用的方式实现协议转换。具体来说,就是将不同协议转换为"通用协议"(如JSON),然后再转换成本地系统能够识别的协议。
链式处理
API网关采用链式处理机制,将请求处理过程分解为多个步骤,每个步骤对请求进行特定处理。以Zuul网关为例,其过滤器链包括四个阶段:
- PRE:前置过滤器,处理鉴权、限流、熔断降级、缓存等通用事务
- ROUTING:路由过滤器,负责协议转换和路由工作
- POST:后置过滤器,处理响应信息,添加响应头,记录日志等
- ERROR:错误过滤器,处理其他阶段发生的异常
异步请求
为了高效处理大量请求,API网关采用了异步处理机制。以Zuul2为例,它通过异步请求机制解决了Zuul1中线程阻塞的问题。具体实现方式有两种:
- Reactor模式:通过事件循环处理请求,用户线程注册事件处理器后继续执行其他工作,Reactor线程负责检查Socket状态并通知用户线程处理数据。
- Proactor模式:用户线程发起异步IO请求后立即返回,操作系统内核负责处理IO操作并将结果通知用户线程。
这两种模式都实现了请求处理的异步化,提高了系统的吞吐量和响应速度。
热门推荐
日本脱鞋文化下的脚臭防治秘诀
冬季脚臭怎么治?科学方法大公开
一文掌握:微波炉加热各类食物的最佳时间和技巧
微波炉火力档位使用指南:5个档位让食物更美味
《停止内耗》教你告别过度在意
从壁画到挂轴:五代至南宋绘画艺术的转型
舒伯特《小夜曲》:一首关于爱情与生命的绝唱
从摇脚到冥想:中医助眠方法让你一夜好眠
睡前4小时做3分钟运动,可延长睡眠近半小时
盐酸奥洛他定片:过敏星人的救星?
南京成都绿色公交场站建设:光伏+与智慧化双轮驱动
杭州亚运会公交站设计:环保与人性化的典范
智能公交站:智慧城市里的“智慧枢纽”
清明节必备:如何挑选优质菊花苗?
小榄菊花会盛大开幕,赏菊正当时!
菊花养护秘籍:7个关键技巧让你的菊花爆盆
龙皓晨圣采儿意外闯入上古遗迹,九阶守护者现身!他们能否成功夺取宝藏?
提升演绎推理能力的四大要素:从逻辑思维到实践应用
提升演绎推理能力:从逻辑思维到实践应用
冬季空调制热效果差?5大原因及解决方案全解析
2024年1-11月电子信息制造业增加值及分地区运行情况分析(图)
1992年属猴人2025年运势:事业向好,婚姻需谨慎
喝牛奶吃鱼虾,轻松降碱性磷酸酶
吃货必备:调节碱性磷酸酶的饮食秘籍
体检报告惊现ALP异常,背后隐藏哪些疾病?
碱性磷酸酶偏高,你的体检过关了吗?
《无声告白》:一个关于家庭、认同与爱的故事
《无声告白》:当爱成为负担,家庭关系如何破局?
《无声告白》:一个跨族裔家庭的心理迷局
方天画戟:从战场利器到文化符号