spring cloud(三)-服务网关Zuul

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lh87270202/article/details/83996091

前言

加入服务网关将权限控制这些较重的非业务逻辑内容迁移到服务路由层面,让服务集群更关注服务本身的业务逻辑,具备更高的可复用性和可测试性。

1、构建服务网关

服务提供者和消费者分别是eureka-clienteureka-consumer
(一)创建一个spring boot项目,添加依赖

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.0.2.RELEASE</version>
  <relativePath/>
</parent>

<dependencies>
  <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  </dependency>
</dependencies>

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-dependencies</artifactId>
      <version>Finchley.RELEASE</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

(二)启动类
并使用@EnableZuulProxy注解开启Zuul的功能

@EnableZuulProxy
@SpringCloudApplication
public class Application {  
  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }
}

(三)application.properties配置

# 基础信息配置
spring.application.name=api-gateway
server.port=80791
# 路由规则配置
zuul.routes.eurekaclient.path=/eureka-client/**
zuul.routes.eurekaclient.serviceId=eureka-client

# API网关也将作为一个服务注册到eureka-server上
eureka.client.service-url.defaultZone=http://localhost:80791/eureka/

服务网关构建完毕。主要用于请求的路由和过滤功能。
我们在这里配置了路由规则所有符合/eurekaclient/**的请求都将被转发到eureka-client服务上,这里只需要写上服务名即可。以上面的配置为例,如果我请求http://localhost:80791/eureka-client/hello接口则相当于请求http://localhost:80791/hello(我这里eurekaclient的地址为http://localhost:80791),我们在路由规则中配置的eureka-client是路由的名字,可以任意定义,但是一组path和serviceId映射关系的路由名要相同。

猜你喜欢

转载自blog.csdn.net/lh87270202/article/details/83996091