创建一个SpringCloudGateway网关项目

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: 我们可以去 [Spring initializer](https://start.spring.io) 网站或者用 IDEA 来快速创建出一个 Spring Cloud Gateway 项目。

☝️搭建脚手架


我们可以去 [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
            }
        ]
    }
}


相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
10月前
|
Java API Maven
淘东电商项目(05) - Swagger及网关统一管理API
淘东电商项目(05) - Swagger及网关统一管理API
96 0
|
4月前
|
负载均衡 Java 网络架构
在SpringCloud2023中快速集成SpringCloudGateway网关
本文主要简单介绍SpringCloud2023实战中SpringCoudGateway的搭建。后续的文章将会介绍在微服务中使用熔断Sentinel、鉴权OAuth2、SSO等技术。
120 2
在SpringCloud2023中快速集成SpringCloudGateway网关
|
3月前
|
JSON Java API
技术笔记:springboot项目使用拦截器实现一个简单的网关请求透传
技术笔记:springboot项目使用拦截器实现一个简单的网关请求透传
109 0
|
4月前
|
人工智能 自然语言处理 负载均衡
这款 AI 网关项目简直太棒了,轻松接入OpenAI、LLama2、Google Gem)ini等 100 多种大语言模型!
这款 AI 网关项目简直太棒了,轻松接入OpenAI、LLama2、Google Gem)ini等 100 多种大语言模型!
195 1
|
10月前
|
前端开发 应用服务中间件 nginx
用docker和nginx部署前端项目访问本地java网关gateway服务
本地开发 java 微服务项目,但是拿到的对应的web前端项目只有打包编译过后的 dist 目录里的静态资源(里面只有一个index.html和一些编译过后的 js、css文件),前端接口需要先访问到 java 的网关服务,然后网关里再做转发
407 1
|
10月前
|
监控 API Nacos
微服务轮子项目(19) -Alibaba Sentinel限流熔断(网关流控)
微服务轮子项目(19) -Alibaba Sentinel限流熔断(网关流控)
93 0
|
10月前
|
设计模式 SQL 安全
淘东电商项目(72) -互联网安全架构设计(责任链模式重构网关流程)
淘东电商项目(72) -互联网安全架构设计(责任链模式重构网关流程)
45 0
|
10月前
|
SQL 安全 API
淘东电商项目(71) -互联网安全架构设计(网关验证AccessToken)
淘东电商项目(71) -互联网安全架构设计(网关验证AccessToken)
44 0
|
11月前
18SpringCloud - 服务网关 zuul项目示例
18SpringCloud - 服务网关 zuul项目示例
23 0
|
Kubernetes Cloud Native 应用服务中间件
对比 5 个开源网关项目,这家 SaaS 企业如何统一网关架构
对比 5 个开源网关项目,这家 SaaS 企业如何统一网关架构
44590 18