Spring Cloud Gateway注册到服务器中心(Consul)

Posted 维晟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Cloud Gateway注册到服务器中心(Consul)相关的知识,希望对你有一定的参考价值。

Spring Cloud Gateway注册到服务器中心(Consul)

准备环境

启动Consul(./consul agent -dev)作为服务中心,默认是8500端口,然后启动spring-cloud-provider(9001端口)和spring-cloud-provider-second(9002端口)两个项目作为微服务。
在Consul管理后台可以看见两个服务启动:
技术图片

添加Spring Cloud Gateway项目的依赖项

POM内增加如下依赖:

                <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>

修改Spring Cloud Gateway项目配置

server:
 port: 9000
spring:
  cloud:
    consul:
      host: 127.0.0.1
      port: 8500
      discovery:
        register: true
    gateway:
      routes:
        - id: test_route
          uri: lb://service-provider
          predicates:
            - Path=/service-provider/{segment}
          filters:
            - SetPath=/{segment}
  application:
    name: PC-ApiGateWay
  • host:Consul的IP地址
  • port:Consul的端口号
  • register:是否将自己注册到Consul中
  • lb://service-provider:Consul的服务名称,以{lb://服务名}进行访问
  • Path:路由要匹配的路径格式
  • SetPath:设置路径过滤器,作用是匹配后可以根据分割符进行访问路径的设置
  • name:自己注册到Consul中的名称

启动Spring Cloud Gateway项目

启动后Consul后台可以看见Spring Cloud Gateway项目的注册内容
技术图片

测试访问

访问 “127.0.0.1:9000/service-provider/hello?name=sws” 这个地址,并刷新页面测试网关的负载均衡。
技术图片
技术图片

可以看出网关代理了后台微服务的功能,并起到了轮询访问的作用。

源码

Github仓库:https://github.com/sunweisheng/spring-cloud-example

以上是关于Spring Cloud Gateway注册到服务器中心(Consul)的主要内容,如果未能解决你的问题,请参考以下文章

spring cloud gateway在使用 zookeeper 注册中心时,配置https 进行服务转发

k8s,spring cloud gateway,nginx搭建随笔

微服务权限终极解决方案(spring-cloud-gateway-oauth2)

Eureka 实例应用程序名称不适用于 Spring Cloud Gateway

Spring Cloud Gateway 中的路由顺序

Spring Cloud Gateway+Nacos出现服务乱串的问题记录