首页 > 其他分享 >微服务:Gateway

微服务:Gateway

时间:2023-11-17 10:34:41浏览次数:22  
标签:网关 服务 SpringCloud Filter 限流 Gateway 路由

学习自:SpringCloud Gateway 简介、工作流程、快速入门_springcloud工作流程_豆恭梓的博客-CSDN博客

建议与微服务:Eureka原理关联查看。

1、网关

网关位于微服务最边缘直接暴露给用户,作为用户微服务的桥梁。

没网关:C端直接通过完整的IP:Port/url来访问微服务,需要在C端配置很多IP:Port,这在服务并发大的情况下,无法完成负载均衡

有网关C端访问网关,网关访问微服务。Gateway通常与Eureka(注册中心)整合,通过服务名就能找到目标IP:Port,这样在访问服务时只需要服务名称,可以实现负载均衡,还可以实现token拦截、权限验证、限流等操作。

2、SpringCloud Gateway工作流程

  1. C端向SpringCloud Gateway发出请求;
  2. 在Handler Mapping中找到与请求相匹配的路由,之后该请求会发往Gateway Web Handler;
  3. Handler通过指定的过滤器Filter将请求发到实际的服务的业务逻辑(Proxied Service),之后返回。Filter之间存在虚线是因为Filter可能会在发送请求前(Pre)、后(Post)执行业务逻辑,对其进行加强处理

Pre类型的Filter可以做参数校验、权限校验、流量监控、日志输出、协议转换等;

Post类型的Filter可以做响应内容、header的修改、日志输出、流量监控

总之,Gateway的核心逻辑是:路由转发、执行过滤器链

3、SpringCloud Gateway三大概念

1)Route-路由(和Eureka结合成为动态路由)

Gateway和Eureka结合可以做成动态路由

一个Route由以下信息组成:ID、目的URL、一组断言工厂、一组filter。

如果路由断言为True,说明请求的URL与配置路由相匹配。

2)Predicate(断言)(一个返回Bool的表达式)

Java 8中的断言函数

SpringCloud Gateway的断言函数允许开发者去定义匹配来自于HTTP请求中的任何信息,比如请求头参数

3)Filter(过滤)

一个标准的Spring WebFilter。

SpringCloud Gateway中的Filter分为两种类型:Gateway Filter和Global Filter。

Filter会对请求、响应进行修改处理:

  • Gateway Filter针对某个路由的Filter对某个接口做限流;
  • Global Filter针对全局的Filter token ip黑名单。

4、Nginx和Gateway的区别

  • Nginx在做路由、负载均衡、限流之前,需要修改nginx.conf配置文件,将负载均衡、路由、限流规则加入其中;
  • Gateway和Eureka高度集成,实现自动路由;和Ribbon结合,实现负载均衡;也能轻易实现限流】权限认证
  • Nginx用C编写,Gateway用Java编写,Nginx性能更高;
  • Nginx用于服务器级别,Gateway用于项目级别

 

标签:网关,服务,SpringCloud,Filter,限流,Gateway,路由
From: https://www.cnblogs.com/ShineLeBlog/p/17838095.html

相关文章

  • linux系统部署redis单点服务
    1、下载rediswgethttps://download.redis.io/releases/redis-5.0.9.tar.gz2、解压tarzxfredis-5.0.9.tar.gz3、移动redis解压目录mvredis-5.0.9/usr/local/redis4、编译cd/usr//local/redismake5、安装makeprefix=/usr/local/redisinstall6、配置配......
  • 总结(每个服务的部署)
    openstack:就是里面有各种各样的服务,服务有三个端点可以访问,就是一:keystone服务(5000)keystone服务就是提供认证的作用1:组件模块令牌模块:就是用来生成模块和管理模块目录模块:就是用来管理服务和端点的信息验证模块:就是管理用户,角色,项目,提供认证服务策略模块:就是用来存储和管......
  • Web服务端开发的线程问题
    Web服务端和线程安全问题 线程和类有关联吗?线程(Thread)和类(Class)在计算机编程中是两个不同但可以关联的概念。线程(Thread):线程是指在进程中执行的独立的执行单元。一个进程可以包含多个线程,它们共享进程的资源,但每个线程有自己的执行流。多线程的编程可以提高程序的并发性,......
  • 已成功与服务器建立连接,但是在登录过程中发生错误。
    已成功与服务器建立连接,但是在登录过程中发生错误。(provider:TCP提供程序,error:0-指定的网络名不再可用。)(MicrosoftSQLServer,错误:64)————————————————版权声明:本文为CSDN博主「ComputerInBook」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接......
  • Linux服务器查看资源占用情况之htop命令
    上一期我们讲到出了用top命令可以查看服务器资源占用的情况外,其实还可以采用htop命令来查看资源详情。htop命令展示的页面是一个可交互的页面,不仅可以查看所有进程对应的资源占用情况,甚至你还可以对进程进行筛选、排列、设置刷新频率、指定查看某个进程或某个用户相关的进程,甚至可......
  • 掌握Linux:查看服务器端口号的实用指南
    当你管理一个Linux服务器时,了解服务器上正在运行的服务以及它们使用的端口是至关重要的。这可以帮助你确保服务正常运行,定位问题,以及提高服务器的安全性。在这篇博客文章中,我将向你介绍如何使用Linux命令来查看服务端口号。查看所有打开的端口要查看服务器上所有打开的端口,可以使......
  • Gateway网关
    Gateway是SpringCloud研发的一款开源API服务网关组件(替代原Zuul1.x版)Gateway使用的Webflux中的reactor-netty响应式编程组件,底层使用了Netty通讯框架特性基于SpringFramework5,ProjectReactor和SpringBoot2.0进行构建易于编写的Predicate(断言)......
  • 计算网络之IPv6配置DHCP服务及acl
    一.DHCPv6服务DHCP即动态主机地址分配协议,在前面已经启动过IPv4的动态主机分配了,还是来介绍两种方式接口模式全局模式现在需要了解的就是DHCHv6,即基于IPv6的动态主机地址分配,它的分配是无状态模式和全状态模式接口模式指的是动态主机分配只在一个局域网段类,它只提供一个地......
  • 小米日历配置exchange服务
    邮箱和日历账户的配置都要从邮件处进行配置首先在邮件的设置中添加邮箱,在此处配置pop3、imap、smtp和exchange服务需要注意的是foxmail和qq邮箱只是pop3、imap和smtp采用的服务器相同(但端口不同,此点存疑),但是exchange服务采用的服务器并不相同(这一点是通过原有设置发现的,以前添......
  • 网路文件共享服务
    网路文件共享服务存储类型直连式存储(DNS)网络附加存储(NAS)(存储和管理空间都在远程)(FTP,NFS)存储区域网络(SAN)(可以使用空间,管理也是你来管理)应用场景DNS:适用于数据量不大,对磁盘访问速度要求高的中小企业NAS:多适用于文件服务器,用来存储非结构化数据,虽然受限于以太网的速度,但是......