搭建分布式系统的基本环境 - 网关

搭建分布式系统的基本环境 - 网关
好处一:网关能实现动态的路由到各个服务,比如前端发送请求到1号机器的10000端口,但1号机器已经下线了,网关能从注册中心中实时感应上线的服务,总是能正确的路由到正确的位置
好处二:在网关处加上权限,以保证系统的健全
好处三:解耦:让原本是每个服务所需要实现的功能同一抽取到网关模块中
before:
搭建分布式系统的基本环境 - 网关
current:
搭建分布式系统的基本环境 - 网关
所以就使用SpringCloud 提供的Gateway 组件来实现网关功能
搭建分布式系统的基本环境 - 网关

关于SpringCloud Gateway 的基本概念
路由:网关将请求路由到指定的服务或地址。路由就包括几个重要的东西:1.标识性ID:每一个路由都由ID进行区分。2.URI:当次请求路由的地址。3.Predicate(断言):在效果上只要路由地址所匹配的断言为true,就能去到匹配地址。也就是说请求发给API网关到底需不需要某一个地方,得有一个条件判断,这个条件判断就叫断言。这个Predicate 是java 8 中的断言函数。 4.Filter: 想路由到指定位置就得通过过滤器,这是由Spring 框架提供的网关过滤器组件(GatewayFilter),功能就是能在请求到达目标之前或者请求完成响应之后都能通过过滤器进行处理
搭建分布式系统的基本环境 - 网关
所以网关的流程如下: 请求交给网关,网关通过断言判断是否符合某个路由规则,如果符合则把该路由规则通过一系列的Filter进行过滤然后路由到指定地方。

关于路由的配置:
搭建分布式系统的基本环境 - 网关

实践:
创建项目来作为一个API 网关:
搭建分布式系统的基本环境 - 网关
该服务在pom文件中也要引入common 服务的依赖,因为common 服务有Nacos的注册中心的依赖,因为gateway需要到注册中心中去发现有哪些上线的服务
搭建分布式系统的基本环境 - 网关
如果要对gateway进行使用,就要进行一下步骤:
1、开启服务注册发现:配置nacos的注册中心地址
在Nacos中为gateway创建一个命名空间,然后把该空间的ID拿过来
搭建分布式系统的基本环境 - 网关
接着设置Predicate 和url
搭建分布式系统的基本环境 - 网关
这个Query=url,baidu : Query是固定格式,url是需要匹配的参数,",“可以理解为”="的意思,后面的"baidu"则作为值,这个值还可以是正则表达式。
正式运行时就是先访问网关服务,由网关服务作为入口,输入网址让网关来进行跳转
搭建分布式系统的基本环境 - 网关