什么是微服务网关?

微服务网关是整个微服务API请求的入口,可以实现日志拦截,权限控制,解决跨域问题,限流,熔断,负载均衡,黑名单与白名单拦截,授权等。

过滤器和网关的区别

过滤器用于拦截单个服务,网关拦截整个的微服务

Zuul和Gateway有哪些区别

Zuul网关属于Netfix公司开源的产品属于第一代微服务网关。

gateway属于SpringCLoud自研发的第二代微服务网关。

相比来说SpringCloudGateway性能比zuu性能好。

注意

zuul是基于Spring5构建的,能够实现响应式非阻塞式的api,支持长连接,能够更好的整合Spring体系的产品。

微服务网关的应用是在这个博客搭建的服务端和客户端的基础上搭建的https://blog.csdn.net/wangyunzhao007/article/details/106895672

微服务网关的使用

在ipenFeign下简历gateway子工程

pom文件

    <dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId><version>2.0.0.RELEASE</version></dependency></dependencies>

启动项

@SpringBootApplication
@EnableDiscoveryClient
public class AppGateWay {public static void main(String[] args) {SpringApplication.run(AppGateWay.class);}
}

配置文件

spring:application:name: gatewaycloud:nacos:discovery:server-addr: 127.0.0.1:8848gateway:routes:- id: my-customeruri: lb://customer-service  #转发的服务,lb代表负载均衡,使用以后必须加filters。filters:- StripPrefix=1predicates:- Path=/customer-service/**  #拦截的路径- id: my-orderuri: lb://order-sevicefilters:- StripPrefix=1predicates:- Path=/order-sevice/**- id: testuri: http://www.baidu.com/  #转发到百度predicates:- Path=/test/**   #拦截到路径有testdiscovery:locator:enabled: true
server:port: 8090

启动项目后,可能会出现下面的问题,原因是gateway不能有spring-boot-starter-web的依赖,因为服务端和客户端都需要这个依赖,我就在父工程加了,但是网关不需要这个,加了会有问题。我再上篇博客中已经修改,将依赖spring-boot-starter-web移动到各个子项目中。

然后启动我们的网关和服务端、客户端。在nacos中可以看到

然后我们在浏览器输入http://localhost:8090/test/,会自动跳转到百度。

然后我们在浏览器中输入http://localhost:8090/customer-service/getUser,会调用我们服务端的接口,结果如下

在浏览器我们输入http://localhost:8090/order-sevice/orderFeignToCustomer,会调用我们的客户端接口,结果如下:

除此之外还有其他的匹配规则,这种是将时间在2017年1月20后17点42分47秒之后的请求全部转发到百度。

        - id: AfterTimeuri: http://www.baidu.com/###匹配规则predicates:- After=2017-01-20T17:42:47.789-07:00[America/Denver]

注意

在做路由转发的时候,他的匹配规则是从上到下的,因为现在是2020年,我把按照时间转发的放到配置文件的最下方,只要符合上边的要求,就会走上边的转发,最后再走时间的转发。

当我把按照时间去匹配的规则放到第一个,我通过网关去访问客户端可服务端都是不行,都被转发到的百度。

由此可见,默认的匹配规则是由上到下的,上边匹配规则满足了,就不会走下边匹配规则。

本章代码资源:

https://download.csdn.net/download/wangyunzhao007/12550683

【alibaba-cloud】Gateway网关相关推荐

  1. Spring Cloud Gateway网关

    Spring Cloud Gateway网关 1. 简介 Spring Cloud Gateway是Spring官网基于Spring 5.0. Spring Boot 2.0.Project Reac ...

  2. Spring Cloud Gateway网关实现短网址生成、解析、转发

    Spring Cloud Gateway网关实现短网址生成.解析.转发 1.概述 2.基础实现 3.路由处理HandlerFunction 4.配置路由 5.测试 1.概述 在一些生成二维码等场景中, ...

  3. spring cloud gateway网关和链路监控

    文章目录 目录 文章目录 前言 一.网关 1.1 gateway介绍 1.2 如何使用gateway 1.3 网关优化 1.4自定义断言和过滤器 1.4.1 自定义断言 二.Sleuth--链路追踪 ...

  4. 从0开始构建你的api网关--Spring Cloud Gateway网关实战及原理解析

    API 网关 API 网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题 ...

  5. spring cloud gateway 网关_微服务网关Spring Cloud Gateway全搞定

    一.微服务网关Spring Cloud Gateway 1.1 导引 文中内容包含:微服务网关限流10万QPS.跨域.过滤器.令牌桶算法. 在构建微服务系统中,必不可少的技术就是网关了,从早期的Zuu ...

  6. spring gateway 限流持久化_Spring Cloud Gateway网关如何快速实施限流方案?-Part 6

    熔断降级 在分布式系统中,网关作为流量的入口,大量请求进入网关,向后端远程系统或服务发起调用,后端服务不可避免的会产生调用失败(超时或者异常),失败时不能让请求堆积在网关上,需要快速失败并返回回去,这 ...

  7. Spring Cloud Gateway — 网关基本功能API暴露

    API网关 API网关是一种设计模式,一种在微服务体系下的经典构件.要了解最新API网关模式可以参考敖小剑写的<Service Mesh和Api Gateway关系深度探讨> 早期SOA阶 ...

  8. 【硬核】Spring Cloud Gateway(网关)

    概念 Gateway是基于异步非阻塞模型上进行开发的,有springcloud团队开发.用来代替Zuul. 近几个月收集了收集了N份精校过的PDF版的Java八股文大全,涉及Java后端的方方面面,分 ...

  9. Spring Cloud Gateway 网关整合 Knife4j

    文章目录 1:环境准备 2:gateway服务设置 1:导包 2:yml配置 3:添加配置类,从网关服务中获取服务列表 4:重写并覆盖/swagger-resources接口 3:其他业务逻辑服务设置 ...

  10. Spring Cloud Gateway网关实战

    文章目录 介绍 基础示例 spring-cloud-gateway-service spring-cloud-gateway-sample网关 介绍 Spring Cloud Gateway是Spri ...

最新文章

  1. mybatis 自动生成integer_Intellij IDEA 中使用 MyBatis-generator 自动生成 MyBatis代码
  2. 《炉石传说》架构设计赏析(2):Scene管理
  3. table固定表头滚动
  4. 《我的互联网方法论》读书笔记
  5. sin傅里叶变换公式_傅里叶变换公式(傅里叶变换常用公式)
  6. 解决MySQL登录1045错误
  7. MySQL5.5安装步骤
  8. win10启动修复_高手教你怎样在Win10上修复主引导记录(MBR),轻松解决启动故障...
  9. Cadence PSpice 仿真3: 电容器充放电瞬态仿真图文教程
  10. CTO能力知识地图正式发布
  11. 软件测试-搭建测试环境
  12. adb命令启动某个action_各种启动命令
  13. excel work
  14. 连接高匿代理接口调用并测试是否可用
  15. 基带信号与频带信号的基础认识
  16. Python:类(class)的变量声明
  17. javascript instaceof
  18. Stegsolve使用方法-图像隐写
  19. 关于Java你不知道的那些事之等等与equals的区别
  20. 计算机对模具的影响,不容忽视 浅谈笔记本模具重要性

热门文章

  1. linux 根目录爆满 解决 /dev/mapper/centos-root 100%问题
  2. suricata规则
  3. linux清屏命令clear和reset
  4. Spring 使用注解方式进行事物管理
  5. Linux中printk()实例
  6. Docker源码分析(一):Docker架构
  7. ELF文件的加载和动态链接过程
  8. 寿光农商行计算机机房,寿光农商银行 举办2021年新员工入职仪式
  9. 关于伺服驱动控制的课本_西门子伺服电机驱动系列汇总,说明书参数及使用方法。...
  10. Android日志系统分析之开篇