服务网关Gateway_微服务中的应用

没有服务网关

问题:

  1. 地址太多
  2. 安全性
  3. 管理问题

为什么要使用服务网关

网关是微服务架构中不可或缺的部分。使用网关后,客户端和微服务之间的网络结构如下。

注意:

网关统一向外部系统(如访问者、服务)提供REST API。在SpringCloud 中,使用Zuul、Spring Cloud Gateway等作为API Gateway来实现动态路由、监控、回退、安全等功能。

认识Spring Cloud Gateway

Spring Cloud Gateway 是 Spring Cloud生态系统中的网关,它是基于Spring 5.0、SpringBoot 2.0和Project Reactor等技术开发的,旨在为微服务架构提供一种简单有效的、统一的API路由管理方式,并为微服务架构提供安全、监控、指标和弹性等功能。其目标是替代Zuul。

注意:

Spring Cloud Gateway 用"Netty + Webflux"实现,不要加入Web依赖,否则会报错,它需要加入Webflux依赖。

什么是WebFlux

Webflux模式替换了旧的Servlet线程模型。用少量的线程处理request和response io操作,这些线程称为Loop线程,而业务交给响应式编程框架处理,响应式编程是非常灵活的,用户可以将业务中阻塞的操作提交到响应式框架的work线程中执行,而不阻塞的操作依然可以在Loop线程中进行处理,大大提高了Loop线程的利用率。

注意:

Webflux虽然可以兼容多个底层的通信框架,但是一般情况下,底层使用的还是Netty,毕竟,Netty是目前业界认可的最高性能的通信框架。而Webflux的Loop线程,正好就是著名的Reactor模式IO处理模型的Reactor线程,如果使用的是高性能的通信框架Netty。

温馨提示:

什么是Netty,Netty 是一个基于NIO的客户、服务器端的编程框架。提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。

Spring Cloud Gateway特点

  • 易于编写谓词( Predicates )和过滤器( Filters ) 。其Predicates和Filters可作用于特定路由。
  • 支持路径重写。
  • 支持动态路由。
  • 集成了Spring Cloud DiscoveryClient。
相关推荐
亓才孓4 分钟前
【MyBatis Exception】SQLSyntaxErrorException(按批修改不加配置会报错)
java·开发语言·mybatis
亓才孓6 分钟前
【MyBatis Runtime Exception】自动驼峰映射对Map不生效,应该在查询中起别名
java·windows·mybatis
没有bug.的程序员13 分钟前
调试艺术进阶:从断点内核到日志动态化的高效问题定位深度实战指南
java·调试·断点·日志动态化
渣瓦攻城狮16 分钟前
互联网大厂Java面试:Spring、微服务与消息队列技术详解
java·redis·spring·微服务·消息队列·面试指南·程序员面试
予枫的编程笔记26 分钟前
【Kafka基础篇】Kafka Producer发送机制全链路拆解:从拦截器到网络发送一文吃透
java·kafka·消息队列·分布式消息·producer发送机制·kafka核心原理·消息发送优化
玄〤29 分钟前
个人博客网站搭建day2-Spring Boot 3 + JWT + Redis 实现后台权限拦截与单点登录(漫画解析)
java·spring boot·redis·后端·jwt
BigGGGuardian29 分钟前
六合一 Spring Boot API 防护框架:防重、限流、幂等、自动Trim、慢接口检测、链路追踪,一个 Starter 搞定
java·后端
HoneyMoose39 分钟前
Jenkins 更新时候提示 Key 错误
java·开发语言
rannn_11139 分钟前
【苍穹外卖|Day10】Spring Task、订单状态定时处理、WebSocket、来单提醒、客户催单
java·后端·websocket·苍穹外卖
cqbzcsq1 小时前
MC Forge 1.20.1 mod开发学习笔记(战利品、标签、配方)
java·笔记·学习·mod·mc