对微服务网关的一些总结

对微服务网关的一些总结

一. 什么是网关

网关是位于NGINX(或没有)与真实微服务间的转发服务。

用户通过HTTP接口,连接到NGINX,然后NGINX反向到M个网关。

网关根据服务注册与发现,进行转发请求到具体的微服务上。

由于网关可编码,对安全,扩容,认证等通用的需求,变得比较容易实现。

二. 为什么用网关

  1. 聚合

支持服务注册与发现,根据不同的服务前缀,转发请求到不同的微服务。

与NGINX的反向代理功能类似.

  1. 负载均衡

同类型微服务之间进行负载均衡,采用轮询算法。

跟NGINX的负载均衡类似。

  1. 限流熔断

跟NGINX类似,可以编码实现,逻辑可以更加细致,比较容易。

  1. 授权

将通用的认证功能,放到网关实现。

  1. 安全

可代码实现具体的逻辑,完成类似于WAF的功能。

相对于NGINX,微服务网关具备可编码的优势。

可以做更多的功能。

所以才有一些网关(Kong,NGINX-LUA)基于NGINX扩展了支持LUA.

但是对于数据库的访问,缓存服务的访问等等,还是使用JAVA更具有优势。

三. 怎么用网关

网关有很多,Kong,Zuul,Gateway,等等。

甚至可以用NGINX直接做动态配置更新。

使用的时候,具体问题具体分析。

结合当前的技术栈,与具体的项目需求,以及当前的现状,来做选择。

如果业务比较单一,或者用量比较少,或者开发人员只有你一个的话,

那么单体服务也没有问题,可以起多个实例,前面用NGINX做个负载均

衡就可以了。

实际多数的后端服务,瓶颈往往是数据库的IO。

四. 技术实现

(ZUUL.Gateway)

过滤器的模式,当WEB服务获取到HTTP请求的时候,在三个处理阶段做处理。

因此对应了三种过滤器类型:

  1. Pre

  2. Route

  3. Post

将这些过滤器根据顺序组织好,然后挨个调用。

共同组合成了网关的各个功能。

相关推荐
行者全栈架构师9 分钟前
【鸿蒙心迹】互动卡片全链路——把核心功能放到桌面(FormKit 实战)(HarmonyOS 7.x)
前端·算法·架构
海带紫菜菠萝汤12 分钟前
PostgreSQL 19 延期一个月:AI 把找 bug 变便宜了,修 bug 还是人工价
人工智能·ai·程序员·架构·大模型
Thneonl14 分钟前
主从延迟 0 秒的谎言:SBM 的三个盲区
后端·架构
Dawson Zhu40 分钟前
【AI Infra小白入门⑦】Transformer架构工程拆解:从Attention到MLA的优化密码
人工智能·语言模型·架构·aigc·agi
吴建旭 智宅焕41 分钟前
智能家居全国交付的县域节点架构:远程技术大脑与本地执行端的标准化实现
架构·智能家居
wangjialelele1 小时前
一文梳理 Spring Cloud 核心组件:Eureka、Nacos、OpenFeign、LoadBalancer 与 Gateway
java·spring boot·spring·spring cloud·微服务·nacos
行者全栈架构师1 小时前
【鸿蒙心迹】让应用“悬浮“起来——闪控球(floatingBall)从接入到实战全链路(HarmonyOS 7.x)
前端·算法·架构
分布式存储与RustFS1 小时前
RustFS 该跟 stable 还是 nightly?两条版本线的分工、风险与回退,一张表说清
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
stillstream_ink1 小时前
‌双端电商系统的测试差异分析——别让“只测一端”漏掉80%的联动缺陷
架构·测试
吴建旭 智宅焕2 小时前
米家生态线控器标准装调专项卡:安装调试的标准化SOP与交付确定性架构
架构·智能家居