服务网关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。
相关推荐
可乐加.糖5 分钟前
一篇关于Netty相关的梳理总结
java·后端·网络协议·netty·信息与通信
s9123601017 分钟前
rust 同时处理多个异步任务
java·数据库·rust
9号达人8 分钟前
java9新特性详解与实践
java·后端·面试
cg501712 分钟前
Spring Boot 的配置文件
java·linux·spring boot
啊喜拔牙20 分钟前
1. hadoop 集群的常用命令
java·大数据·开发语言·python·scala
anlogic1 小时前
Java基础 4.3
java·开发语言
非ban必选1 小时前
spring-ai-alibaba第七章阿里dashscope集成RedisChatMemory实现对话记忆
java·后端·spring
A旧城以西1 小时前
数据结构(JAVA)单向,双向链表
java·开发语言·数据结构·学习·链表·intellij-idea·idea
杉之2 小时前
选择排序笔记
java·算法·排序算法
Naive_72 小时前
蓝桥杯准备(前缀和差分)
java·职场和发展·蓝桥杯