Spring cloud Gateway 换成 Apache APISIX 云原生 API 网关初体验

Spring cloud Gateway 换成 Apache APISIX 云原生 API 网关初体验_第1张图片
https://landscape.cncf.io/card-mode?category=api-gateway&grou...

一、环境项目准备

1、创建Spring Cloud Gateway API 网关项目

  1. 新建 demo-gateway 项目

Spring cloud Gateway 换成 Apache APISIX 云原生 API 网关初体验_第2张图片
pom 依赖如下



    4.0.0
    com.example
    demo-gateway
    0.0.1-SNAPSHOT
    demo-gateway
    demo-gateway
    
        17
        UTF-8
        UTF-8
        2.6.13
        2021.0.5.0
        2021.0.5
    
    
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
        
            org.springframework.cloud
            spring-cloud-starter-gateway
        
        
            org.springframework.cloud
            spring-cloud-starter-loadbalancer
        
        
            org.springframework.cloud
            spring-cloud-starter-bootstrap
        
    
    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
            
                org.springframework.boot
                spring-boot-dependencies
                ${spring-boot.version}
                pom
                import
            
            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                ${spring-cloud-alibaba.version}
                pom
                import
            
        
    
    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.8.1
                
                    17
                    17
                    UTF-8
                
            
            
                org.springframework.boot
                spring-boot-maven-plugin
                ${spring-boot.version}
                
                    com.example.gateway.DemoGatewayApplication
                    true
                
                
                    
                        repackage
                        
                            repackage
                        
                    
                
            
        
    
  1. 配置文件 bootstrap.yml

    server:
      port: 8099
    spring:
      application:
     name: demo-gateway
      profiles:
     active: dev
      cloud:
     nacos:
       discovery:
         server-addr: NacosIP地址:8848
       config:
         server-addr: ${spring.cloud.nacos.discovery.server-addr}
         file-extension: yml

    2、创建Srping Cloud 接口服务 项目

  2. 新建 demo-api 项目
    Spring cloud Gateway 换成 Apache APISIX 云原生 API 网关初体验_第3张图片
    pom 依赖如下

    
    
     4.0.0
     com.example
     demo-api
     0.0.1-SNAPSHOT
     demo-api
     demo-api
     
         17
         UTF-8
         UTF-8
         3.0.0
         2022.0.0.0-RC1
         2022.0.0-RC2
     
     
         
             org.springframework.boot
             spring-boot-starter-web
         
         
             com.alibaba.cloud
             spring-cloud-starter-alibaba-nacos-config
         
         
             com.alibaba.cloud
             spring-cloud-starter-alibaba-nacos-discovery
         
         
             org.springframework.cloud
             spring-cloud-starter-bootstrap
         
     
     
         
             
                 org.springframework.cloud
                 spring-cloud-dependencies
                 ${spring-cloud.version}
                 pom
                 import
             
             
                 org.springframework.boot
                 spring-boot-dependencies
                 ${spring-boot.version}
                 pom
                 import
             
             
                 com.alibaba.cloud
                 spring-cloud-alibaba-dependencies
                 ${spring-cloud-alibaba.version}
                 pom
                 import
             
         
     
     
         
             
                 org.apache.maven.plugins
                 maven-compiler-plugin
                 3.8.1
                 
                     17
                     17
                     UTF-8
                 
             
             
                 org.springframework.boot
                 spring-boot-maven-plugin
                 ${spring-boot.version}
                 
                     com.example.demo.api.DemoApiApplication
                     true
                 
                 
                     
                         repackage
                         
                             repackage
                         
                     
                 
             
         
     
     
         
             spring-milestones
             Spring Milestones
             https://repo.spring.io/milestone
             
                 false
             
         
     
    
  3. 配置文件 bootstrap.yml

    server:
      port: 9001
    spring:
      application:
     name: demo-api
      profiles:
     active: dev
      cloud:
     nacos:
       discovery:
         server-addr: NacosIP地址:8848
       config:
         server-addr: ${spring.cloud.nacos.discovery.server-addr}
         file-extension: yml

    3、下载启动 Naocs 作为服务配置注册中心

  4. 下载安装

本地下载安装详见 https://nacos.io/zh-cn/docs/v2/quickstart/quick-start.html

当然也可Docker方式详见 https://nacos.io/zh-cn/docs/v2/quickstart/quick-start-docker....

  • 添加demo-gateway、demo-api的配置文件

Spring cloud Gateway 换成 Apache APISIX 云原生 API 网关初体验_第4张图片
demo-gateway-dev.yml

spring:
  cloud:
    gateway:
      routes:
        # 路由的ID,没有固定规则,但要求唯一,建议配合服务名
        - id: demo-api
          # 匹配后提供服务的路由地址
          uri: lb://demo-api
          predicates:
            - Path=/api/**

demo-api-dev.yml

demo:
  params: 来自Nancos配置中心的数据

4、安装并运行 APISIX API 网关

本次使用CentOS 选用Docker方式安装,需要先安装 Docker和Docker-Compose

## 卸载旧版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
## 设置 Docker 存储库
sudo yum install -y yum-utils

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
## 安装运行
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

sudo systemctl start docker
## 设置docker 开机自启
systemctl ebable docker
  • Docker Compose 安装

    ## 下载安装(龟速,或者使用后边的方式)
    curl -SL https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
    
    ## 通过地址离线下载上传CentOS后执行
    sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose 
    sudo chmod +x /usr/local/bin/docker-compose 
    docker-compose -v
  • 正菜来了!APISIX 安装

    ## 首先下载apisix-docker仓库(龟速继续离线下载上传)
    git clone https://github.com/apache/apisix-docker.git
    ## 使用Nacos 服务发现注册,配置Nacos
    cd apisix-docker-master/example/apisix_conf
    ## 添加Nacos地址
    discovery:
    nacos:
      host:
        - "http://NacosIP地址:8848"
    ## 回到apisix-docker-master/example 路径下,使用 docker-compose 启用 APISIX
    docker-compose -p docker-apisix up -d
  • 下载启动完成,访问http://CenOS机器IP地址:9000/ 即APISIX Dashboard 界面

账号密码查看apisix-docker-master/example/dashboard_conf/conf.yaml 默认admin/admin

Spring cloud Gateway 换成 Apache APISIX 云原生 API 网关初体验_第5张图片

前期准备工作完成!

二、Spring Cloud Gateway 网关运行测试

  • 启动 demo-gateway、demo-api服务,默认9001再启动个9002 服务做负载。

Spring cloud Gateway 换成 Apache APISIX 云原生 API 网关初体验_第6张图片

Spring cloud Gateway 换成 Apache APISIX 云原生 API 网关初体验_第7张图片

发送两次请求,得到9001和9002的轮询响应

Hello :9001--> 来自Nancos配置中心的数据
Hello :9002--> 来自Nancos配置中心的数据

三、Spring Cloud Gateway 改成 APISIX 网关运行测试

  1. 登录APISIX Dashboard,配置上游服务发现Naocs

Spring cloud Gateway 换成 Apache APISIX 云原生 API 网关初体验_第8张图片

  1. 配置路由,除了标注和特殊配置,一路欢快的下一步即可

Spring cloud Gateway 换成 Apache APISIX 云原生 API 网关初体验_第9张图片

Spring cloud Gateway 换成 Apache APISIX 云原生 API 网关初体验_第10张图片

Spring cloud Gateway 换成 Apache APISIX 云原生 API 网关初体验_第11张图片

  1. 发送请求
    http://APISIX的机器IP:9080/api/demo

发送两次请求,得到9001和9002的轮询响应

Hello :9001--> 来自Nancos配置中心的数据
Hello :9002--> 来自Nancos配置中心的数据

到此,最最最基础的替代就完成啦!

你可能感兴趣的:(Spring cloud Gateway 换成 Apache APISIX 云原生 API 网关初体验)