007API网关服务Zuul

Posted TBBS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了007API网关服务Zuul相关的知识,希望对你有一定的参考价值。

001、POM配置

  和普通Spring Boot工程相比,增加了Eureka Client、Zuul依赖和Spring Cloud依赖管理

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zuul</artifactId>
    </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>
</dependencyManagement>

002、使能Zuul Proxy

@SpringBootApplication
@EnableZuulProxy    //使能API网关
public class APIGatewayZuulApplication {

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

003、src/main/resources下配置文件application.yml

spring:
  application:
    name: api-gateway-zuul
server:
  port: 5001
eureka:
  client:
    serviceUrl:
      defaultZone: http://discovery:1000/eureka/

使用步骤:

  a)启动Eureka Server服务eureka-server

  b)启动Hello Service服务hello-service-provider(可启动多个)

  c)启动api-gateway-zuul服务

  d)通过http://localhost:5001/hello-service-provider/hello即可访问Hello Service的服务

004、自定义服务路径

zuul:
  routes:
    sayhello:                               # 可以随便写,在zuul上面唯一即可;当这里的值 = service-id时,service-id可以不写。
      path: /sayhello/**                    # 想要映射到的路径
      service-id: hello-service-provider    # Eureka中的serviceId

  此时通过http://localhost:5001/sayhello/hello即可访问Hello Service的服务

005、忽略指定服务不代理

zuul:
  ignored-services: hello-service-provider

  此时hello-service-provider服务不会被代理

以上是关于007API网关服务Zuul的主要内容,如果未能解决你的问题,请参考以下文章

Spring Cloud 微服务二:API网关spring cloud zuul

zuul API 网关过滤器

第五章API服务网关(Zuul) 上

Spring Cloud Zuul微服务网关的API限流

SpringCloud:服务网关zuul-API网关

我们应该在微服务之间使用api网关(例如zuul)吗?