微服务网关初体验

概念

微服务网关是微服务架构中的前端门户,它提供了一个统一的入口点,方便客户端访问和调用多个微服务。作为介于客户端和服务器端之间的中间层,微服务网关负责处理所有外部请求,并根据路由规则将其转发到相应的内部服务。

架构

依赖

网关也是一个微服务 。

引入网关依赖,服务注册发现依赖,网关微服务不需要web相关的依赖

路由

写死版

  • yml文件配置
  • 硬编码

根据微服务名动态路由

断言

Predicate就是根据规则去匹配路由

如果有多个路由符合规则,网关会按照配置文件的顺序从上往下匹配,匹配到就返回;进入过滤链过滤

设置路由多久生效

要求携带cookie

要求请求头参数符合正则表达式

剩余

过滤

有过滤链,可以在前后插入逻辑,比如鉴权、日志、限流。

自定义过滤器

创建过滤器类,实现GlobalFilter,Ordered接口,加组件注解。order的值越小,优先级越高。

一个请求进入微服务的流程

一个请求从客户端发来,首先进入nginx反向代理,会进行初步负载均衡等,然后到网关,网关是客户端请求的统一入口,负责根据配置找到具体处理的微服务名(先经过断言匹配路由,再经过过滤器),然后去注册中心获取该服务可用的实例(或者网关定时拉取服务可用列表),然后根据负载均衡算法选一个实例发送请求。请求到了微服务A之后,可能需要调用服务B,这个时候服务A向注册中心发送一个服务调用请求,一般包含服务名,注册中心返回能用的服务B实例列表,服务A根据负载均衡算法,选择一个服务B实例发送请求。

微服务之间如果请求失败,负载均衡组件可能还有重试机制,提高了服务的容错性。如ribbon

网关也有重试机制,并且网关还可以实现反向代理,鉴权,限流,熔断,日志监控等

服务A请求服务B的某个实例的时候会尝试建立连接,有可能建立连接超时,服务A就知道该实例不可用,然后根据负载均衡请求另一个实例。如果一个可用的服务都没有,会返回服务不可用提示,而不会返回404.

相关推荐
AIGS0019 分钟前
企业AI落地的关键认知:向量空间JBoltAI的本体语义平台
java·人工智能·人工智能ai大模型应用
记忆停留w41 分钟前
从单体到微服务:Redis 协同 MySQL、Milvus、MinIO 搭建企业级RAG/AI Agent脚手架架构
大数据·人工智能·redis·微服务·ai·架构·milvus
财财源源1 小时前
.NET 程序保护实战系列01-流水线架构与保护引擎总览
架构·.net
KaMeidebaby1 小时前
卡梅德生物技术快报|抗体亲和力成熟工业化调控新机制:差异性浆细胞增殖工艺优化思路
java·开发语言·人工智能·算法·机器学习·架构·spark
深圳恒讯2 小时前
菲律宾云服务器与传统VPS的架构差异
运维·服务器·架构
醉城夜风~2 小时前
Java详解经典算法题:接雨水(三种实现方案+原理剖析)
java·开发语言·算法
龙亘川3 小时前
开源本地 AI 智能体网关 OpenClaw 深度实践:架构解析、全场景部署与自动化落地指南
人工智能·架构·开源·openclaw
数智化转型推荐官3 小时前
2026统一身份管理系统五大发展趋势解读
java·运维·微服务
看菜鸡互4 小时前
探索用 SlideML 让大模型生成 PPT 的实验方法
java·运维
Sirius Wu5 小时前
OpenClaw(UpClaw)三层Tool全链路治理深度详解
网络·人工智能·架构·aigc