SpringCloud gateway+zookeeper实现网关路由的详细搭建

 更新时间:2022年08月15日 09:07:28   作者:MarcusRossi  
这篇文章主要介绍了SpringCloud gateway+zookeeper实现网关路由,本文通过图文实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

准备工作

需要两个项目去实现路由
demo1为springboot项目用于接入网关,测试网关连通性
gateway为网关路由项目

在这里插入图片描述

网关搭建

1.电脑安装好zookeeper,并且正常运行服务
Zookeeper官网

在这里插入图片描述

2.创建一个spring cloud gateway项目,并引入zookeeper功能

在这里插入图片描述

pom文件配置

<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.zookeeper</groupId>
                    <artifactId>zookeeper</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.8.0</version>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>

创建好项目后,启动类要启用服务发现功能
@EnableDiscoveryClient

@SpringBootApplication
@EnableDiscoveryClient
public class GatewayApplication {

    public static void main(String[] args) {
        SpringApplication.run(GatewayApplication.class, args);
    }

}

为了方便配置,将application.properties改成yml
以下是第一部分配置,8080端口会与zookeeper服务冲突,二选一调整端口

server:
  port: 8090
spring:
  application:
    name: rmx-gateway
  cloud:
    zookeeper:
      connect-string: 127.0.0.1:2181

配置完以后,先启动zookeeper服务,再启动gateway项目,一定要有先后顺序(顺序反了,会导致项目无法启动)

在这里插入图片描述

当gateway项目启动完成以后,去zookeeper服务里面去查询是否成功接入该项目服务
以下是一种查看服务是否接入的方法
启动zkCli.cmd,这个是client端

在这里插入图片描述

启动后,在控制台输入ls /services,查看到自己的gateway项目名字后,即可确定已经接入了

在这里插入图片描述

测试网关功能
这一步我们需要创建个springboot项目,并引入zookeeper服务发现

在这里插入图片描述

 

在这里插入图片描述

pom.xml文件

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
            <version>3.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

    </dependencies>

先配置测试项目的application

server.port=8091
spring.application.name=rmx-demo
spring.cloud.zookeeper.connect-string=127.0.0.1:2181

配置完以后,试着启动一下,启动完以后顺带进入zookeeper查看服务是否被接入

在这里插入图片描述

这时候zookeeper已经可以接入网关和测试项目了,但是网关和测试项目的路由还没有实现,我们需要停掉网关项目,把测试项目配置进入网关

回到网关的application.yml,并在里面加入路由配置
srping.cloud.gateway.routes就是路由的配置,这里使用路径配置,方便测试,Path后面输入对应的controller入口
yml的完整内容

server:
  port: 8090
spring:
  application:
    name: rmx-gateway
  cloud:
    zookeeper:
      connect-string: 127.0.0.1:2181
    gateway:
      routes:
        - id: demo1
          uri: http://localhost:8091
          predicates:
            - Path=/test

在测试项目中写一个测试controller,路径与配置的名称保持一致

@RestController
public class TestController {

    @PostMapping("/test")
    public String post(){
        return "端口接通";
    }
}

在这里插入图片描述

两者都弄好后,再将这两个项目启动,然后测试路由是否成功

先测试直接用8091测试项目的端口去调用接口

在这里插入图片描述

再测试用路由端口8090调用接口,看是否接通

在这里插入图片描述

如果都调用成功,则路由实现完成

到此这篇关于SpringCloud gateway+zookeeper实现网关路由的文章就介绍到这了,更多相关SpringCloud gateway zookeeper网关路由内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Apache Commons fileUpload实现文件上传之一

    Apache Commons fileUpload实现文件上传之一

    这篇文章主要介绍了Apache Commons fileUpload实现文件上传之一的相关资料,需要的朋友可以参考下
    2016-03-03
  • kotlin改善java代码实例分析

    kotlin改善java代码实例分析

    我们给大家整理了关于kotlin改善java代码的相关实例以及操作的详细方法,有需要的读者们参考下。
    2018-03-03
  • Java实现warcraft java版游戏的示例代码

    Java实现warcraft java版游戏的示例代码

    致敬经典的warcraft,《warcraft java版》是一款即时战略题材单机游戏,采用魔兽原味风格和机制。本文将用java语言实现,采用了swing技术进行了界面化处理,感兴趣的可以了解一下
    2022-09-09
  • Java实现简单邮件发送功能

    Java实现简单邮件发送功能

    这篇文章主要为大家详细介绍了Java实现简单邮件发送功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • Java实现本地文件批量重命名的示例代码

    Java实现本地文件批量重命名的示例代码

    本文主要介绍了Java实现本地文件批量重命名的示例代码,主要步骤为获取指定目录下的所有文件,对每个文件进行修改,将修改后的文件名赋给该文件,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • 深入浅出理解Java Lambda表达式之四大核心函数式的用法与范例

    深入浅出理解Java Lambda表达式之四大核心函数式的用法与范例

    Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑,今天小编带你理解Lambda表达式之四大核心函数式的用法,感兴趣的朋友快来看看吧
    2021-11-11
  • Java 过滤器实现敏感词汇过滤功能

    Java 过滤器实现敏感词汇过滤功能

    通过使用 Java 过滤器,我们可以轻松地实现敏感词汇过滤的功能,以保护用户免受不良内容的侵害,让我们通过一个简单的示例来演示我们的敏感词汇过滤器是如何工作的,感兴趣的朋友一起看看吧
    2024-01-01
  • IntelliJ IDEA 2020.2 配置大全详细图文教程(更新中)

    IntelliJ IDEA 2020.2 配置大全详细图文教程(更新中)

    这篇文章主要介绍了IntelliJ IDEA 2020.2 配置大全(更新中),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • Java中的包装类是什么

    Java中的包装类是什么

    这篇文章主要介绍了Java中的包装类是什么,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 如何解决Field name doesn‘t have a default value报错问题

    如何解决Field name doesn‘t have a defau

    这篇文章主要介绍了如何解决Field name doesn‘t have a default value报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02

最新评论