☝️搭建脚手架
我们可以去 [Spring initializer](https://start.spring.io)
网站或者用 IDEA 来快速创建出一个 Spring Cloud Gateway 项目。
这里我们选择的注册中心是 Zookeeper,你也可以自己选择其他的注册中心来注册你的项目,比如阿里巴巴的 Nacos 等。
配置完相关信息后,点击下面的 GENERATE
按钮就可以导出项目的 zip
压缩包,解压后用 IDE 打开。
打开后就是这个样子:
✌️配置路由
Ymal 方式配置
为了方便配置,我们把 application.properties
改成 application.yml
。
然后配置一个转发到百度到路由。
spring: cloud: gateway: routes: - id: route-demo uri: https://baidu.com predicates: - Path=/**
在配置中,我加来一个谓词 Path
,表示所有当请求都会匹配到这个路由下,然后转发到 uri
配置到网址里。所以当我们打开浏览器访问 [http://localhost:8080/](http://localhost:8080/)
是就会自动跳转到百度到首页。
Java 代码方式配置
除了用配置文件配置路由外,我们还可以用代码的方式来配置路由。
下面来展示一下代码方式配置的路由:
@Bean public RouteLocator routesConfig(RouteLocatorBuilder builder){ return builder.routes() .route("route-demo",r -> r.path("/**").uri("https://baidu.com")) .build(); } 复制代码
这几行代码实现的是和上面配置一样的功能,当访问 [http://localhost:8080/](http://localhost:8080/)
时也会跳转到百度首页。
👌注册到 Zookeeper
接下来演示一下如何把网关注册到 Zookeeper。
首先在我们本地搭建好 Zookeeper,我这边是直接用 Docker 启动了一个 Zookeeper。
然后在配置文件添加如下配置:
spring: application: name: weidain-gateway cloud: zookeeper: connect-string: localhost:2181
上面到 weidain-gateway
是我们注册到 Zookeeper 上到服务名,地址 [localhost:2181](http://localhost:2181)
是我们本地 Zookeeper 注册中心到地址。
启动项目后,我们用 Zookeeper 可视化工具就可以看到注册中心多了一个 services
节点,节点下面有我们注册上去的 weidain-gateway
服务
下面就是我们网关服务注册到 Zookeeper 到数据:
{ "name": "weidain-gateway", "id": "8c802a81-12e7-4f72-9034-aee00c0745bb", "address": "169.254.238.114", "port": 8080, "sslPort": null, "payload": { "@class": "org.springframework.cloud.zookeeper.discovery.ZookeeperInstance", "id": "application-1", "name": "weidain-gateway", "metadata": { "instance_status": "UP" } }, "registrationTimeUTC": 1620118042689, "serviceType": "DYNAMIC", "uriSpec": { "parts": [ { "value": "scheme", "variable": true }, { "value": "://", "variable": false }, { "value": "address", "variable": true }, { "value": ":", "variable": false }, { "value": "port", "variable": true } ] } }