【SpringCloud】1、服务网关Gateway

这里写目录标题

  • 1.网关的介绍
  • 2.GateWay
    • 2.1 GateWay介绍

1.网关的介绍

大家都知道在微服务架构中, 一个系统会被拆分为很多个微服务, 那么作为客户端要如何去调用这么多的微服务呢?

如果没有网关的存在, 我们只能在客户端记录每个微服务的地址, 然后分别去调用
【SpringCloud】1、服务网关Gateway_第1张图片
这样的架构, 会存在诸多的问题:

  • 每个业务都会需要鉴权、限流、权限校验、跨域等逻辑, 如果每个业务都各自为战, 自己造轮子实现一遍, 会很影响效率, 完全可以将这些共性的业务抽取出来, 放到一个统一的地方
  • 如果业务量比较简单的话, 这种方式前期不会有什么问题, 但随着业务越来越复杂, 比如淘宝、亚马逊打开一共页面可能会涉及到数百个微服务协同工作, 如果每一个微服务都分配一个域名的话, 一方面客户端diam会很难维护, 涉及到数百个域名, 另一方面是连接数的瓶颈, 想象一下你打开一个APP, 通过抓包发现涉及到数百个远程调用, 这在移动端下会显得非常低效
  • 后期如果需要对微服务进行重构的话, 也会变的非常麻烦, 需要客户端配合你一起进行改造, 比如商品服务, 随着业务变得越来越复杂, 后期需要进行拆分成多个微服务, 这个时候对外提供的服务也需要拆分成多个, 同时需要客户端配合你进行改造, 非常蛋疼

【SpringCloud】1、服务网关Gateway_第2张图片

所谓的API网关: 系统的统一入口, 由网关帮我们路由到对应的服务, API网关是一个处于服务(提供Rest API接口服务)之前的系统, 用来管理授权、访问控制和流量限制, 这样REST API接口服务就被API网关保护起来. 一些与业务功能无关的公共逻辑就可以在这里实现, 例如认证、鉴权、监控、路由转发等等


2.GateWay

2.1 GateWay介绍

Spring Cloud GateWay是Spring Cloud官方推出的第二代网关框架, 定位于取代Netfilx Zuul, 相比于Zuul来说, Spring Cloud GateWay提供更优秀的性能, 更强大的功能

Spring Cloud Gateway功能特性

  • 基于Spring Framework 5, Project Reactor和Spring Boot2.0进行构建
  • 动态路由:能够匹配任何请求属性
  • 支持路径重写
  • 集成Spring Cloud服务发现功能(Nacos、Eruka)
  • 可集成流控降级功能(Sentinel, Hystrix)
  • 可以对路由指定易于编写的Predicate(断言)和Filter(过滤器)

一、核心概念

  • 路由(route)
    路由是网关中最基础的部分, 路由信息包括一个ID、一个目的URL、一组断言工厂、一组Filter组成, 如果断言为真, 则说明请求的URL和配置的路由匹配
  • 断言(predicates)
    java8中的断言函数
  • 过滤器(Filter)
    分为Gateway Filter和Global Filter. Filter可以对请求和响应进行处理

二、工作原理
工作原理与Zuul差不多, 最大的区别是Gateway的Filter只有pre和post两种

你可能感兴趣的:(spring,cloud,gateway,微服务)