如何搭建Gateway服务

  1. Gateway的简单介绍
    1. Spring Cloud Gateway是Spring Cloud的一个项目,该项目是基于Spring,Spring Boot和Project Reactor等响应式编程和事件流技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。
    2. Gateway网关可以是所有微服务的统一入口,具有请求路由、权限控制、限流的功能特性
      1. 权限控制:网关作为微服务入口,需要校验用户是否有请求资格,如果没有则进行拦截
      2. 路由和负载均衡:一切请求都必须先经过gateway,但网关不处理业务,而是根据某种规则,把请求转发到某个微服务,这个过程叫做路由。当然路由的目标服务有多个时,还需要做负载均衡
      3. 限流:当请求流量过高时,在网关中按照下游的微服务能够接受的速度来放行请求,避免服务压力过大
    3. 在Spring Cloud中网关的实现有gateway、zuul,但Zuul是基于Servlet的实现,属于阻塞式编程,而Spring Cloud Gateway则是基于Spring5中提供的WebFlux,属于响应式编程的实现,具备更好的性能
  2. 那么现在我们就开始简单的搭建gateway服务
    1. 首先创建gateway的maven项目,并在maven的pom文件中添加依赖
      1. 
                <!-- Nacos依赖 -->
                <dependency>
                    <groupId>com.alibaba.cloud</groupId>
                    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
                </dependency>
        
                <!--网关-->
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-gateway</artifactId>
                </dependency>
        
    2. 编写gateway的spring boot的启动类
      1. package com.app.user;
        
        import org.springframework.boot.SpringApplication;
        import org.springframework.boot.autoconfigure.SpringBootApplication;
        
        /**
         * spring boot启动类
         *
         * @author Administrator
         */
        @SpringBootApplication
        public class GatewayApplication {
            public static void main(String[] args) {
                SpringApplication.run(GatewayApplication.class, args);
            }
        }
        
    3. 创建application.yml文件,并编写基础的配置信息以及路由规则
      1. server:
          port: 12080
        spring:
          application:
            #应用的名称
            name: gateway-service
          cloud:
            nacos:
              # Nacos Server 启动监听的ip地址和端口
              server-addr: 192.168.xxx.xxx:8848
              discovery:
                # nacos开启鉴权之后的用户名
                username: nacos
                # nacos开启鉴权之后的用户登录密码
                password: nacos
            gateway:
              # 网关的路由配置
              routes:
                # 路由id,自定义,只要唯一即可
                - id: nacos-feign-user-service
                  # 路由的目标地址,lb就是负载均衡,后面跟服务名称
                  uri: lb://nacos-feign-user-service
                  # 路由断言,也就是判断请求是否符合路由规则的条件
                  predicates:
                    # 这个是按照路径匹配,只要以/users/开头就符合要求
                    - Path=/users/**
        
  3. 启动gateway-service服务,访问http://127.0.0.1:12080/users/2时,符合/users/**规则,然后请求转发到uri:http://nacos-feign-user-service/users/2

相关推荐

  1. 如何快速nginx服务

    2023-12-17 05:40:02       10 阅读
  2. 如何利用 NAS 网站服务器

    2023-12-17 05:40:02       31 阅读
  3. 计算机如何存储服务器

    2023-12-17 05:40:02       30 阅读
  4. nodejs服务

    2023-12-17 05:40:02       33 阅读
  5. NFS服务

    2023-12-17 05:40:02       29 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-17 05:40:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-17 05:40:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-17 05:40:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-17 05:40:02       20 阅读

热门阅读

  1. 贪吃蛇小游戏

    2023-12-17 05:40:02       35 阅读
  2. Python基础:概述

    2023-12-17 05:40:02       35 阅读
  3. K8S(六)—kubectl

    2023-12-17 05:40:02       38 阅读
  4. kafka3.0创建topic出现zookeeper is not a recognized option

    2023-12-17 05:40:02       43 阅读
  5. ZooKeeper

    ZooKeeper

    2023-12-17 05:40:02      45 阅读
  6. Python基础03-循环结构

    2023-12-17 05:40:02       34 阅读
  7. NPM的介绍及使用详解

    2023-12-17 05:40:02       41 阅读
  8. git常用命令

    2023-12-17 05:40:02       41 阅读
  9. git各分支简介

    2023-12-17 05:40:02       39 阅读
  10. 开源的Spring Boot学习资源

    2023-12-17 05:40:02       32 阅读
  11. 计算机网络高频判断题

    2023-12-17 05:40:02       34 阅读
  12. 嵌入式应用中的复选框控件实现

    2023-12-17 05:40:02       43 阅读
  13. 服务总线SpringCloudBus

    2023-12-17 05:40:02       41 阅读