这篇文章主要介绍了SpringCloudgateway+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网关路由内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
本文标题为:SpringCloud gateway+zookeeper实现网关路由的详细搭建
				
        
 
            
        - JSP页面间传值问题实例简析 2023-08-03
 - ExecutorService Callable Future多线程返回结果原理解析 2023-06-01
 - Java实现顺序表的操作详解 2023-05-19
 - 深入了解Spring的事务传播机制 2023-06-02
 - 基于Java Agent的premain方式实现方法耗时监控问题 2023-06-17
 - Java中的日期时间处理及格式化处理 2023-04-18
 - Springboot整合minio实现文件服务的教程详解 2022-12-03
 - JSP 制作验证码的实例详解 2023-07-30
 - Spring Security权限想要细化到按钮实现示例 2023-03-07
 - SpringBoot使用thymeleaf实现一个前端表格方法详解 2023-06-06
 
						
						
						
						
						
				
				
				
				